@imgly/plugin-ai-apps-web 0.2.15 → 0.2.16

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 vf=typeof global=="object"&&global&&global.Object===Object&&global,vs=vf,wf=typeof self=="object"&&self&&self.Object===Object&&self,kf=vs||wf||Function("return this")(),Q=kf,xf=Q.Symbol,Ge=xf,ws=Object.prototype,If=ws.hasOwnProperty,Cf=ws.toString,fr=Ge?Ge.toStringTag:void 0;function Af(e){var t=If.call(e,fr),r=e[fr];try{e[fr]=void 0;var i=!0}catch{}var n=Cf.call(e);return i&&(t?e[fr]=r:delete e[fr]),n}var Mf=Af,jf=Object.prototype,Sf=jf.toString;function $f(e){return Sf.call(e)}var _f=$f,Ef="[object Null]",Tf="[object Undefined]",os=Ge?Ge.toStringTag:void 0;function Lf(e){return e==null?e===void 0?Tf:Ef:os&&os in Object(e)?Mf(e):_f(e)}var hr=Lf;function Of(e){return e!=null&&typeof e=="object"}var Oo=Of,mK=Array.isArray;function Nf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ks=Nf,Df="[object AsyncFunction]",Pf="[object Function]",zf="[object GeneratorFunction]",Uf="[object Proxy]";function Rf(e){if(!ks(e))return!1;var t=hr(e);return t==Pf||t==zf||t==Df||t==Uf}var Ff=Rf,Vf=Q["__core-js_shared__"],jo=Vf,as=function(){var e=/[^.]+$/.exec(jo&&jo.keys&&jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Bf(e){return!!as&&as in e}var qf=Bf,Gf=Function.prototype,Yf=Gf.toString;function Hf(e){if(e!=null){try{return Yf.call(e)}catch{}try{return e+""}catch{}}return""}var je=Hf,Zf=/[\\^$.*+?()[\]{}|]/g,Qf=/^\[object .+?Constructor\]$/,Wf=Function.prototype,Kf=Object.prototype,Jf=Wf.toString,Xf=Kf.hasOwnProperty,ey=RegExp("^"+Jf.call(Xf).replace(Zf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ty(e){if(!ks(e)||qf(e))return!1;var t=Ff(e)?ey:Qf;return t.test(je(e))}var ry=ty;function iy(e,t){return e?.[t]}var ny=iy;function oy(e,t){var r=ny(e,t);return ry(r)?r:void 0}var Ye=oy,ay=Ye(Q,"WeakMap"),$o=ay;function ly(e,t){return e===t||e!==e&&t!==t}var sy=ly,uy=9007199254740991;function cy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=uy}var dy=cy;var bK=Object.prototype;var py="[object Arguments]";function gy(e){return Oo(e)&&hr(e)==py}var ls=gy,xs=Object.prototype,fy=xs.hasOwnProperty,yy=xs.propertyIsEnumerable,hK=ls(function(){return arguments}())?ls:function(e){return Oo(e)&&fy.call(e,"callee")&&!yy.call(e,"callee")};var Is=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ss=Is&&typeof module=="object"&&module&&!module.nodeType&&module,my=ss&&ss.exports===Is,us=my?Q.Buffer:void 0,vK=us?us.isBuffer:void 0;var by="[object Arguments]",hy="[object Array]",vy="[object Boolean]",wy="[object Date]",ky="[object Error]",xy="[object Function]",Iy="[object Map]",Cy="[object Number]",Ay="[object Object]",My="[object RegExp]",jy="[object Set]",Sy="[object String]",$y="[object WeakMap]",_y="[object ArrayBuffer]",Ey="[object DataView]",Ty="[object Float32Array]",Ly="[object Float64Array]",Oy="[object Int8Array]",Ny="[object Int16Array]",Dy="[object Int32Array]",Py="[object Uint8Array]",zy="[object Uint8ClampedArray]",Uy="[object Uint16Array]",Ry="[object Uint32Array]",T={};T[Ty]=T[Ly]=T[Oy]=T[Ny]=T[Dy]=T[Py]=T[zy]=T[Uy]=T[Ry]=!0;T[by]=T[hy]=T[_y]=T[vy]=T[Ey]=T[wy]=T[ky]=T[xy]=T[Iy]=T[Cy]=T[Ay]=T[My]=T[jy]=T[Sy]=T[$y]=!1;function Fy(e){return Oo(e)&&dy(e.length)&&!!T[hr(e)]}var Vy=Fy;function By(e){return function(t){return e(t)}}var qy=By,Cs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yr=Cs&&typeof module=="object"&&module&&!module.nodeType&&module,Gy=yr&&yr.exports===Cs,So=Gy&&vs.process,Yy=function(){try{var e=yr&&yr.require&&yr.require("util").types;return e||So&&So.binding&&So.binding("util")}catch{}}(),cs=Yy,ds=cs&&cs.isTypedArray,wK=ds?qy(ds):Vy;var Hy=Object.prototype,kK=Hy.hasOwnProperty;function Zy(e,t){return function(r){return e(t(r))}}var Qy=Zy,xK=Qy(Object.keys,Object);var Wy=Object.prototype,IK=Wy.hasOwnProperty;var Ky=Ye(Object,"create"),mr=Ky;function Jy(){this.__data__=mr?mr(null):{},this.size=0}var Xy=Jy;function em(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tm=em,rm="__lodash_hash_undefined__",im=Object.prototype,nm=im.hasOwnProperty;function om(e){var t=this.__data__;if(mr){var r=t[e];return r===rm?void 0:r}return nm.call(t,e)?t[e]:void 0}var am=om,lm=Object.prototype,sm=lm.hasOwnProperty;function um(e){var t=this.__data__;return mr?t[e]!==void 0:sm.call(t,e)}var cm=um,dm="__lodash_hash_undefined__";function pm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=mr&&t===void 0?dm:t,this}var gm=pm;function He(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])}}He.prototype.clear=Xy;He.prototype.delete=tm;He.prototype.get=am;He.prototype.has=cm;He.prototype.set=gm;var ps=He;function fm(){this.__data__=[],this.size=0}var ym=fm;function mm(e,t){for(var r=e.length;r--;)if(sy(e[r][0],t))return r;return-1}var gn=mm,bm=Array.prototype,hm=bm.splice;function vm(e){var t=this.__data__,r=gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():hm.call(t,r,1),--this.size,!0}var wm=vm;function km(e){var t=this.__data__,r=gn(t,e);return r<0?void 0:t[r][1]}var xm=km;function Im(e){return gn(this.__data__,e)>-1}var Cm=Im;function Am(e,t){var r=this.__data__,i=gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Mm=Am;function Ze(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])}}Ze.prototype.clear=ym;Ze.prototype.delete=wm;Ze.prototype.get=xm;Ze.prototype.has=Cm;Ze.prototype.set=Mm;var fn=Ze,jm=Ye(Q,"Map"),br=jm;function Sm(){this.size=0,this.__data__={hash:new ps,map:new(br||fn),string:new ps}}var $m=Sm;function _m(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Em=_m;function Tm(e,t){var r=e.__data__;return Em(t)?r[typeof t=="string"?"string":"hash"]:r.map}var yn=Tm;function Lm(e){var t=yn(this,e).delete(e);return this.size-=t?1:0,t}var Om=Lm;function Nm(e){return yn(this,e).get(e)}var Dm=Nm;function Pm(e){return yn(this,e).has(e)}var zm=Pm;function Um(e,t){var r=yn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,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=$m;Qe.prototype.delete=Om;Qe.prototype.get=Dm;Qe.prototype.has=zm;Qe.prototype.set=Rm;var As=Qe;function Fm(){this.__data__=new fn,this.size=0}var Vm=Fm;function Bm(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var qm=Bm;function Gm(e){return this.__data__.get(e)}var Ym=Gm;function Hm(e){return this.__data__.has(e)}var Zm=Hm,Qm=200;function Wm(e,t){var r=this.__data__;if(r instanceof fn){var i=r.__data__;if(!br||i.length<Qm-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new As(i)}return r.set(e,t),this.size=r.size,this}var Km=Wm;function vr(e){var t=this.__data__=new fn(e);this.size=t.size}vr.prototype.clear=Vm;vr.prototype.delete=qm;vr.prototype.get=Ym;vr.prototype.has=Zm;vr.prototype.set=Km;var Jm=Object.prototype,CK=Jm.propertyIsEnumerable;var Xm=Ye(Q,"DataView"),_o=Xm,eb=Ye(Q,"Promise"),Eo=eb,tb=Ye(Q,"Set"),To=tb,gs="[object Map]",rb="[object Object]",fs="[object Promise]",ys="[object Set]",ms="[object WeakMap]",bs="[object DataView]",ib=je(_o),nb=je(br),ob=je(Eo),ab=je(To),lb=je($o),qe=hr;(_o&&qe(new _o(new ArrayBuffer(1)))!=bs||br&&qe(new br)!=gs||Eo&&qe(Eo.resolve())!=fs||To&&qe(new To)!=ys||$o&&qe(new $o)!=ms)&&(qe=function(e){var t=hr(e),r=t==rb?e.constructor:void 0,i=r?je(r):"";if(i)switch(i){case ib:return bs;case nb:return gs;case ob:return fs;case ab:return ys;case lb:return ms}return t});var AK=Q.Uint8Array;var sb="__lodash_hash_undefined__";function ub(e){return this.__data__.set(e,sb),this}var cb=ub;function db(e){return this.__data__.has(e)}var pb=db;function Lo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new As;++t<r;)this.add(e[t])}Lo.prototype.add=Lo.prototype.push=cb;Lo.prototype.has=pb;var hs=Ge?Ge.prototype:void 0,MK=hs?hs.valueOf:void 0;var gb=Object.prototype,jK=gb.hasOwnProperty;var fb=Object.prototype,SK=fb.hasOwnProperty;var $K=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_K=new RegExp(/[A-Fa-f0-9]{1}/,"g"),EK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function yb(e){return e!==void 0}var Ms=yb;var mb=typeof global=="object"&&global&&global.Object===Object&&global,Fs=mb,bb=typeof self=="object"&&self&&self.Object===Object&&self,hb=Fs||bb||Function("return this")(),W=hb,vb=W.Symbol,Ke=vb,Vs=Object.prototype,wb=Vs.hasOwnProperty,kb=Vs.toString,wr=Ke?Ke.toStringTag:void 0;function xb(e){var t=wb.call(e,wr),r=e[wr];try{e[wr]=void 0;var i=!0}catch{}var n=kb.call(e);return i&&(t?e[wr]=r:delete e[wr]),n}var Ib=xb,Cb=Object.prototype,Ab=Cb.toString;function Mb(e){return Ab.call(e)}var jb=Mb,Sb="[object Null]",$b="[object Undefined]",js=Ke?Ke.toStringTag:void 0;function _b(e){return e==null?e===void 0?$b:Sb:js&&js in Object(e)?Ib(e):jb(e)}var Cr=_b;function Eb(e){return e!=null&&typeof e=="object"}var Bo=Eb,LK=Array.isArray;function Tb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bs=Tb,Lb="[object AsyncFunction]",Ob="[object Function]",Nb="[object GeneratorFunction]",Db="[object Proxy]";function Pb(e){if(!Bs(e))return!1;var t=Cr(e);return t==Ob||t==Nb||t==Lb||t==Db}var zb=Pb,Ub=W["__core-js_shared__"],No=Ub,Ss=function(){var e=/[^.]+$/.exec(No&&No.keys&&No.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Rb(e){return!!Ss&&Ss in e}var Fb=Rb,Vb=Function.prototype,Bb=Vb.toString;function qb(e){if(e!=null){try{return Bb.call(e)}catch{}try{return e+""}catch{}}return""}var Se=qb,Gb=/[\\^$.*+?()[\]{}|]/g,Yb=/^\[object .+?Constructor\]$/,Hb=Function.prototype,Zb=Object.prototype,Qb=Hb.toString,Wb=Zb.hasOwnProperty,Kb=RegExp("^"+Qb.call(Wb).replace(Gb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Jb(e){if(!Bs(e)||Fb(e))return!1;var t=zb(e)?Kb:Yb;return t.test(Se(e))}var Xb=Jb;function eh(e,t){return e?.[t]}var th=eh;function rh(e,t){var r=th(e,t);return Xb(r)?r:void 0}var Je=rh,ih=Je(W,"WeakMap"),zo=ih;function nh(e,t){return e===t||e!==e&&t!==t}var oh=nh,ah=9007199254740991;function lh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ah}var sh=lh,OK=Object.prototype,uh="[object Arguments]";function ch(e){return Bo(e)&&Cr(e)==uh}var $s=ch,qs=Object.prototype,dh=qs.hasOwnProperty,ph=qs.propertyIsEnumerable,NK=$s(function(){return arguments}())?$s:function(e){return Bo(e)&&dh.call(e,"callee")&&!ph.call(e,"callee")},Gs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_s=Gs&&typeof module=="object"&&module&&!module.nodeType&&module,gh=_s&&_s.exports===Gs,Es=gh?W.Buffer:void 0,DK=Es?Es.isBuffer:void 0,fh="[object Arguments]",yh="[object Array]",mh="[object Boolean]",bh="[object Date]",hh="[object Error]",vh="[object Function]",wh="[object Map]",kh="[object Number]",xh="[object Object]",Ih="[object RegExp]",Ch="[object Set]",Ah="[object String]",Mh="[object WeakMap]",jh="[object ArrayBuffer]",Sh="[object DataView]",$h="[object Float32Array]",_h="[object Float64Array]",Eh="[object Int8Array]",Th="[object Int16Array]",Lh="[object Int32Array]",Oh="[object Uint8Array]",Nh="[object Uint8ClampedArray]",Dh="[object Uint16Array]",Ph="[object Uint32Array]",L={};L[$h]=L[_h]=L[Eh]=L[Th]=L[Lh]=L[Oh]=L[Nh]=L[Dh]=L[Ph]=!0;L[fh]=L[yh]=L[jh]=L[mh]=L[Sh]=L[bh]=L[hh]=L[vh]=L[wh]=L[kh]=L[xh]=L[Ih]=L[Ch]=L[Ah]=L[Mh]=!1;function zh(e){return Bo(e)&&sh(e.length)&&!!L[Cr(e)]}var Uh=zh;function Rh(e){return function(t){return e(t)}}var Fh=Rh,Ys=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kr=Ys&&typeof module=="object"&&module&&!module.nodeType&&module,Vh=kr&&kr.exports===Ys,Do=Vh&&Fs.process,Bh=function(){try{var e=kr&&kr.require&&kr.require("util").types;return e||Do&&Do.binding&&Do.binding("util")}catch{}}(),Ts=Bh,Ls=Ts&&Ts.isTypedArray,PK=Ls?Fh(Ls):Uh,qh=Object.prototype,zK=qh.hasOwnProperty;function Gh(e,t){return function(r){return e(t(r))}}var Yh=Gh,UK=Yh(Object.keys,Object),Hh=Object.prototype,RK=Hh.hasOwnProperty,Zh=Je(Object,"create"),xr=Zh;function Qh(){this.__data__=xr?xr(null):{},this.size=0}var Wh=Qh;function Kh(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Jh=Kh,Xh="__lodash_hash_undefined__",e0=Object.prototype,t0=e0.hasOwnProperty;function r0(e){var t=this.__data__;if(xr){var r=t[e];return r===Xh?void 0:r}return t0.call(t,e)?t[e]:void 0}var i0=r0,n0=Object.prototype,o0=n0.hasOwnProperty;function a0(e){var t=this.__data__;return xr?t[e]!==void 0:o0.call(t,e)}var l0=a0,s0="__lodash_hash_undefined__";function u0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xr&&t===void 0?s0:t,this}var c0=u0;function Xe(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])}}Xe.prototype.clear=Wh;Xe.prototype.delete=Jh;Xe.prototype.get=i0;Xe.prototype.has=l0;Xe.prototype.set=c0;var Os=Xe;function d0(){this.__data__=[],this.size=0}var p0=d0;function g0(e,t){for(var r=e.length;r--;)if(oh(e[r][0],t))return r;return-1}var mn=g0,f0=Array.prototype,y0=f0.splice;function m0(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():y0.call(t,r,1),--this.size,!0}var b0=m0;function h0(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var v0=h0;function w0(e){return mn(this.__data__,e)>-1}var k0=w0;function x0(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 I0=x0;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=p0;et.prototype.delete=b0;et.prototype.get=v0;et.prototype.has=k0;et.prototype.set=I0;var bn=et,C0=Je(W,"Map"),Ir=C0;function A0(){this.size=0,this.__data__={hash:new Os,map:new(Ir||bn),string:new Os}}var M0=A0;function j0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var S0=j0;function $0(e,t){var r=e.__data__;return S0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=$0;function _0(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var E0=_0;function T0(e){return hn(this,e).get(e)}var L0=T0;function O0(e){return hn(this,e).has(e)}var N0=O0;function D0(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,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=M0;tt.prototype.delete=E0;tt.prototype.get=L0;tt.prototype.has=N0;tt.prototype.set=P0;var Hs=tt;function z0(){this.__data__=new bn,this.size=0}var U0=z0;function R0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var F0=R0;function V0(e){return this.__data__.get(e)}var B0=V0;function q0(e){return this.__data__.has(e)}var G0=q0,Y0=200;function H0(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!Ir||i.length<Y0-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Hs(i)}return r.set(e,t),this.size=r.size,this}var Z0=H0;function Ar(e){var t=this.__data__=new bn(e);this.size=t.size}Ar.prototype.clear=U0;Ar.prototype.delete=F0;Ar.prototype.get=B0;Ar.prototype.has=G0;Ar.prototype.set=Z0;var Q0=Object.prototype,FK=Q0.propertyIsEnumerable,W0=Je(W,"DataView"),Uo=W0,K0=Je(W,"Promise"),Ro=K0,J0=Je(W,"Set"),Fo=J0,Ns="[object Map]",X0="[object Object]",Ds="[object Promise]",Ps="[object Set]",zs="[object WeakMap]",Us="[object DataView]",e2=Se(Uo),t2=Se(Ir),r2=Se(Ro),i2=Se(Fo),n2=Se(zo),We=Cr;(Uo&&We(new Uo(new ArrayBuffer(1)))!=Us||Ir&&We(new Ir)!=Ns||Ro&&We(Ro.resolve())!=Ds||Fo&&We(new Fo)!=Ps||zo&&We(new zo)!=zs)&&(We=function(e){var t=Cr(e),r=t==X0?e.constructor:void 0,i=r?Se(r):"";if(i)switch(i){case e2:return Us;case t2:return Ns;case r2:return Ds;case i2:return Ps;case n2:return zs}return t});var VK=W.Uint8Array,o2="__lodash_hash_undefined__";function a2(e){return this.__data__.set(e,o2),this}var l2=a2;function s2(e){return this.__data__.has(e)}var u2=s2;function Vo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Hs;++t<r;)this.add(e[t])}Vo.prototype.add=Vo.prototype.push=l2;Vo.prototype.has=u2;var Rs=Ke?Ke.prototype:void 0,BK=Rs?Rs.valueOf:void 0,c2=Object.prototype,qK=c2.hasOwnProperty,d2=Object.prototype,GK=d2.hasOwnProperty,YK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZK=new RegExp(/[A-Fa-f0-9]{2}/,"g");var vn=class Zs{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 Zs),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 p2="ly.img.ai";function Qs(e){return`${p2}.${e}`}function Ws(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 Mf=typeof global=="object"&&global&&global.Object===Object&&global,Cs=Mf,jf=typeof self=="object"&&self&&self.Object===Object&&self,Sf=Cs||jf||Function("return this")(),K=Sf,$f=K.Symbol,He=$f,As=Object.prototype,_f=As.hasOwnProperty,Ef=As.toString,mr=He?He.toStringTag:void 0;function Lf(e){var t=_f.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=Ef.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var Tf=Lf,Of=Object.prototype,Nf=Of.toString;function Df(e){return Nf.call(e)}var Pf=Df,zf="[object Null]",Uf="[object Undefined]",cs=He?He.toStringTag:void 0;function Rf(e){return e==null?e===void 0?Uf:zf:cs&&cs in Object(e)?Tf(e):Pf(e)}var wr=Rf;function Ff(e){return e!=null&&typeof e=="object"}var Po=Ff,CK=Array.isArray;function Vf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ms=Vf,Bf="[object AsyncFunction]",qf="[object Function]",Gf="[object GeneratorFunction]",Yf="[object Proxy]";function Hf(e){if(!Ms(e))return!1;var t=wr(e);return t==qf||t==Gf||t==Bf||t==Yf}var Zf=Hf,Qf=K["__core-js_shared__"],_o=Qf,ds=function(){var e=/[^.]+$/.exec(_o&&_o.keys&&_o.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Wf(e){return!!ds&&ds in e}var Kf=Wf,Jf=Function.prototype,Xf=Jf.toString;function ey(e){if(e!=null){try{return Xf.call(e)}catch{}try{return e+""}catch{}}return""}var $e=ey,ty=/[\\^$.*+?()[\]{}|]/g,ry=/^\[object .+?Constructor\]$/,iy=Function.prototype,ny=Object.prototype,oy=iy.toString,ay=ny.hasOwnProperty,ly=RegExp("^"+oy.call(ay).replace(ty,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sy(e){if(!Ms(e)||Kf(e))return!1;var t=Zf(e)?ly:ry;return t.test($e(e))}var uy=sy;function cy(e,t){return e?.[t]}var dy=cy;function py(e,t){var r=dy(e,t);return uy(r)?r:void 0}var Ze=py,gy=Ze(K,"WeakMap"),Lo=gy;function fy(e,t){return e===t||e!==e&&t!==t}var yy=fy,my=9007199254740991;function by(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=my}var hy=by;var AK=Object.prototype;var vy="[object Arguments]";function wy(e){return Po(e)&&wr(e)==vy}var ps=wy,js=Object.prototype,ky=js.hasOwnProperty,xy=js.propertyIsEnumerable,MK=ps(function(){return arguments}())?ps:function(e){return Po(e)&&ky.call(e,"callee")&&!xy.call(e,"callee")};var Ss=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gs=Ss&&typeof module=="object"&&module&&!module.nodeType&&module,Iy=gs&&gs.exports===Ss,fs=Iy?K.Buffer:void 0,jK=fs?fs.isBuffer:void 0;var Cy="[object Arguments]",Ay="[object Array]",My="[object Boolean]",jy="[object Date]",Sy="[object Error]",$y="[object Function]",_y="[object Map]",Ey="[object Number]",Ly="[object Object]",Ty="[object RegExp]",Oy="[object Set]",Ny="[object String]",Dy="[object WeakMap]",Py="[object ArrayBuffer]",zy="[object DataView]",Uy="[object Float32Array]",Ry="[object Float64Array]",Fy="[object Int8Array]",Vy="[object Int16Array]",By="[object Int32Array]",qy="[object Uint8Array]",Gy="[object Uint8ClampedArray]",Yy="[object Uint16Array]",Hy="[object Uint32Array]",L={};L[Uy]=L[Ry]=L[Fy]=L[Vy]=L[By]=L[qy]=L[Gy]=L[Yy]=L[Hy]=!0;L[Cy]=L[Ay]=L[Py]=L[My]=L[zy]=L[jy]=L[Sy]=L[$y]=L[_y]=L[Ey]=L[Ly]=L[Ty]=L[Oy]=L[Ny]=L[Dy]=!1;function Zy(e){return Po(e)&&hy(e.length)&&!!L[wr(e)]}var Qy=Zy;function Wy(e){return function(t){return e(t)}}var Ky=Wy,$s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=$s&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=br&&br.exports===$s,Eo=Jy&&Cs.process,Xy=function(){try{var e=br&&br.require&&br.require("util").types;return e||Eo&&Eo.binding&&Eo.binding("util")}catch{}}(),ys=Xy,ms=ys&&ys.isTypedArray,SK=ms?Ky(ms):Qy;var em=Object.prototype,$K=em.hasOwnProperty;function tm(e,t){return function(r){return e(t(r))}}var rm=tm,_K=rm(Object.keys,Object);var im=Object.prototype,EK=im.hasOwnProperty;var nm=Ze(Object,"create"),hr=nm;function om(){this.__data__=hr?hr(null):{},this.size=0}var am=om;function lm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var sm=lm,um="__lodash_hash_undefined__",cm=Object.prototype,dm=cm.hasOwnProperty;function pm(e){var t=this.__data__;if(hr){var r=t[e];return r===um?void 0:r}return dm.call(t,e)?t[e]:void 0}var gm=pm,fm=Object.prototype,ym=fm.hasOwnProperty;function mm(e){var t=this.__data__;return hr?t[e]!==void 0:ym.call(t,e)}var bm=mm,hm="__lodash_hash_undefined__";function vm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?hm:t,this}var wm=vm;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=am;Qe.prototype.delete=sm;Qe.prototype.get=gm;Qe.prototype.has=bm;Qe.prototype.set=wm;var bs=Qe;function km(){this.__data__=[],this.size=0}var xm=km;function Im(e,t){for(var r=e.length;r--;)if(yy(e[r][0],t))return r;return-1}var mn=Im,Cm=Array.prototype,Am=Cm.splice;function Mm(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Am.call(t,r,1),--this.size,!0}var jm=Mm;function Sm(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var $m=Sm;function _m(e){return mn(this.__data__,e)>-1}var Em=_m;function Lm(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 Tm=Lm;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=xm;We.prototype.delete=jm;We.prototype.get=$m;We.prototype.has=Em;We.prototype.set=Tm;var bn=We,Om=Ze(K,"Map"),vr=Om;function Nm(){this.size=0,this.__data__={hash:new bs,map:new(vr||bn),string:new bs}}var Dm=Nm;function Pm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zm=Pm;function Um(e,t){var r=e.__data__;return zm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=Um;function Rm(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var Fm=Rm;function Vm(e){return hn(this,e).get(e)}var Bm=Vm;function qm(e){return hn(this,e).has(e)}var Gm=qm;function Ym(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Hm=Ym;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=Dm;Ke.prototype.delete=Fm;Ke.prototype.get=Bm;Ke.prototype.has=Gm;Ke.prototype.set=Hm;var _s=Ke;function Zm(){this.__data__=new bn,this.size=0}var Qm=Zm;function Wm(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Km=Wm;function Jm(e){return this.__data__.get(e)}var Xm=Jm;function eb(e){return this.__data__.has(e)}var tb=eb,rb=200;function ib(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!vr||i.length<rb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new _s(i)}return r.set(e,t),this.size=r.size,this}var nb=ib;function kr(e){var t=this.__data__=new bn(e);this.size=t.size}kr.prototype.clear=Qm;kr.prototype.delete=Km;kr.prototype.get=Xm;kr.prototype.has=tb;kr.prototype.set=nb;var ob=Object.prototype,LK=ob.propertyIsEnumerable;var ab=Ze(K,"DataView"),To=ab,lb=Ze(K,"Promise"),Oo=lb,sb=Ze(K,"Set"),No=sb,hs="[object Map]",ub="[object Object]",vs="[object Promise]",ws="[object Set]",ks="[object WeakMap]",xs="[object DataView]",cb=$e(To),db=$e(vr),pb=$e(Oo),gb=$e(No),fb=$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==ub?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case cb:return xs;case db:return hs;case pb:return vs;case gb:return ws;case fb:return ks}return t});var TK=K.Uint8Array;var yb="__lodash_hash_undefined__";function mb(e){return this.__data__.set(e,yb),this}var bb=mb;function hb(e){return this.__data__.has(e)}var vb=hb;function Do(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new _s;++t<r;)this.add(e[t])}Do.prototype.add=Do.prototype.push=bb;Do.prototype.has=vb;var Is=He?He.prototype:void 0,OK=Is?Is.valueOf:void 0;var wb=Object.prototype,NK=wb.hasOwnProperty;var kb=Object.prototype,DK=kb.hasOwnProperty;var PK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),zK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),UK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function xb(e){return e!==void 0}var Es=xb;var Ib=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Ib,Cb=typeof self=="object"&&self&&self.Object===Object&&self,Ab=Ys||Cb||Function("return this")(),J=Ab,Mb=J.Symbol,Xe=Mb,Hs=Object.prototype,jb=Hs.hasOwnProperty,Sb=Hs.toString,xr=Xe?Xe.toStringTag:void 0;function $b(e){var t=jb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Sb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var _b=$b,Eb=Object.prototype,Lb=Eb.toString;function Tb(e){return Lb.call(e)}var Ob=Tb,Nb="[object Null]",Db="[object Undefined]",Ls=Xe?Xe.toStringTag:void 0;function Pb(e){return e==null?e===void 0?Db:Nb:Ls&&Ls in Object(e)?_b(e):Ob(e)}var Mr=Pb;function zb(e){return e!=null&&typeof e=="object"}var Yo=zb,FK=Array.isArray;function Ub(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zs=Ub,Rb="[object AsyncFunction]",Fb="[object Function]",Vb="[object GeneratorFunction]",Bb="[object Proxy]";function qb(e){if(!Zs(e))return!1;var t=Mr(e);return t==Fb||t==Vb||t==Rb||t==Bb}var Gb=qb,Yb=J["__core-js_shared__"],zo=Yb,Ts=function(){var e=/[^.]+$/.exec(zo&&zo.keys&&zo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hb(e){return!!Ts&&Ts in e}var Zb=Hb,Qb=Function.prototype,Wb=Qb.toString;function Kb(e){if(e!=null){try{return Wb.call(e)}catch{}try{return e+""}catch{}}return""}var _e=Kb,Jb=/[\\^$.*+?()[\]{}|]/g,Xb=/^\[object .+?Constructor\]$/,eh=Function.prototype,th=Object.prototype,rh=eh.toString,ih=th.hasOwnProperty,nh=RegExp("^"+rh.call(ih).replace(Jb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oh(e){if(!Zs(e)||Zb(e))return!1;var t=Gb(e)?nh:Xb;return t.test(_e(e))}var ah=oh;function lh(e,t){return e?.[t]}var sh=lh;function uh(e,t){var r=sh(e,t);return ah(r)?r:void 0}var et=uh,ch=et(J,"WeakMap"),Fo=ch;function dh(e,t){return e===t||e!==e&&t!==t}var ph=dh,gh=9007199254740991;function fh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gh}var yh=fh,VK=Object.prototype,mh="[object Arguments]";function bh(e){return Yo(e)&&Mr(e)==mh}var Os=bh,Qs=Object.prototype,hh=Qs.hasOwnProperty,vh=Qs.propertyIsEnumerable,BK=Os(function(){return arguments}())?Os:function(e){return Yo(e)&&hh.call(e,"callee")&&!vh.call(e,"callee")},Ws=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ns=Ws&&typeof module=="object"&&module&&!module.nodeType&&module,wh=Ns&&Ns.exports===Ws,Ds=wh?J.Buffer:void 0,qK=Ds?Ds.isBuffer:void 0,kh="[object Arguments]",xh="[object Array]",Ih="[object Boolean]",Ch="[object Date]",Ah="[object Error]",Mh="[object Function]",jh="[object Map]",Sh="[object Number]",$h="[object Object]",_h="[object RegExp]",Eh="[object Set]",Lh="[object String]",Th="[object WeakMap]",Oh="[object ArrayBuffer]",Nh="[object DataView]",Dh="[object Float32Array]",Ph="[object Float64Array]",zh="[object Int8Array]",Uh="[object Int16Array]",Rh="[object Int32Array]",Fh="[object Uint8Array]",Vh="[object Uint8ClampedArray]",Bh="[object Uint16Array]",qh="[object Uint32Array]",T={};T[Dh]=T[Ph]=T[zh]=T[Uh]=T[Rh]=T[Fh]=T[Vh]=T[Bh]=T[qh]=!0;T[kh]=T[xh]=T[Oh]=T[Ih]=T[Nh]=T[Ch]=T[Ah]=T[Mh]=T[jh]=T[Sh]=T[$h]=T[_h]=T[Eh]=T[Lh]=T[Th]=!1;function Gh(e){return Yo(e)&&yh(e.length)&&!!T[Mr(e)]}var Yh=Gh;function Hh(e){return function(t){return e(t)}}var Zh=Hh,Ks=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=Ks&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Ir&&Ir.exports===Ks,Uo=Qh&&Ys.process,Wh=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Uo&&Uo.binding&&Uo.binding("util")}catch{}}(),Ps=Wh,zs=Ps&&Ps.isTypedArray,GK=zs?Zh(zs):Yh,Kh=Object.prototype,YK=Kh.hasOwnProperty;function Jh(e,t){return function(r){return e(t(r))}}var Xh=Jh,HK=Xh(Object.keys,Object),e0=Object.prototype,ZK=e0.hasOwnProperty,t0=et(Object,"create"),Cr=t0;function r0(){this.__data__=Cr?Cr(null):{},this.size=0}var i0=r0;function n0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o0=n0,a0="__lodash_hash_undefined__",l0=Object.prototype,s0=l0.hasOwnProperty;function u0(e){var t=this.__data__;if(Cr){var r=t[e];return r===a0?void 0:r}return s0.call(t,e)?t[e]:void 0}var c0=u0,d0=Object.prototype,p0=d0.hasOwnProperty;function g0(e){var t=this.__data__;return Cr?t[e]!==void 0:p0.call(t,e)}var f0=g0,y0="__lodash_hash_undefined__";function m0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?y0:t,this}var b0=m0;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=o0;tt.prototype.get=c0;tt.prototype.has=f0;tt.prototype.set=b0;var Us=tt;function h0(){this.__data__=[],this.size=0}var v0=h0;function w0(e,t){for(var r=e.length;r--;)if(ph(e[r][0],t))return r;return-1}var vn=w0,k0=Array.prototype,x0=k0.splice;function I0(e){var t=this.__data__,r=vn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x0.call(t,r,1),--this.size,!0}var C0=I0;function A0(e){var t=this.__data__,r=vn(t,e);return r<0?void 0:t[r][1]}var M0=A0;function j0(e){return vn(this.__data__,e)>-1}var S0=j0;function $0(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 _0=$0;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=v0;rt.prototype.delete=C0;rt.prototype.get=M0;rt.prototype.has=S0;rt.prototype.set=_0;var wn=rt,E0=et(J,"Map"),Ar=E0;function L0(){this.size=0,this.__data__={hash:new Us,map:new(Ar||wn),string:new Us}}var T0=L0;function O0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N0=O0;function D0(e,t){var r=e.__data__;return N0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var kn=D0;function P0(e){var t=kn(this,e).delete(e);return this.size-=t?1:0,t}var z0=P0;function U0(e){return kn(this,e).get(e)}var R0=U0;function F0(e){return kn(this,e).has(e)}var V0=F0;function B0(e,t){var r=kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q0=B0;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=T0;it.prototype.delete=z0;it.prototype.get=R0;it.prototype.has=V0;it.prototype.set=q0;var Js=it;function G0(){this.__data__=new wn,this.size=0}var Y0=G0;function H0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z0=H0;function Q0(e){return this.__data__.get(e)}var W0=Q0;function K0(e){return this.__data__.has(e)}var J0=K0,X0=200;function e2(e,t){var r=this.__data__;if(r instanceof wn){var i=r.__data__;if(!Ar||i.length<X0-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 t2=e2;function jr(e){var t=this.__data__=new wn(e);this.size=t.size}jr.prototype.clear=Y0;jr.prototype.delete=Z0;jr.prototype.get=W0;jr.prototype.has=J0;jr.prototype.set=t2;var r2=Object.prototype,QK=r2.propertyIsEnumerable,i2=et(J,"DataView"),Vo=i2,n2=et(J,"Promise"),Bo=n2,o2=et(J,"Set"),qo=o2,Rs="[object Map]",a2="[object Object]",Fs="[object Promise]",Vs="[object Set]",Bs="[object WeakMap]",qs="[object DataView]",l2=_e(Vo),s2=_e(Ar),u2=_e(Bo),c2=_e(qo),d2=_e(Fo),Je=Mr;(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=Mr(e),r=t==a2?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case l2:return qs;case s2:return Rs;case u2:return Fs;case c2:return Vs;case d2:return Bs}return t});var WK=J.Uint8Array,p2="__lodash_hash_undefined__";function g2(e){return this.__data__.set(e,p2),this}var f2=g2;function y2(e){return this.__data__.has(e)}var m2=y2;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=f2;Go.prototype.has=m2;var Gs=Xe?Xe.prototype:void 0,KK=Gs?Gs.valueOf:void 0,b2=Object.prototype,JK=b2.hasOwnProperty,h2=Object.prototype,XK=h2.hasOwnProperty,eJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),rJ=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 v2="ly.img.ai";function tu(e){return`${v2}.${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!
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 Po="@imgly/plugin-ai-generation",QK=`
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",iJ=`
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="${Po}/image"
22
+ id="${Ro}/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="${Po}/video"
34
+ id="${Ro}/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="${Po}/audio"
45
+ id="${Ro}/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 g2=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;nt(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.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=()=>{nt(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 nt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),nt(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 nt(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]=nt(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]=nt(n,t,a)}return e}var f2=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")}},y2=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)}},zu=y2,m2=typeof global=="object"&&global&&global.Object===Object&&global,Uu=m2,b2=typeof self=="object"&&self&&self.Object===Object&&self,h2=Uu||b2||Function("return this")(),K=h2,v2=K.Symbol,ot=v2,Ru=Object.prototype,w2=Ru.hasOwnProperty,k2=Ru.toString,Mr=ot?ot.toStringTag:void 0;function x2(e){var t=w2.call(e,Mr),r=e[Mr];try{e[Mr]=void 0;var i=!0}catch{}var n=k2.call(e);return i&&(t?e[Mr]=r:delete e[Mr]),n}var I2=x2,C2=Object.prototype,A2=C2.toString;function M2(e){return A2.call(e)}var j2=M2,S2="[object Null]",$2="[object Undefined]",Ks=ot?ot.toStringTag:void 0;function _2(e){return e==null?e===void 0?$2:S2:Ks&&Ks in Object(e)?I2(e):j2(e)}var Rr=_2;function E2(e){return e!=null&&typeof e=="object"}var da=E2,KK=Array.isArray;function T2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Fu=T2,L2="[object AsyncFunction]",O2="[object Function]",N2="[object GeneratorFunction]",D2="[object Proxy]";function P2(e){if(!Fu(e))return!1;var t=Rr(e);return t==O2||t==N2||t==L2||t==D2}var z2=P2,U2=K["__core-js_shared__"],qo=U2,Js=function(){var e=/[^.]+$/.exec(qo&&qo.keys&&qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function R2(e){return!!Js&&Js in e}var F2=R2,V2=Function.prototype,B2=V2.toString;function q2(e){if(e!=null){try{return B2.call(e)}catch{}try{return e+""}catch{}}return""}var _e=q2,G2=/[\\^$.*+?()[\]{}|]/g,Y2=/^\[object .+?Constructor\]$/,H2=Function.prototype,Z2=Object.prototype,Q2=H2.toString,W2=Z2.hasOwnProperty,K2=RegExp("^"+Q2.call(W2).replace(G2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function J2(e){if(!Fu(e)||F2(e))return!1;var t=z2(e)?K2:Y2;return t.test(_e(e))}var X2=J2;function e4(e,t){return e?.[t]}var t4=e4;function r4(e,t){var r=t4(e,t);return X2(r)?r:void 0}var lt=r4,i4=lt(K,"WeakMap"),Xo=i4;function n4(e,t){return e===t||e!==e&&t!==t}var o4=n4,a4=9007199254740991;function l4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=a4}var s4=l4,JK=Object.prototype,u4="[object Arguments]";function c4(e){return da(e)&&Rr(e)==u4}var Xs=c4,Vu=Object.prototype,d4=Vu.hasOwnProperty,p4=Vu.propertyIsEnumerable,XK=Xs(function(){return arguments}())?Xs:function(e){return da(e)&&d4.call(e,"callee")&&!p4.call(e,"callee")},Bu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,eu=Bu&&typeof module=="object"&&module&&!module.nodeType&&module,g4=eu&&eu.exports===Bu,tu=g4?K.Buffer:void 0,eJ=tu?tu.isBuffer:void 0,f4="[object Arguments]",y4="[object Array]",m4="[object Boolean]",b4="[object Date]",h4="[object Error]",v4="[object Function]",w4="[object Map]",k4="[object Number]",x4="[object Object]",I4="[object RegExp]",C4="[object Set]",A4="[object String]",M4="[object WeakMap]",j4="[object ArrayBuffer]",S4="[object DataView]",$4="[object Float32Array]",_4="[object Float64Array]",E4="[object Int8Array]",T4="[object Int16Array]",L4="[object Int32Array]",O4="[object Uint8Array]",N4="[object Uint8ClampedArray]",D4="[object Uint16Array]",P4="[object Uint32Array]",O={};O[$4]=O[_4]=O[E4]=O[T4]=O[L4]=O[O4]=O[N4]=O[D4]=O[P4]=!0;O[f4]=O[y4]=O[j4]=O[m4]=O[S4]=O[b4]=O[h4]=O[v4]=O[w4]=O[k4]=O[x4]=O[I4]=O[C4]=O[A4]=O[M4]=!1;function z4(e){return da(e)&&s4(e.length)&&!!O[Rr(e)]}var U4=z4;function R4(e){return function(t){return e(t)}}var F4=R4,qu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Or=qu&&typeof module=="object"&&module&&!module.nodeType&&module,V4=Or&&Or.exports===qu,Go=V4&&Uu.process,B4=function(){try{var e=Or&&Or.require&&Or.require("util").types;return e||Go&&Go.binding&&Go.binding("util")}catch{}}(),ru=B4,iu=ru&&ru.isTypedArray,tJ=iu?F4(iu):U4,q4=Object.prototype,rJ=q4.hasOwnProperty;function G4(e,t){return function(r){return e(t(r))}}var Y4=G4,iJ=Y4(Object.keys,Object),H4=Object.prototype,nJ=H4.hasOwnProperty,Z4=lt(Object,"create"),Dr=Z4;function Q4(){this.__data__=Dr?Dr(null):{},this.size=0}var W4=Q4;function K4(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var J4=K4,X4="__lodash_hash_undefined__",e5=Object.prototype,t5=e5.hasOwnProperty;function r5(e){var t=this.__data__;if(Dr){var r=t[e];return r===X4?void 0:r}return t5.call(t,e)?t[e]:void 0}var i5=r5,n5=Object.prototype,o5=n5.hasOwnProperty;function a5(e){var t=this.__data__;return Dr?t[e]!==void 0:o5.call(t,e)}var l5=a5,s5="__lodash_hash_undefined__";function u5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Dr&&t===void 0?s5:t,this}var c5=u5;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=W4;st.prototype.delete=J4;st.prototype.get=i5;st.prototype.has=l5;st.prototype.set=c5;var nu=st;function d5(){this.__data__=[],this.size=0}var p5=d5;function g5(e,t){for(var r=e.length;r--;)if(o4(e[r][0],t))return r;return-1}var Sn=g5,f5=Array.prototype,y5=f5.splice;function m5(e){var t=this.__data__,r=Sn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():y5.call(t,r,1),--this.size,!0}var b5=m5;function h5(e){var t=this.__data__,r=Sn(t,e);return r<0?void 0:t[r][1]}var v5=h5;function w5(e){return Sn(this.__data__,e)>-1}var k5=w5;function x5(e,t){var r=this.__data__,i=Sn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var I5=x5;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=p5;ut.prototype.delete=b5;ut.prototype.get=v5;ut.prototype.has=k5;ut.prototype.set=I5;var $n=ut,C5=lt(K,"Map"),Pr=C5;function A5(){this.size=0,this.__data__={hash:new nu,map:new(Pr||$n),string:new nu}}var M5=A5;function j5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var S5=j5;function $5(e,t){var r=e.__data__;return S5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _n=$5;function _5(e){var t=_n(this,e).delete(e);return this.size-=t?1:0,t}var E5=_5;function T5(e){return _n(this,e).get(e)}var L5=T5;function O5(e){return _n(this,e).has(e)}var N5=O5;function D5(e,t){var r=_n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var P5=D5;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=M5;ct.prototype.delete=E5;ct.prototype.get=L5;ct.prototype.has=N5;ct.prototype.set=P5;var Gu=ct;function z5(){this.__data__=new $n,this.size=0}var U5=z5;function R5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var F5=R5;function V5(e){return this.__data__.get(e)}var B5=V5;function q5(e){return this.__data__.has(e)}var G5=q5,Y5=200;function H5(e,t){var r=this.__data__;if(r instanceof $n){var i=r.__data__;if(!Pr||i.length<Y5-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Gu(i)}return r.set(e,t),this.size=r.size,this}var Z5=H5;function Fr(e){var t=this.__data__=new $n(e);this.size=t.size}Fr.prototype.clear=U5;Fr.prototype.delete=F5;Fr.prototype.get=B5;Fr.prototype.has=G5;Fr.prototype.set=Z5;var Q5=Object.prototype,oJ=Q5.propertyIsEnumerable,W5=lt(K,"DataView"),ea=W5,K5=lt(K,"Promise"),ta=K5,J5=lt(K,"Set"),ra=J5,ou="[object Map]",X5="[object Object]",au="[object Promise]",lu="[object Set]",su="[object WeakMap]",uu="[object DataView]",e9=_e(ea),t9=_e(Pr),r9=_e(ta),i9=_e(ra),n9=_e(Xo),rt=Rr;(ea&&rt(new ea(new ArrayBuffer(1)))!=uu||Pr&&rt(new Pr)!=ou||ta&&rt(ta.resolve())!=au||ra&&rt(new ra)!=lu||Xo&&rt(new Xo)!=su)&&(rt=function(e){var t=Rr(e),r=t==X5?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case e9:return uu;case t9:return ou;case r9:return au;case i9:return lu;case n9:return su}return t});var aJ=K.Uint8Array,o9="__lodash_hash_undefined__";function a9(e){return this.__data__.set(e,o9),this}var l9=a9;function s9(e){return this.__data__.has(e)}var u9=s9;function ia(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Gu;++t<r;)this.add(e[t])}ia.prototype.add=ia.prototype.push=l9;ia.prototype.has=u9;var cu=ot?ot.prototype:void 0,lJ=cu?cu.valueOf:void 0,c9=Object.prototype,sJ=c9.hasOwnProperty,d9=Object.prototype,uJ=d9.hasOwnProperty,cJ=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");function p9(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Yu(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 na(e,t){let r=await Yu(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 Yu(i,t)}function f9(e){return e!==void 0}var En=f9;function Vr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Br(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 pa=class Hu{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 Hu),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))}},Zu=class Qu{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Qu),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 y9(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 m9({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 b9=m9,Yo="ly.img.ai.temp";async function h9(e,t){return e.engine.asset.findAllSources().includes(Yo)||e.engine.asset.addLocalSource(Yo),e.engine.asset.apply(Yo,t)}function v9(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 Wu(){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 w9(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 k9(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 ga(e){return e instanceof Error&&e.name==="AbortError"}function x9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function I9(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 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 k2=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.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 x2=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")}},I2=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)}},Gu=I2,C2=typeof global=="object"&&global&&global.Object===Object&&global,Yu=C2,A2=typeof self=="object"&&self&&self.Object===Object&&self,M2=Yu||A2||Function("return this")(),X=M2,j2=X.Symbol,lt=j2,Hu=Object.prototype,S2=Hu.hasOwnProperty,$2=Hu.toString,Sr=lt?lt.toStringTag:void 0;function _2(e){var t=S2.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=$2.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var E2=_2,L2=Object.prototype,T2=L2.toString;function O2(e){return T2.call(e)}var N2=O2,D2="[object Null]",P2="[object Undefined]",nu=lt?lt.toStringTag:void 0;function z2(e){return e==null?e===void 0?P2:D2:nu&&nu in Object(e)?E2(e):N2(e)}var Vr=z2;function U2(e){return e!=null&&typeof e=="object"}var fa=U2,aJ=Array.isArray;function R2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zu=R2,F2="[object AsyncFunction]",V2="[object Function]",B2="[object GeneratorFunction]",q2="[object Proxy]";function G2(e){if(!Zu(e))return!1;var t=Vr(e);return t==V2||t==B2||t==F2||t==q2}var Y2=G2,H2=X["__core-js_shared__"],Ho=H2,ou=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Z2(e){return!!ou&&ou in e}var Q2=Z2,W2=Function.prototype,K2=W2.toString;function J2(e){if(e!=null){try{return K2.call(e)}catch{}try{return e+""}catch{}}return""}var Le=J2,X2=/[\\^$.*+?()[\]{}|]/g,e4=/^\[object .+?Constructor\]$/,t4=Function.prototype,r4=Object.prototype,i4=t4.toString,n4=r4.hasOwnProperty,o4=RegExp("^"+i4.call(n4).replace(X2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a4(e){if(!Zu(e)||Q2(e))return!1;var t=Y2(e)?o4:e4;return t.test(Le(e))}var l4=a4;function s4(e,t){return e?.[t]}var u4=s4;function c4(e,t){var r=u4(e,t);return l4(r)?r:void 0}var ut=c4,d4=ut(X,"WeakMap"),ra=d4;function p4(e,t){return e===t||e!==e&&t!==t}var g4=p4,f4=9007199254740991;function y4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f4}var m4=y4,lJ=Object.prototype,b4="[object Arguments]";function h4(e){return fa(e)&&Vr(e)==b4}var au=h4,Qu=Object.prototype,v4=Qu.hasOwnProperty,w4=Qu.propertyIsEnumerable,sJ=au(function(){return arguments}())?au:function(e){return fa(e)&&v4.call(e,"callee")&&!w4.call(e,"callee")},Wu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lu=Wu&&typeof module=="object"&&module&&!module.nodeType&&module,k4=lu&&lu.exports===Wu,su=k4?X.Buffer:void 0,uJ=su?su.isBuffer:void 0,x4="[object Arguments]",I4="[object Array]",C4="[object Boolean]",A4="[object Date]",M4="[object Error]",j4="[object Function]",S4="[object Map]",$4="[object Number]",_4="[object Object]",E4="[object RegExp]",L4="[object Set]",T4="[object String]",O4="[object WeakMap]",N4="[object ArrayBuffer]",D4="[object DataView]",P4="[object Float32Array]",z4="[object Float64Array]",U4="[object Int8Array]",R4="[object Int16Array]",F4="[object Int32Array]",V4="[object Uint8Array]",B4="[object Uint8ClampedArray]",q4="[object Uint16Array]",G4="[object Uint32Array]",O={};O[P4]=O[z4]=O[U4]=O[R4]=O[F4]=O[V4]=O[B4]=O[q4]=O[G4]=!0;O[x4]=O[I4]=O[N4]=O[C4]=O[D4]=O[A4]=O[M4]=O[j4]=O[S4]=O[$4]=O[_4]=O[E4]=O[L4]=O[T4]=O[O4]=!1;function Y4(e){return fa(e)&&m4(e.length)&&!!O[Vr(e)]}var H4=Y4;function Z4(e){return function(t){return e(t)}}var Q4=Z4,Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,W4=Dr&&Dr.exports===Ku,Zo=W4&&Yu.process,K4=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),uu=K4,cu=uu&&uu.isTypedArray,cJ=cu?Q4(cu):H4,J4=Object.prototype,dJ=J4.hasOwnProperty;function X4(e,t){return function(r){return e(t(r))}}var e5=X4,pJ=e5(Object.keys,Object),t5=Object.prototype,gJ=t5.hasOwnProperty,r5=ut(Object,"create"),zr=r5;function i5(){this.__data__=zr?zr(null):{},this.size=0}var n5=i5;function o5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a5=o5,l5="__lodash_hash_undefined__",s5=Object.prototype,u5=s5.hasOwnProperty;function c5(e){var t=this.__data__;if(zr){var r=t[e];return r===l5?void 0:r}return u5.call(t,e)?t[e]:void 0}var d5=c5,p5=Object.prototype,g5=p5.hasOwnProperty;function f5(e){var t=this.__data__;return zr?t[e]!==void 0:g5.call(t,e)}var y5=f5,m5="__lodash_hash_undefined__";function b5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?m5:t,this}var h5=b5;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=n5;ct.prototype.delete=a5;ct.prototype.get=d5;ct.prototype.has=y5;ct.prototype.set=h5;var du=ct;function v5(){this.__data__=[],this.size=0}var w5=v5;function k5(e,t){for(var r=e.length;r--;)if(g4(e[r][0],t))return r;return-1}var En=k5,x5=Array.prototype,I5=x5.splice;function C5(e){var t=this.__data__,r=En(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():I5.call(t,r,1),--this.size,!0}var A5=C5;function M5(e){var t=this.__data__,r=En(t,e);return r<0?void 0:t[r][1]}var j5=M5;function S5(e){return En(this.__data__,e)>-1}var $5=S5;function _5(e,t){var r=this.__data__,i=En(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var E5=_5;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=w5;dt.prototype.delete=A5;dt.prototype.get=j5;dt.prototype.has=$5;dt.prototype.set=E5;var Ln=dt,L5=ut(X,"Map"),Ur=L5;function T5(){this.size=0,this.__data__={hash:new du,map:new(Ur||Ln),string:new du}}var O5=T5;function N5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var D5=N5;function P5(e,t){var r=e.__data__;return D5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=P5;function z5(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var U5=z5;function R5(e){return Tn(this,e).get(e)}var F5=R5;function V5(e){return Tn(this,e).has(e)}var B5=V5;function q5(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var G5=q5;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=O5;pt.prototype.delete=U5;pt.prototype.get=F5;pt.prototype.has=B5;pt.prototype.set=G5;var Ju=pt;function Y5(){this.__data__=new Ln,this.size=0}var H5=Y5;function Z5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Q5=Z5;function W5(e){return this.__data__.get(e)}var K5=W5;function J5(e){return this.__data__.has(e)}var X5=J5,e9=200;function t9(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!Ur||i.length<e9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ju(i)}return r.set(e,t),this.size=r.size,this}var r9=t9;function Br(e){var t=this.__data__=new Ln(e);this.size=t.size}Br.prototype.clear=H5;Br.prototype.delete=Q5;Br.prototype.get=K5;Br.prototype.has=X5;Br.prototype.set=r9;var i9=Object.prototype,fJ=i9.propertyIsEnumerable,n9=ut(X,"DataView"),ia=n9,o9=ut(X,"Promise"),na=o9,a9=ut(X,"Set"),oa=a9,pu="[object Map]",l9="[object Object]",gu="[object Promise]",fu="[object Set]",yu="[object WeakMap]",mu="[object DataView]",s9=Le(ia),u9=Le(Ur),c9=Le(na),d9=Le(oa),p9=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==l9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case s9:return mu;case u9:return pu;case c9:return gu;case d9:return fu;case p9:return yu}return t});var yJ=X.Uint8Array,g9="__lodash_hash_undefined__";function f9(e){return this.__data__.set(e,g9),this}var y9=f9;function m9(e){return this.__data__.has(e)}var b9=m9;function aa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ju;++t<r;)this.add(e[t])}aa.prototype.add=aa.prototype.push=y9;aa.prototype.has=b9;var bu=lt?lt.prototype:void 0,mJ=bu?bu.valueOf:void 0,h9=Object.prototype,bJ=h9.hasOwnProperty,v9=Object.prototype,hJ=v9.hasOwnProperty,vJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function w9(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Xu(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 Xu(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 k9(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 Xu(i,t)}function x9(e){return e!==void 0}var On=x9;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 ec{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 ec),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))}},tc=class rc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rc),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 I9(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 C9({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 A9=C9,Qo="ly.img.ai.temp";async function M9(e,t){return e.engine.asset.findAllSources().includes(Qo)||e.engine.asset.addLocalSource(Qo),e.engine.asset.apply(Qo,t)}function j9(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 ic(){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 S9(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 $9(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 _9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function E9(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 C9(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 A9=C9;function M9(){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 qr=M9;function j9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),S9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:v9(e)}))}function S9(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 du=j9,$9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fa=$9;function _9(e,t,r){switch(t){case"image":return E9(e,r[t]);case"video":return T9(e,r[t]);case"sticker":return L9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function E9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function T9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function L9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var O9=_9;async function N9(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 D9(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 P9(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 z9(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 U9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function D9(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 P9(e,t,r){let i=t.width,n=t.height,a=await w9(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 z9(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 U9(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 Ku=N9;function R9(e){switch(e.userFlow){case"placeholder":return V9(e);case"generation-only":return F9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function F9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ge(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ge(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(ge(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Wu(),c=await Ku(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 V9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ge(t,r))return{status:"aborted"};let s=Wu(),c=O9(s,a,o);if(i=await h9(t,c),ge(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(ge(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 Ku(s,a,o,l.output);if(ge(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),ge(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)&&(ga(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 ge(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var B9=R9;function ya(e){return`${e}.generating`}function q9(e){return`${e}.abort`}function G9(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(q9(d),()=>{}),m=c.global(ya(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await B9({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(y.status==="aborted")return;if(y.status==="error"){du(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Y9(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ga(y))return;du(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 Y9(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 Ju=G9;async function H9({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(ya(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ju(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Z9=H9;function Xu(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 Er(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=Xu(e,t.$ref),n={...Er(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Er(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Er(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Er(e,t[n],r));return i}return t}function Q9(e){return Er(e,{...e})}function W9(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 K9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return J9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function J9(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=X9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function X9(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 ec=K9;function fe(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 tc(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 rc(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?e3(e,c,r,i,n,a,o,s):ic(e,c,r,i,n,a,o,s);case"boolean":return nc(e,c,r,i,n,a,o,s);case"number":case"integer":return oc(e,c,r,i,n,a,o,s);case"object":return oa(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 oa(e,t,r,i,n,a,o,s){let c=ec(t.schema??{},i).reduce((l,u)=>{let d=rc(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 ic(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=fe(t,r,o),m=fe(t,r,o,"placeholder"),f=Vr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Br(d,h,f,t.schema.default,""),v=l(p,b),k=r3(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function e3(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=fe(t,r,o),{labels:m,icons:f}=tc(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:fe(t,r,o,I),icon:f[I]})),b=Vr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Br(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function nc(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=fe(t,r,o),m=Vr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Br(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function oc(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=fe(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Vr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Br(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,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,p=`${r.id}.${d}`,g=fe(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=tc(t.schema),x=Vr(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:ic,boolean:nc,integer:oc,object:oa},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:fe(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>oa(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Br(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function r3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var i3=rc,n3={"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 pu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function o3(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),m=d[g]||pu(g);n[a(u,g)]=m})};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,m=u[g]||pu(g);n[a(l.id,g)]=m}})}});let c={...n3,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function a3({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=Q9(r.document),c=Xu(s,r.inputReference);if(!W9(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=ec(l,r);return o3(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=i3(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Ju(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var l3=a3;async function s3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Z9(e,t);case"schema":return l3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var u3=s3;function c3(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 g2(o,r)),o}return i}var d3=c3;function p3(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 g3=p3,Ho="@imgly/plugin-ai-generation",f3=`
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 L9(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 T9=L9;function O9(){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=O9;function N9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),D9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:j9(e)}))}function D9(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=N9,P9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ba=P9;function z9(e,t,r){switch(t){case"image":return U9(e,r[t]);case"video":return R9(e,r[t]);case"sticker":return F9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function U9(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 R9(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 F9(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 V9=z9;async function B9(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 q9(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 G9(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 Y9(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 H9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function q9(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 G9(e,t,r){let i=t.width,n=t.height,a=await S9(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 Y9(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 H9(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 nc=B9;function Z9(e){switch(e.userFlow){case"placeholder":return W9(e);case"generation-only":return Q9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Q9(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=ic(),c=await nc(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 W9(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=ic(),c=V9(s,a,o);if(i=await M9(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 nc(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 K9=Z9;function ha(e){return`${e}.generating`}function J9(e){return`${e}.abort`}function X9(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(J9(d),()=>{}),m=c.global(ha(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=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:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await K9({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(y.status==="aborted")return;if(y.status==="error"){hu(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;e3(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ma(y))return;hu(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 e3(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 oc=X9;async function t3({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 oc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var r3=t3;function ac(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=ac(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 i3(e){return Tr(e,{...e})}function n3(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 o3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return a3(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function a3(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=l3(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function l3(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 lc=o3;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 sc(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 uc(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?s3(e,c,r,i,n,a,o,s):cc(e,c,r,i,n,a,o,s);case"boolean":return dc(e,c,r,i,n,a,o,s);case"number":case"integer":return pc(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 u3(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=lc(t.schema??{},i).reduce((l,u)=>{let d=uc(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 cc(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),m=me(t,r,o,"placeholder"),f=qr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Gr(d,h,f,t.schema.default,""),v=l(p,b),k=c3(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function s3(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:m,icons:f}=sc(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),b=qr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gr(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function dc(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),m=qr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gr(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function pc(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),m=t.schema.minimum,f=t.schema.maximum,h=qr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Gr(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function u3(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),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=sc(t.schema),x=qr(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:cc,boolean:dc,integer:pc,object:sa},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:me(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>sa(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Gr(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function c3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var d3=uc,p3={"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 g3(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),m=d[g]||vu(g);n[a(u,g)]=m})};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,m=u[g]||vu(g);n[a(l.id,g)]=m}})}});let c={...p3,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}async function f3({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=i3(r.document),c=ac(s,r.inputReference);if(!n3(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=lc(l,r);return g3(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=d3(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});oc(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var y3=f3;async function m3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return r3(e,t);case"schema":return y3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var b3=m3;function h3(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 k2(o,r)),o}return i}var v3=h3;function w3(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 k3=w3,Wo="@imgly/plugin-ai-generation",x3=`
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="${Ho}/image"
86
+ id="${Wo}/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="${Ho}/video"
98
+ id="${Wo}/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="${Ho}/audio"
109
+ id="${Wo}/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
- `,y3=f3;function m3(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 ac(2e3),await b3(t,e,r)):i(t,r)}async function b3(e,t,r){switch(t.kind){case"image":return h3(e,t,r);case"video":return v3(e,t,r);case"text":return w3(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 h3(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 na(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 v3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function w3(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=jr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=jr(n,o)}else"customPrompt"in e?a=jr(n,"custom"):a=jr(n,"improved");else a=jr(n,"generated");return k3(a,r.abortSignal)}async function*k3(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 ac(100)}return{kind:"text",text:e}}function jr(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:I3(220,i),duration:i,thumbnailUrl:void 0}}function I3(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 C3(i,44100)}function C3(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function ac(e){return new Promise(t=>{setTimeout(t,e)})}var A3=m3,lc="USER_CANCEL";function M3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=y9([...e.provider.output.middleware??[],...r?.middlewares??[],b9({enable:r?.debug}),A3({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}:k9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ga(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===lc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var j3=M3;async function S3(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=pa.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=d3(a),s=g3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=j3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await u3(a,c);x9(r.cesdk,"@imgly/plugin-ai-generation",y3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Zu.get().register(u),u}var Zo=S3;function $3(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 f2(n,r,i);return r.engine.asset.addSource(a),a.id}var _3=$3;function Tr(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 E3(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"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=>Zo(e,u,r,i)));o.push(...l),a=L3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Zo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Zo(e,d,r,i)));o.push(...u),a=T3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=_3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(En)}),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 T3({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Tr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Tr(e,"fromText.label"),icon:f.value!=="fromText"&&gu(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:Tr(e,"fromImage.label"),icon:f.value!=="fromImage"&&gu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Tr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function L3({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:Tr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function gu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ya(r.id),!1).value)}var O3=E3,Tn="ly.img.ai.editMode",sc="ly.img.ai.metadata";async function N3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({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 zu(n,sc),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 m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var D3=N3;function P3(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 z3=P3;function U3(e){return`ly.img.ai.${e}.canvasMenu`}var R3=U3;function F3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=R3(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 V3=F3;function B3(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 q3(e,t);case"image":return G3(e,t);case"video":return Y3(e,t);case"audio":return H3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function q3(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 G3(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 na(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),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};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 k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await Z3(r,k,x),I=await na(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();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);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function Y3(e,t){throw new Error("Function not implemented.")}async function H3(e,t){throw new Error("Function not implemented.")}async function Z3(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${p9(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Q3=B3;function W3(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 K3=W3,J3=class uc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new uc),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=J3;function X3(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(En)),c=new zu(e.cesdk.engine,sc),l=e.lock??!0?K3({engine:e.cesdk.engine,editModeToLockTo:Tn,blockIdsToLock:i}):()=>{};i.forEach(u=>{$e.get().register(u,{onCancelGeneration:()=>{o.abort(lc),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 Q3(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(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{$e.get().register(m,{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 fu=X3;function ev(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Tn)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=V3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=tv(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=Zu.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(En);return j=z3(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&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:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:fu({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&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:()=>{h.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:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:fu({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function tv(e){return e.map(t=>t==="ly.img.separator"?t:pa.get().getBy({id:t,type:"quick"})[0]).filter(En)}var rv=ev;async function iv(e){let t=await rv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await D3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Tn){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 nv=iv,ov="@imgly/plugin-ai-image-generation",av=`
129
+ `,I3=x3;function C3(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 gc(2e3),await A3(t,e,r)):i(t,r)}async function A3(e,t,r){switch(t.kind){case"image":return M3(e,t,r);case"video":return j3(e,t,r);case"text":return S3(e,t,r);case"audio":return _3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function M3(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 k9(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 j3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function S3(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 $3(a,r.abortSignal)}async function*$3(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 gc(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 _3(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:E3(220,i),duration:i,thumbnailUrl:void 0}}function E3(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 L3(i,44100)}function L3(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function gc(e){return new Promise(t=>{setTimeout(t,e)})}var T3=C3,fc="USER_CANCEL";function O3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=I9([...e.provider.output.middleware??[],...r?.middlewares??[],A9({enable:r?.debug}),T3({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}:$9(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===fc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var N3=O3;async function D3(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 m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=v3(a),s=k3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=N3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await b3(a,c);_9(r.cesdk,"@imgly/plugin-ai-generation",I3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return tc.get().register(u),u}var Ko=D3;function P3(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 x2(n,r,i);return r.engine.asset.addSource(a),a.id}var z3=P3;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 U3(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=F3({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=R3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=z3({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 R3({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&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"&&wu(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"&&wu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function F3({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 wu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ha(r.id),!1).value)}var V3=U3,Nn="ly.img.ai.editMode",yc="ly.img.ai.metadata";async function B3(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 Gu(n,yc),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 m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var q3=B3;function G3(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 Y3=G3;function H3(e){return`ly.img.ai.${e}.canvasMenu`}var Z3=H3;function Q3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Z3(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 W3=Q3;function K3(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 J3(e,t);case"image":return X3(e,t);case"video":return ev(e,t);case"audio":return tv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function J3(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 X3(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),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};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 k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await rv(r,k,x),I=await la(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();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);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function ev(e,t){throw new Error("Function not implemented.")}async function tv(e,t){throw new Error("Function not implemented.")}async function rv(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${w9(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var iv=K3;function nv(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 ov=nv,av=class mc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ee=av;function lv(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 Gu(e.cesdk.engine,yc),l=e.lock??!0?ov({engine:e.cesdk.engine,editModeToLockTo:Nn,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ee.get().register(u,{onCancelGeneration:()=>{o.abort(fc),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 iv(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(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Ee.get().register(m,{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 ku=lv;function sv(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=W3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=uv(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=tc.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(On);return j=Y3(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&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:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:ku({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&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:()=>{h.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:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:ku({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function uv(e){return e.map(t=>t==="ly.img.separator"?t:ya.get().getBy({id:t,type:"quick"})[0]).filter(On)}var cv=sv;async function dv(e){let t=await cv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await q3({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=>{Ee.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ee.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var pv=dv,gv="@imgly/plugin-ai-image-generation",fv=`
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
- `,lv=av,sv=typeof global=="object"&&global&&global.Object===Object&&global,cc=sv,uv=typeof self=="object"&&self&&self.Object===Object&&self,cv=cc||uv||Function("return this")(),J=cv,dv=J.Symbol,at=dv,dc=Object.prototype,pv=dc.hasOwnProperty,gv=dc.toString,Sr=at?at.toStringTag:void 0;function fv(e){var t=pv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=gv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var yv=fv,mv=Object.prototype,bv=mv.toString;function hv(e){return bv.call(e)}var vv=hv,wv="[object Null]",kv="[object Undefined]",yu=at?at.toStringTag:void 0;function xv(e){return e==null?e===void 0?kv:wv:yu&&yu in Object(e)?yv(e):vv(e)}var Gr=xv;function Iv(e){return e!=null&&typeof e=="object"}var ma=Iv,gJ=Array.isArray;function Cv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var pc=Cv,Av="[object AsyncFunction]",Mv="[object Function]",jv="[object GeneratorFunction]",Sv="[object Proxy]";function $v(e){if(!pc(e))return!1;var t=Gr(e);return t==Mv||t==jv||t==Av||t==Sv}var _v=$v,Ev=J["__core-js_shared__"],Qo=Ev,mu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tv(e){return!!mu&&mu in e}var Lv=Tv,Ov=Function.prototype,Nv=Ov.toString;function Dv(e){if(e!=null){try{return Nv.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Dv,Pv=/[\\^$.*+?()[\]{}|]/g,zv=/^\[object .+?Constructor\]$/,Uv=Function.prototype,Rv=Object.prototype,Fv=Uv.toString,Vv=Rv.hasOwnProperty,Bv=RegExp("^"+Fv.call(Vv).replace(Pv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qv(e){if(!pc(e)||Lv(e))return!1;var t=_v(e)?Bv:zv;return t.test(Ee(e))}var Gv=qv;function Yv(e,t){return e?.[t]}var Hv=Yv;function Zv(e,t){var r=Hv(e,t);return Gv(r)?r:void 0}var dt=Zv,Qv=dt(J,"WeakMap"),aa=Qv;function Wv(e,t){return e===t||e!==e&&t!==t}var Kv=Wv,Jv=9007199254740991;function Xv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jv}var e8=Xv,fJ=Object.prototype,t8="[object Arguments]";function r8(e){return ma(e)&&Gr(e)==t8}var bu=r8,gc=Object.prototype,i8=gc.hasOwnProperty,n8=gc.propertyIsEnumerable,yJ=bu(function(){return arguments}())?bu:function(e){return ma(e)&&i8.call(e,"callee")&&!n8.call(e,"callee")},fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=fc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=hu&&hu.exports===fc,vu=o8?J.Buffer:void 0,mJ=vu?vu.isBuffer:void 0,a8="[object Arguments]",l8="[object Array]",s8="[object Boolean]",u8="[object Date]",c8="[object Error]",d8="[object Function]",p8="[object Map]",g8="[object Number]",f8="[object Object]",y8="[object RegExp]",m8="[object Set]",b8="[object String]",h8="[object WeakMap]",v8="[object ArrayBuffer]",w8="[object DataView]",k8="[object Float32Array]",x8="[object Float64Array]",I8="[object Int8Array]",C8="[object Int16Array]",A8="[object Int32Array]",M8="[object Uint8Array]",j8="[object Uint8ClampedArray]",S8="[object Uint16Array]",$8="[object Uint32Array]",N={};N[k8]=N[x8]=N[I8]=N[C8]=N[A8]=N[M8]=N[j8]=N[S8]=N[$8]=!0;N[a8]=N[l8]=N[v8]=N[s8]=N[w8]=N[u8]=N[c8]=N[d8]=N[p8]=N[g8]=N[f8]=N[y8]=N[m8]=N[b8]=N[h8]=!1;function _8(e){return ma(e)&&e8(e.length)&&!!N[Gr(e)]}var E8=_8;function T8(e){return function(t){return e(t)}}var L8=T8,yc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nr=yc&&typeof module=="object"&&module&&!module.nodeType&&module,O8=Nr&&Nr.exports===yc,Wo=O8&&cc.process,N8=function(){try{var e=Nr&&Nr.require&&Nr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),wu=N8,ku=wu&&wu.isTypedArray,bJ=ku?L8(ku):E8,D8=Object.prototype,hJ=D8.hasOwnProperty;function P8(e,t){return function(r){return e(t(r))}}var z8=P8,vJ=z8(Object.keys,Object),U8=Object.prototype,wJ=U8.hasOwnProperty,R8=dt(Object,"create"),zr=R8;function F8(){this.__data__=zr?zr(null):{},this.size=0}var V8=F8;function B8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var q8=B8,G8="__lodash_hash_undefined__",Y8=Object.prototype,H8=Y8.hasOwnProperty;function Z8(e){var t=this.__data__;if(zr){var r=t[e];return r===G8?void 0:r}return H8.call(t,e)?t[e]:void 0}var Q8=Z8,W8=Object.prototype,K8=W8.hasOwnProperty;function J8(e){var t=this.__data__;return zr?t[e]!==void 0:K8.call(t,e)}var X8=J8,e7="__lodash_hash_undefined__";function t7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?e7:t,this}var r7=t7;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=V8;pt.prototype.delete=q8;pt.prototype.get=Q8;pt.prototype.has=X8;pt.prototype.set=r7;var xu=pt;function i7(){this.__data__=[],this.size=0}var n7=i7;function o7(e,t){for(var r=e.length;r--;)if(Kv(e[r][0],t))return r;return-1}var Ln=o7,a7=Array.prototype,l7=a7.splice;function s7(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():l7.call(t,r,1),--this.size,!0}var u7=s7;function c7(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var d7=c7;function p7(e){return Ln(this.__data__,e)>-1}var g7=p7;function f7(e,t){var r=this.__data__,i=Ln(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var y7=f7;function gt(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])}}gt.prototype.clear=n7;gt.prototype.delete=u7;gt.prototype.get=d7;gt.prototype.has=g7;gt.prototype.set=y7;var On=gt,m7=dt(J,"Map"),Ur=m7;function b7(){this.size=0,this.__data__={hash:new xu,map:new(Ur||On),string:new xu}}var h7=b7;function v7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var w7=v7;function k7(e,t){var r=e.__data__;return w7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=k7;function x7(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var I7=x7;function C7(e){return Nn(this,e).get(e)}var A7=C7;function M7(e){return Nn(this,e).has(e)}var j7=M7;function S7(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $7=S7;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=h7;ft.prototype.delete=I7;ft.prototype.get=A7;ft.prototype.has=j7;ft.prototype.set=$7;var mc=ft;function _7(){this.__data__=new On,this.size=0}var E7=_7;function T7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var L7=T7;function O7(e){return this.__data__.get(e)}var N7=O7;function D7(e){return this.__data__.has(e)}var P7=D7,z7=200;function U7(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<z7-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 R7=U7;function Yr(e){var t=this.__data__=new On(e);this.size=t.size}Yr.prototype.clear=E7;Yr.prototype.delete=L7;Yr.prototype.get=N7;Yr.prototype.has=P7;Yr.prototype.set=R7;var F7=Object.prototype,kJ=F7.propertyIsEnumerable,V7=dt(J,"DataView"),la=V7,B7=dt(J,"Promise"),sa=B7,q7=dt(J,"Set"),ua=q7,Iu="[object Map]",G7="[object Object]",Cu="[object Promise]",Au="[object Set]",Mu="[object WeakMap]",ju="[object DataView]",Y7=Ee(la),H7=Ee(Ur),Z7=Ee(sa),Q7=Ee(ua),W7=Ee(aa),it=Gr;(la&&it(new la(new ArrayBuffer(1)))!=ju||Ur&&it(new Ur)!=Iu||sa&&it(sa.resolve())!=Cu||ua&&it(new ua)!=Au||aa&&it(new aa)!=Mu)&&(it=function(e){var t=Gr(e),r=t==G7?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case Y7:return ju;case H7:return Iu;case Z7:return Cu;case Q7:return Au;case W7:return Mu}return t});var xJ=J.Uint8Array,K7="__lodash_hash_undefined__";function J7(e){return this.__data__.set(e,K7),this}var X7=J7;function e6(e){return this.__data__.has(e)}var t6=e6;function ca(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new mc;++t<r;)this.add(e[t])}ca.prototype.add=ca.prototype.push=X7;ca.prototype.has=t6;var Su=at?at.prototype:void 0,IJ=Su?Su.valueOf:void 0,r6=Object.prototype,CJ=r6.hasOwnProperty,i6=Object.prototype,AJ=i6.hasOwnProperty,MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),SJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function n6(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 yt(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 n6(i,t)}function o6(e){return e==null?[]:Array.isArray(e)?e:[e]}var $u=o6;function a6(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 s6(e,t,r){return e&&a6(e)&&l6(e.i18n)?e.i18n.translate(t):r}var Lr="@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"],Dn="editImage",le=`ly.img.${Dn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function kn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Dn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var c6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${_u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${_u}`,enable:qr(),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(`${le}.prompt`,"");t.TextArea(`${le}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(l,"prompt.placeholder")[1],...u}),t.Separator(`${le}.separator`),r.builder.ButtonRow(`${le}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${le}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${le}.footer.apply`,{label:kn(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 yt(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(`${le}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),d6=c6,Pn="swapBackground",se=`ly.img.${Pn}`,Eu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function In(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,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),e.i18n.setTranslations({en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Eu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${Eu}`,enable:qr(),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(`${se}.prompt`,"");t.TextArea(`${se}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${se}.separator`),r.builder.ButtonRow(`${se}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${se}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${se}.footer.apply`,{label:In(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 yt(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(`${se}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),g6=p6,zn="styleTransfer",$r=`ly.img.${zn}`,f6=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Tu(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 y6=[{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."}],m6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${Z}`]:"Change Art Style",[`${Z}.description`]:"Transform image into different art styles",[`${Z}.water`]:"Watercolor Painting",[`${Z}.oil`]:"Oil Painting",[`${Z}.charcoal`]:"Charcoal Sketch",[`${Z}.pencil`]:"Pencil Drawing",[`${Z}.pastel`]:"Pastel Artwork",[`${Z}.ink`]:"Ink Wash",[`${Z}.stained-glass`]:"Stained Glass Window",[`${Z}.japanese`]:"Japanese Woodblock Print"}}),{id:$r,type:"quick",kind:"image",label:`${f6}`,enable:qr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Tu(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:()=>{y6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Tu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await yt(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"})}}})})}})}})}})}}),b6=m6,Un="artistTransfer",_r=`ly.img.${Un}`,h6=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Lu(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 v6=[{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),e.i18n.setTranslations({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:_r,type:"quick",kind:"image",label:`${h6}`,enable:qr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Lu(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:()=>{v6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Lu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await yt(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,Rn="createVariant",ue=`ly.img.${Rn}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function An(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 x6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ou}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{if(!qr()(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(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(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:An(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),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);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 b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await yt(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),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(`${ue}.button`,{label:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),I6=x6,Fn="combineImages",ce=`ly.img.${Fn}`,Nu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Ko=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Mn(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 C6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Ko}.apply`]:"Combine",[`${Ko}`]:"Combine Images...",[`${Ko}.prompt`]:"Image Combination Instructions",[`${Nu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:ce,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Nu}`,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(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(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:Mn(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 m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>yt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,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(`${ce}.button`,{label:Mn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=C6,Vn="remixPage",Du=`ly.img.${Vn}`,M6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,j6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function S6(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 $6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${j6}`]:"Turn Page into Image"}}),{id:Du,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${M6}`,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(`${Du}.button`,{label:S6(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(b=>{i.block.destroy(b)}),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),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),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 h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"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"})}}})}}),_6=$6,Bn="remixPageWithPrompt",de=`ly.img.${Bn}`,Pu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Jo=`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 E6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Jo}`]:"Remix Page...",[`${Jo}.prompt`]:"Remix Page Prompt",[`${Pu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Jo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Pu}`,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(`${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=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),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 remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),T6=E6,pe="ly.img.ai.image-generation";function L6(e){return{async initialize({cesdk:t}){if(t==null)return;I9(t,Lr,"0.2.15"),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=pa.get(),i=`${Lr}.action.label`;t.ui.addIconSet(ov,lv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Lr,pluginId:Lr,label:s6(t,i,"Generate Image"),meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});O6(e),r.register(d6({cesdk:t})),r.register(g6({cesdk:t})),r.register(b6({cesdk:t})),r.register(k6({cesdk:t})),r.register(I6({cesdk:t})),r.register(A6({cesdk:t})),r.register(_6({cesdk:t})),r.register(T6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all($u(a).map(d=>d({cesdk:t}))),c=await Promise.all($u(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await O3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await nv({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:Tn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,l.panel.builderRenderFunction),A9({cesdk:t,panelId:pe})):n()}}}function O6(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 N6=L6,D6=e=>({name:Lr,version:"0.2.15",...N6(e)}),bc=D6;var P6=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;ht(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.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=()=>{ht(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 ht(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ht(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 ht(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]=ht(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]=ht(n,t,a)}return e}var z6=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")}},U6=typeof global=="object"&&global&&global.Object===Object&&global,ed=U6,R6=typeof self=="object"&&self&&self.Object===Object&&self,F6=ed||R6||Function("return this")(),X=F6,V6=X.Symbol,vt=V6,td=Object.prototype,B6=td.hasOwnProperty,q6=td.toString,Hr=vt?vt.toStringTag:void 0;function G6(e){var t=B6.call(e,Hr),r=e[Hr];try{e[Hr]=void 0;var i=!0}catch{}var n=q6.call(e);return i&&(t?e[Hr]=r:delete e[Hr]),n}var Y6=G6,H6=Object.prototype,Z6=H6.toString;function Q6(e){return Z6.call(e)}var W6=Q6,K6="[object Null]",J6="[object Undefined]",hc=vt?vt.toStringTag:void 0;function X6(e){return e==null?e===void 0?J6:K6:hc&&hc in Object(e)?Y6(e):W6(e)}var oi=X6;function ew(e){return e!=null&&typeof e=="object"}var Na=ew,LJ=Array.isArray;function tw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var rd=tw,rw="[object AsyncFunction]",iw="[object Function]",nw="[object GeneratorFunction]",ow="[object Proxy]";function aw(e){if(!rd(e))return!1;var t=oi(e);return t==iw||t==nw||t==rw||t==ow}var lw=aw,sw=X["__core-js_shared__"],ba=sw,vc=function(){var e=/[^.]+$/.exec(ba&&ba.keys&&ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uw(e){return!!vc&&vc in e}var cw=uw,dw=Function.prototype,pw=dw.toString;function gw(e){if(e!=null){try{return pw.call(e)}catch{}try{return e+""}catch{}}return""}var Te=gw,fw=/[\\^$.*+?()[\]{}|]/g,yw=/^\[object .+?Constructor\]$/,mw=Function.prototype,bw=Object.prototype,hw=mw.toString,vw=bw.hasOwnProperty,ww=RegExp("^"+hw.call(vw).replace(fw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kw(e){if(!rd(e)||cw(e))return!1;var t=lw(e)?ww:yw;return t.test(Te(e))}var xw=kw;function Iw(e,t){return e?.[t]}var Cw=Iw;function Aw(e,t){var r=Cw(e,t);return xw(r)?r:void 0}var kt=Aw,Mw=kt(X,"WeakMap"),Ca=Mw;function jw(e,t){return e===t||e!==e&&t!==t}var Sw=jw,$w=9007199254740991;function _w(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$w}var Ew=_w,OJ=Object.prototype,Tw="[object Arguments]";function Lw(e){return Na(e)&&oi(e)==Tw}var wc=Lw,id=Object.prototype,Ow=id.hasOwnProperty,Nw=id.propertyIsEnumerable,NJ=wc(function(){return arguments}())?wc:function(e){return Na(e)&&Ow.call(e,"callee")&&!Nw.call(e,"callee")},nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kc=nd&&typeof module=="object"&&module&&!module.nodeType&&module,Dw=kc&&kc.exports===nd,xc=Dw?X.Buffer:void 0,DJ=xc?xc.isBuffer:void 0,Pw="[object Arguments]",zw="[object Array]",Uw="[object Boolean]",Rw="[object Date]",Fw="[object Error]",Vw="[object Function]",Bw="[object Map]",qw="[object Number]",Gw="[object Object]",Yw="[object RegExp]",Hw="[object Set]",Zw="[object String]",Qw="[object WeakMap]",Ww="[object ArrayBuffer]",Kw="[object DataView]",Jw="[object Float32Array]",Xw="[object Float64Array]",ek="[object Int8Array]",tk="[object Int16Array]",rk="[object Int32Array]",ik="[object Uint8Array]",nk="[object Uint8ClampedArray]",ok="[object Uint16Array]",ak="[object Uint32Array]",D={};D[Jw]=D[Xw]=D[ek]=D[tk]=D[rk]=D[ik]=D[nk]=D[ok]=D[ak]=!0;D[Pw]=D[zw]=D[Ww]=D[Uw]=D[Kw]=D[Rw]=D[Fw]=D[Vw]=D[Bw]=D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=!1;function lk(e){return Na(e)&&Ew(e.length)&&!!D[oi(e)]}var sk=lk;function uk(e){return function(t){return e(t)}}var ck=uk,od=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xr=od&&typeof module=="object"&&module&&!module.nodeType&&module,dk=Xr&&Xr.exports===od,ha=dk&&ed.process,pk=function(){try{var e=Xr&&Xr.require&&Xr.require("util").types;return e||ha&&ha.binding&&ha.binding("util")}catch{}}(),Ic=pk,Cc=Ic&&Ic.isTypedArray,PJ=Cc?ck(Cc):sk,gk=Object.prototype,zJ=gk.hasOwnProperty;function fk(e,t){return function(r){return e(t(r))}}var yk=fk,UJ=yk(Object.keys,Object),mk=Object.prototype,RJ=mk.hasOwnProperty,bk=kt(Object,"create"),ti=bk;function hk(){this.__data__=ti?ti(null):{},this.size=0}var vk=hk;function wk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kk=wk,xk="__lodash_hash_undefined__",Ik=Object.prototype,Ck=Ik.hasOwnProperty;function Ak(e){var t=this.__data__;if(ti){var r=t[e];return r===xk?void 0:r}return Ck.call(t,e)?t[e]:void 0}var Mk=Ak,jk=Object.prototype,Sk=jk.hasOwnProperty;function $k(e){var t=this.__data__;return ti?t[e]!==void 0:Sk.call(t,e)}var _k=$k,Ek="__lodash_hash_undefined__";function Tk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?Ek:t,this}var Lk=Tk;function xt(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])}}xt.prototype.clear=vk;xt.prototype.delete=kk;xt.prototype.get=Mk;xt.prototype.has=_k;xt.prototype.set=Lk;var Ac=xt;function Ok(){this.__data__=[],this.size=0}var Nk=Ok;function Dk(e,t){for(var r=e.length;r--;)if(Sw(e[r][0],t))return r;return-1}var Gn=Dk,Pk=Array.prototype,zk=Pk.splice;function Uk(e){var t=this.__data__,r=Gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zk.call(t,r,1),--this.size,!0}var Rk=Uk;function Fk(e){var t=this.__data__,r=Gn(t,e);return r<0?void 0:t[r][1]}var Vk=Fk;function Bk(e){return Gn(this.__data__,e)>-1}var qk=Bk;function Gk(e,t){var r=this.__data__,i=Gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Yk=Gk;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=Nk;It.prototype.delete=Rk;It.prototype.get=Vk;It.prototype.has=qk;It.prototype.set=Yk;var Yn=It,Hk=kt(X,"Map"),ri=Hk;function Zk(){this.size=0,this.__data__={hash:new Ac,map:new(ri||Yn),string:new Ac}}var Qk=Zk;function Wk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Kk=Wk;function Jk(e,t){var r=e.__data__;return Kk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Hn=Jk;function Xk(e){var t=Hn(this,e).delete(e);return this.size-=t?1:0,t}var ex=Xk;function tx(e){return Hn(this,e).get(e)}var rx=tx;function ix(e){return Hn(this,e).has(e)}var nx=ix;function ox(e,t){var r=Hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ax=ox;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=ex;Ct.prototype.get=rx;Ct.prototype.has=nx;Ct.prototype.set=ax;var ad=Ct;function lx(){this.__data__=new Yn,this.size=0}var sx=lx;function ux(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cx=ux;function dx(e){return this.__data__.get(e)}var px=dx;function gx(e){return this.__data__.has(e)}var fx=gx,yx=200;function mx(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ri||i.length<yx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ad(i)}return r.set(e,t),this.size=r.size,this}var bx=mx;function ai(e){var t=this.__data__=new Yn(e);this.size=t.size}ai.prototype.clear=sx;ai.prototype.delete=cx;ai.prototype.get=px;ai.prototype.has=fx;ai.prototype.set=bx;var hx=Object.prototype,FJ=hx.propertyIsEnumerable,vx=kt(X,"DataView"),Aa=vx,wx=kt(X,"Promise"),Ma=wx,kx=kt(X,"Set"),ja=kx,Mc="[object Map]",xx="[object Object]",jc="[object Promise]",Sc="[object Set]",$c="[object WeakMap]",_c="[object DataView]",Ix=Te(Aa),Cx=Te(ri),Ax=Te(Ma),Mx=Te(ja),jx=Te(Ca),mt=oi;(Aa&&mt(new Aa(new ArrayBuffer(1)))!=_c||ri&&mt(new ri)!=Mc||Ma&&mt(Ma.resolve())!=jc||ja&&mt(new ja)!=Sc||Ca&&mt(new Ca)!=$c)&&(mt=function(e){var t=oi(e),r=t==xx?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case Ix:return _c;case Cx:return Mc;case Ax:return jc;case Mx:return Sc;case jx:return $c}return t});var VJ=X.Uint8Array,Sx="__lodash_hash_undefined__";function $x(e){return this.__data__.set(e,Sx),this}var _x=$x;function Ex(e){return this.__data__.has(e)}var Tx=Ex;function Sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ad;++t<r;)this.add(e[t])}Sa.prototype.add=Sa.prototype.push=_x;Sa.prototype.has=Tx;var Ec=vt?vt.prototype:void 0,BJ=Ec?Ec.valueOf:void 0,Lx=Object.prototype,qJ=Lx.hasOwnProperty,Ox=Object.prototype,GJ=Ox.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 ld(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 Nx(e,t){let r=await ld(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 Dx(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 ld(i,t)}function Px(e){return e!==void 0}var zx=Px;function li(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function si(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 sd{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 sd),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))}},Ux=class ud{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ud),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 Rx(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 Fx({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 Vx=Fx,va="ly.img.ai.temp";async function Bx(e,t){return e.engine.asset.findAllSources().includes(va)||e.engine.asset.addLocalSource(va),e.engine.asset.apply(va,t)}function qx(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 cd(){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 Gx(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 Yx(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 Da(e){return e instanceof Error&&e.name==="AbortError"}function Hx(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Zx(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
+ `,yv=fv,mv=typeof global=="object"&&global&&global.Object===Object&&global,bc=mv,bv=typeof self=="object"&&self&&self.Object===Object&&self,hv=bc||bv||Function("return this")(),ee=hv,vv=ee.Symbol,st=vv,hc=Object.prototype,wv=hc.hasOwnProperty,kv=hc.toString,_r=st?st.toStringTag:void 0;function xv(e){var t=wv.call(e,_r),r=e[_r];try{e[_r]=void 0;var i=!0}catch{}var n=kv.call(e);return i&&(t?e[_r]=r:delete e[_r]),n}var Iv=xv,Cv=Object.prototype,Av=Cv.toString;function Mv(e){return Av.call(e)}var jv=Mv,Sv="[object Null]",$v="[object Undefined]",xu=st?st.toStringTag:void 0;function _v(e){return e==null?e===void 0?$v:Sv:xu&&xu in Object(e)?Iv(e):jv(e)}var Hr=_v;function Ev(e){return e!=null&&typeof e=="object"}var va=Ev,xJ=Array.isArray;function Lv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var vc=Lv,Tv="[object AsyncFunction]",Ov="[object Function]",Nv="[object GeneratorFunction]",Dv="[object Proxy]";function Pv(e){if(!vc(e))return!1;var t=Hr(e);return t==Ov||t==Nv||t==Tv||t==Dv}var zv=Pv,Uv=ee["__core-js_shared__"],Jo=Uv,Iu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Rv(e){return!!Iu&&Iu in e}var Fv=Rv,Vv=Function.prototype,Bv=Vv.toString;function qv(e){if(e!=null){try{return Bv.call(e)}catch{}try{return e+""}catch{}}return""}var Te=qv,Gv=/[\\^$.*+?()[\]{}|]/g,Yv=/^\[object .+?Constructor\]$/,Hv=Function.prototype,Zv=Object.prototype,Qv=Hv.toString,Wv=Zv.hasOwnProperty,Kv=RegExp("^"+Qv.call(Wv).replace(Gv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Jv(e){if(!vc(e)||Fv(e))return!1;var t=zv(e)?Kv:Yv;return t.test(Te(e))}var Xv=Jv;function e8(e,t){return e?.[t]}var t8=e8;function r8(e,t){var r=t8(e,t);return Xv(r)?r:void 0}var gt=r8,i8=gt(ee,"WeakMap"),ua=i8;function n8(e,t){return e===t||e!==e&&t!==t}var o8=n8,a8=9007199254740991;function l8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=a8}var s8=l8,IJ=Object.prototype,u8="[object Arguments]";function c8(e){return va(e)&&Hr(e)==u8}var Cu=c8,wc=Object.prototype,d8=wc.hasOwnProperty,p8=wc.propertyIsEnumerable,CJ=Cu(function(){return arguments}())?Cu:function(e){return va(e)&&d8.call(e,"callee")&&!p8.call(e,"callee")},kc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Au=kc&&typeof module=="object"&&module&&!module.nodeType&&module,g8=Au&&Au.exports===kc,Mu=g8?ee.Buffer:void 0,AJ=Mu?Mu.isBuffer:void 0,f8="[object Arguments]",y8="[object Array]",m8="[object Boolean]",b8="[object Date]",h8="[object Error]",v8="[object Function]",w8="[object Map]",k8="[object Number]",x8="[object Object]",I8="[object RegExp]",C8="[object Set]",A8="[object String]",M8="[object WeakMap]",j8="[object ArrayBuffer]",S8="[object DataView]",$8="[object Float32Array]",_8="[object Float64Array]",E8="[object Int8Array]",L8="[object Int16Array]",T8="[object Int32Array]",O8="[object Uint8Array]",N8="[object Uint8ClampedArray]",D8="[object Uint16Array]",P8="[object Uint32Array]",N={};N[$8]=N[_8]=N[E8]=N[L8]=N[T8]=N[O8]=N[N8]=N[D8]=N[P8]=!0;N[f8]=N[y8]=N[j8]=N[m8]=N[S8]=N[b8]=N[h8]=N[v8]=N[w8]=N[k8]=N[x8]=N[I8]=N[C8]=N[A8]=N[M8]=!1;function z8(e){return va(e)&&s8(e.length)&&!!N[Hr(e)]}var U8=z8;function R8(e){return function(t){return e(t)}}var F8=R8,xc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=xc&&typeof module=="object"&&module&&!module.nodeType&&module,V8=Pr&&Pr.exports===xc,Xo=V8&&bc.process,B8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),ju=B8,Su=ju&&ju.isTypedArray,MJ=Su?F8(Su):U8,q8=Object.prototype,jJ=q8.hasOwnProperty;function G8(e,t){return function(r){return e(t(r))}}var Y8=G8,SJ=Y8(Object.keys,Object),H8=Object.prototype,$J=H8.hasOwnProperty,Z8=gt(Object,"create"),Rr=Z8;function Q8(){this.__data__=Rr?Rr(null):{},this.size=0}var W8=Q8;function K8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var J8=K8,X8="__lodash_hash_undefined__",e7=Object.prototype,t7=e7.hasOwnProperty;function r7(e){var t=this.__data__;if(Rr){var r=t[e];return r===X8?void 0:r}return t7.call(t,e)?t[e]:void 0}var i7=r7,n7=Object.prototype,o7=n7.hasOwnProperty;function a7(e){var t=this.__data__;return Rr?t[e]!==void 0:o7.call(t,e)}var l7=a7,s7="__lodash_hash_undefined__";function u7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?s7:t,this}var c7=u7;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=W8;ft.prototype.delete=J8;ft.prototype.get=i7;ft.prototype.has=l7;ft.prototype.set=c7;var $u=ft;function d7(){this.__data__=[],this.size=0}var p7=d7;function g7(e,t){for(var r=e.length;r--;)if(o8(e[r][0],t))return r;return-1}var Dn=g7,f7=Array.prototype,y7=f7.splice;function m7(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():y7.call(t,r,1),--this.size,!0}var b7=m7;function h7(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var v7=h7;function w7(e){return Dn(this.__data__,e)>-1}var k7=w7;function x7(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 I7=x7;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=p7;yt.prototype.delete=b7;yt.prototype.get=v7;yt.prototype.has=k7;yt.prototype.set=I7;var Pn=yt,C7=gt(ee,"Map"),Fr=C7;function A7(){this.size=0,this.__data__={hash:new $u,map:new(Fr||Pn),string:new $u}}var M7=A7;function j7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var S7=j7;function $7(e,t){var r=e.__data__;return S7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=$7;function _7(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var E7=_7;function L7(e){return zn(this,e).get(e)}var T7=L7;function O7(e){return zn(this,e).has(e)}var N7=O7;function D7(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var P7=D7;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=M7;mt.prototype.delete=E7;mt.prototype.get=T7;mt.prototype.has=N7;mt.prototype.set=P7;var Ic=mt;function z7(){this.__data__=new Pn,this.size=0}var U7=z7;function R7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var F7=R7;function V7(e){return this.__data__.get(e)}var B7=V7;function q7(e){return this.__data__.has(e)}var G7=q7,Y7=200;function H7(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<Y7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ic(i)}return r.set(e,t),this.size=r.size,this}var Z7=H7;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=U7;Zr.prototype.delete=F7;Zr.prototype.get=B7;Zr.prototype.has=G7;Zr.prototype.set=Z7;var Q7=Object.prototype,_J=Q7.propertyIsEnumerable,W7=gt(ee,"DataView"),ca=W7,K7=gt(ee,"Promise"),da=K7,J7=gt(ee,"Set"),pa=J7,_u="[object Map]",X7="[object Object]",Eu="[object Promise]",Lu="[object Set]",Tu="[object WeakMap]",Ou="[object DataView]",e6=Te(ca),t6=Te(Fr),r6=Te(da),i6=Te(pa),n6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=Ou||Fr&&ot(new Fr)!=_u||da&&ot(da.resolve())!=Eu||pa&&ot(new pa)!=Lu||ua&&ot(new ua)!=Tu)&&(ot=function(e){var t=Hr(e),r=t==X7?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case e6:return Ou;case t6:return _u;case r6:return Eu;case i6:return Lu;case n6:return Tu}return t});var EJ=ee.Uint8Array,o6="__lodash_hash_undefined__";function a6(e){return this.__data__.set(e,o6),this}var l6=a6;function s6(e){return this.__data__.has(e)}var u6=s6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ic;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=l6;ga.prototype.has=u6;var Nu=st?st.prototype:void 0,LJ=Nu?Nu.valueOf:void 0,c6=Object.prototype,TJ=c6.hasOwnProperty,d6=Object.prototype,OJ=d6.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 p6(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 p6(i,t)}function g6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Du=g6;function f6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function y6(e){return typeof e?.translate=="function"}function m6(e,t,r){return e&&f6(e)&&y6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",b6=["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}`,Pu=`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 h6=({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...",[`${Pu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Pu}`,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})}}),v6=h6,Rn="swapBackground",ce=`ly.img.${Rn}`,zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Mn(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 w6=({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...",[`${zu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${zu}`,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:Mn(l,"prompt"),placeholder:Mn(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:Mn(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:Mn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),k6=w6,Fn="styleTransfer",Er=`ly.img.${Fn}`,x6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Uu(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 I6=[{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."}],C6=({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:Er,type:"quick",kind:"image",label:`${x6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Er}.popover`,{label:Uu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Er}.popover.section`,{children:()=>{r.builder.Menu(`${Er}.popover.menu`,{children:()=>{I6.forEach(s=>{t.Button(`${Er}.popover.menu.${s.id}`,{label:Uu(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"})}}})})}})}})}})}}),A6=C6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,M6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Ru(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 j6=[{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."}],S6=({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:`${M6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Ru(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:()=>{j6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Ru(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"})}}})})}})}})}})}}),$6=S6,Bn="createVariant",de=`ly.img.${Bn}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,jn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Sn(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 _6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${jn}`]:"Create Variant...",[`${jn}.description`]:"Create a variation of the image",[`${jn}.prompt`]:"Create Variant...",[`${Fu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${jn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Fu}`,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:Sn(l,"prompt"),placeholder:Sn(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: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=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);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 b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await bt(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),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:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),E6=_6,qn="combineImages",pe=`ly.img.${qn}`,Vu=`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 L6=({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",[`${Vu}.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:`${Vu}`,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 m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,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})}}),T6=L6,Gn="remixPage",Bu=`ly.img.${Gn}`,O6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,N6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function D6(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 P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${N6}`]:"Turn Page into Image"}}),{id:Bu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${O6}`,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(`${Bu}.button`,{label:D6(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(b=>{i.block.destroy(b)}),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),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),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 h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"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"})}}})}}),z6=P6,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`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 U6=({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",[`${qu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${qu}`,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:_n(l,"prompt"),placeholder:_n(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:_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=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),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 remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:_n(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),R6=U6,fe="ly.img.ai.image-generation";function F6(e){return{async initialize({cesdk:t}){if(t==null)return;E9(t,Nr,"0.2.16"),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(gv,yv),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:m6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});V6(e),r.register(v6({cesdk:t})),r.register(k6({cesdk:t})),r.register(A6({cesdk:t})),r.register($6({cesdk:t})),r.register(E6({cesdk:t})),r.register(T6({cesdk:t})),r.register(z6({cesdk:t})),r.register(R6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Du(a).map(d=>d({cesdk:t}))),c=await Promise.all(Du(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await V3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await pv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:b6});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),T9({cesdk:t,panelId:fe})):n()}}}function V6(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 B6=F6,q6=e=>({name:Nr,version:"0.2.16",...B6(e)}),Cc=q6;var G6=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.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 Y6=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")}},H6=typeof global=="object"&&global&&global.Object===Object&&global,ld=H6,Z6=typeof self=="object"&&self&&self.Object===Object&&self,Q6=ld||Z6||Function("return this")(),te=Q6,W6=te.Symbol,kt=W6,sd=Object.prototype,K6=sd.hasOwnProperty,J6=sd.toString,Qr=kt?kt.toStringTag:void 0;function X6(e){var t=K6.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=J6.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var ew=X6,tw=Object.prototype,rw=tw.toString;function iw(e){return rw.call(e)}var nw=iw,ow="[object Null]",aw="[object Undefined]",Ac=kt?kt.toStringTag:void 0;function lw(e){return e==null?e===void 0?aw:ow:Ac&&Ac in Object(e)?ew(e):nw(e)}var li=lw;function sw(e){return e!=null&&typeof e=="object"}var za=sw,VJ=Array.isArray;function uw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ud=uw,cw="[object AsyncFunction]",dw="[object Function]",pw="[object GeneratorFunction]",gw="[object Proxy]";function fw(e){if(!ud(e))return!1;var t=li(e);return t==dw||t==pw||t==cw||t==gw}var yw=fw,mw=te["__core-js_shared__"],wa=mw,Mc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function bw(e){return!!Mc&&Mc in e}var hw=bw,vw=Function.prototype,ww=vw.toString;function kw(e){if(e!=null){try{return ww.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=kw,xw=/[\\^$.*+?()[\]{}|]/g,Iw=/^\[object .+?Constructor\]$/,Cw=Function.prototype,Aw=Object.prototype,Mw=Cw.toString,jw=Aw.hasOwnProperty,Sw=RegExp("^"+Mw.call(jw).replace(xw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $w(e){if(!ud(e)||hw(e))return!1;var t=yw(e)?Sw:Iw;return t.test(Oe(e))}var _w=$w;function Ew(e,t){return e?.[t]}var Lw=Ew;function Tw(e,t){var r=Lw(e,t);return _w(r)?r:void 0}var It=Tw,Ow=It(te,"WeakMap"),ja=Ow;function Nw(e,t){return e===t||e!==e&&t!==t}var Dw=Nw,Pw=9007199254740991;function zw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Pw}var Uw=zw,BJ=Object.prototype,Rw="[object Arguments]";function Fw(e){return za(e)&&li(e)==Rw}var jc=Fw,cd=Object.prototype,Vw=cd.hasOwnProperty,Bw=cd.propertyIsEnumerable,qJ=jc(function(){return arguments}())?jc:function(e){return za(e)&&Vw.call(e,"callee")&&!Bw.call(e,"callee")},dd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Sc=dd&&typeof module=="object"&&module&&!module.nodeType&&module,qw=Sc&&Sc.exports===dd,$c=qw?te.Buffer:void 0,GJ=$c?$c.isBuffer:void 0,Gw="[object Arguments]",Yw="[object Array]",Hw="[object Boolean]",Zw="[object Date]",Qw="[object Error]",Ww="[object Function]",Kw="[object Map]",Jw="[object Number]",Xw="[object Object]",ek="[object RegExp]",tk="[object Set]",rk="[object String]",ik="[object WeakMap]",nk="[object ArrayBuffer]",ok="[object DataView]",ak="[object Float32Array]",lk="[object Float64Array]",sk="[object Int8Array]",uk="[object Int16Array]",ck="[object Int32Array]",dk="[object Uint8Array]",pk="[object Uint8ClampedArray]",gk="[object Uint16Array]",fk="[object Uint32Array]",D={};D[ak]=D[lk]=D[sk]=D[uk]=D[ck]=D[dk]=D[pk]=D[gk]=D[fk]=!0;D[Gw]=D[Yw]=D[nk]=D[Hw]=D[ok]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=D[Xw]=D[ek]=D[tk]=D[rk]=D[ik]=!1;function yk(e){return za(e)&&Uw(e.length)&&!!D[li(e)]}var mk=yk;function bk(e){return function(t){return e(t)}}var hk=bk,pd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=pd&&typeof module=="object"&&module&&!module.nodeType&&module,vk=ti&&ti.exports===pd,ka=vk&&ld.process,wk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),_c=wk,Ec=_c&&_c.isTypedArray,YJ=Ec?hk(Ec):mk,kk=Object.prototype,HJ=kk.hasOwnProperty;function xk(e,t){return function(r){return e(t(r))}}var Ik=xk,ZJ=Ik(Object.keys,Object),Ck=Object.prototype,QJ=Ck.hasOwnProperty,Ak=It(Object,"create"),ii=Ak;function Mk(){this.__data__=ii?ii(null):{},this.size=0}var jk=Mk;function Sk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $k=Sk,_k="__lodash_hash_undefined__",Ek=Object.prototype,Lk=Ek.hasOwnProperty;function Tk(e){var t=this.__data__;if(ii){var r=t[e];return r===_k?void 0:r}return Lk.call(t,e)?t[e]:void 0}var Ok=Tk,Nk=Object.prototype,Dk=Nk.hasOwnProperty;function Pk(e){var t=this.__data__;return ii?t[e]!==void 0:Dk.call(t,e)}var zk=Pk,Uk="__lodash_hash_undefined__";function Rk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?Uk:t,this}var Fk=Rk;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=jk;Ct.prototype.delete=$k;Ct.prototype.get=Ok;Ct.prototype.has=zk;Ct.prototype.set=Fk;var Lc=Ct;function Vk(){this.__data__=[],this.size=0}var Bk=Vk;function qk(e,t){for(var r=e.length;r--;)if(Dw(e[r][0],t))return r;return-1}var Zn=qk,Gk=Array.prototype,Yk=Gk.splice;function Hk(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Yk.call(t,r,1),--this.size,!0}var Zk=Hk;function Qk(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var Wk=Qk;function Kk(e){return Zn(this.__data__,e)>-1}var Jk=Kk;function Xk(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 ex=Xk;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=Bk;At.prototype.delete=Zk;At.prototype.get=Wk;At.prototype.has=Jk;At.prototype.set=ex;var Qn=At,tx=It(te,"Map"),ni=tx;function rx(){this.size=0,this.__data__={hash:new Lc,map:new(ni||Qn),string:new Lc}}var ix=rx;function nx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ox=nx;function ax(e,t){var r=e.__data__;return ox(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=ax;function lx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var sx=lx;function ux(e){return Wn(this,e).get(e)}var cx=ux;function dx(e){return Wn(this,e).has(e)}var px=dx;function gx(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var fx=gx;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=ix;Mt.prototype.delete=sx;Mt.prototype.get=cx;Mt.prototype.has=px;Mt.prototype.set=fx;var gd=Mt;function yx(){this.__data__=new Qn,this.size=0}var mx=yx;function bx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var hx=bx;function vx(e){return this.__data__.get(e)}var wx=vx;function kx(e){return this.__data__.has(e)}var xx=kx,Ix=200;function Cx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<Ix-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new gd(i)}return r.set(e,t),this.size=r.size,this}var Ax=Cx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=mx;si.prototype.delete=hx;si.prototype.get=wx;si.prototype.has=xx;si.prototype.set=Ax;var Mx=Object.prototype,WJ=Mx.propertyIsEnumerable,jx=It(te,"DataView"),Sa=jx,Sx=It(te,"Promise"),$a=Sx,$x=It(te,"Set"),_a=$x,Tc="[object Map]",_x="[object Object]",Oc="[object Promise]",Nc="[object Set]",Dc="[object WeakMap]",Pc="[object DataView]",Ex=Oe(Sa),Lx=Oe(ni),Tx=Oe($a),Ox=Oe(_a),Nx=Oe(ja),ht=li;(Sa&&ht(new Sa(new ArrayBuffer(1)))!=Pc||ni&&ht(new ni)!=Tc||$a&&ht($a.resolve())!=Oc||_a&&ht(new _a)!=Nc||ja&&ht(new ja)!=Dc)&&(ht=function(e){var t=li(e),r=t==_x?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Ex:return Pc;case Lx:return Tc;case Tx:return Oc;case Ox:return Nc;case Nx:return Dc}return t});var KJ=te.Uint8Array,Dx="__lodash_hash_undefined__";function Px(e){return this.__data__.set(e,Dx),this}var zx=Px;function Ux(e){return this.__data__.has(e)}var Rx=Ux;function Ea(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new gd;++t<r;)this.add(e[t])}Ea.prototype.add=Ea.prototype.push=zx;Ea.prototype.has=Rx;var zc=kt?kt.prototype:void 0,JJ=zc?zc.valueOf:void 0,Fx=Object.prototype,XJ=Fx.hasOwnProperty,Vx=Object.prototype,eX=Vx.hasOwnProperty,tX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),rX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),iX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function fd(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 Bx(e,t){let r=await fd(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 qx(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 fd(i,t)}function Gx(e){return e!==void 0}var Yx=Gx;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 yd{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 yd),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))}},Hx=class md{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new md),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 Zx(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 Qx({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 Wx=Qx,xa="ly.img.ai.temp";async function Kx(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function Jx(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 bd(){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 Xx(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 eI(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 tI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function rI(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 Qx(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 Wx=Qx;function Kx(){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 Jx=Kx;function Xx(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:qx(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 Tc=Xx,tI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Pa=tI;function rI(e,t,r){switch(t){case"image":return iI(e,r[t]);case"video":return nI(e,r[t]);case"sticker":return oI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function iI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function nI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function oI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var aI=rI;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 sI(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 cI(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 sI(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 Gx(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 cI(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 dd=lI;function pI(e){switch(e.userFlow){case"placeholder":return fI(e);case"generation-only":return gI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function gI(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=cd(),c=await dd(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 fI(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=cd(),c=aI(s,a,o);if(i=await Bx(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 dd(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)&&(Da(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 yI=pI;function za(e){return`${e}.generating`}function mI(e){return`${e}.abort`}function bI(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(mI(d),()=>{}),m=c.global(za(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await yI({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(y.status==="aborted")return;if(y.status==="error"){Tc(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;hI(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Da(y))return;Tc(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 hI(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 pd=bI;async function vI({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(za(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return pd(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var wI=vI;function gd(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 Wr(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=gd(e,t.$ref),n={...Wr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Wr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Wr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Wr(e,t[n],r));return i}return t}function kI(e){return Wr(e,{...e})}function xI(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 II(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return CI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function CI(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=AI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function AI(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 fd=II;function be(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 yd(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 md(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?MI(e,c,r,i,n,a,o,s):bd(e,c,r,i,n,a,o,s);case"boolean":return hd(e,c,r,i,n,a,o,s);case"number":case"integer":return vd(e,c,r,i,n,a,o,s);case"object":return $a(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 $a(e,t,r,i,n,a,o,s){let c=fd(t.schema??{},i).reduce((l,u)=>{let d=md(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 bd(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=be(t,r,o),m=be(t,r,o,"placeholder"),f=li(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=si(d,h,f,t.schema.default,""),v=l(p,b),k=SI(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function MI(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=be(t,r,o),{labels:m,icons:f}=yd(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:be(t,r,o,I),icon:f[I]})),b=li(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=si(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function hd(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=be(t,r,o),m=li(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!si(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function vd(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=be(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=li(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=si(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,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=be(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=yd(t.schema),x=li(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:bd,boolean:hd,integer:vd,object:$a},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:be(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>$a(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=si(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function SI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $I=md,_I={"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 Lc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function EI(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),m=d[g]||Lc(g);n[a(u,g)]=m})};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,m=u[g]||Lc(g);n[a(l.id,g)]=m}})}});let c={..._I,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function TI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=kI(r.document),c=gd(s,r.inputReference);if(!xI(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=fd(l,r);return EI(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=$I(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});pd(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var LI=TI;async function OI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return wI(e,t);case"schema":return LI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var NI=OI;function DI(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 P6(o,r)),o}return i}var PI=DI;function zI(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 UI=zI,wa="@imgly/plugin-ai-generation",RI=`
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 iI(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 nI=iI;function oI(){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 aI=oI;function lI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),sI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Jx(e)}))}function sI(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 Uc=lI,uI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ra=uI;function cI(e,t,r){switch(t){case"image":return dI(e,r[t]);case"video":return pI(e,r[t]);case"sticker":return gI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dI(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 pI(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 gI(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 fI=cI;async function yI(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 mI(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 bI(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 hI(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 vI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function mI(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 bI(e,t,r){let i=t.width,n=t.height,a=await Xx(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 hI(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 vI(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 hd=yI;function wI(e){switch(e.userFlow){case"placeholder":return xI(e);case"generation-only":return kI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function kI(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=bd(),c=await hd(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 xI(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=bd(),c=fI(s,a,o);if(i=await Kx(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 hd(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 II=wI;function Fa(e){return`${e}.generating`}function CI(e){return`${e}.abort`}function AI(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(CI(d),()=>{}),m=c.global(Fa(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=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:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await II({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(y.status==="aborted")return;if(y.status==="error"){Uc(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;MI(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Ua(y))return;Uc(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 MI(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 vd=AI;async function jI({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 vd(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var SI=jI;function wd(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=wd(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 $I(e){return Jr(e,{...e})}function _I(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 EI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return LI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function LI(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=TI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function TI(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 kd=EI;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 xd(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 Id(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?OI(e,c,r,i,n,a,o,s):Cd(e,c,r,i,n,a,o,s);case"boolean":return Ad(e,c,r,i,n,a,o,s);case"number":case"integer":return Md(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 NI(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=kd(t.schema??{},i).reduce((l,u)=>{let d=Id(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 Cd(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),m=ve(t,r,o,"placeholder"),f=ci(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=di(d,h,f,t.schema.default,""),v=l(p,b),k=DI(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function OI(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:m,icons:f}=xd(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),b=ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=di(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Ad(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),m=ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!di(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Md(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),m=t.schema.minimum,f=t.schema.maximum,h=ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=di(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function NI(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),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=xd(t.schema),x=ci(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Cd,boolean:Ad,integer:Md,object:La},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:ve(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>La(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=di(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function DI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var PI=Id,zI={"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 Rc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function UI(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),m=d[g]||Rc(g);n[a(u,g)]=m})};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,m=u[g]||Rc(g);n[a(l.id,g)]=m}})}});let c={...zI,...n};Object.keys(c).length>0&&ui(r.cesdk,{en:c})}async function RI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=$I(r.document),c=wd(s,r.inputReference);if(!_I(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=kd(l,r);return UI(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=PI(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});vd(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var FI=RI;async function VI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return SI(e,t);case"schema":return FI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var BI=VI;function qI(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 G6(o,r)),o}return i}var GI=qI;function YI(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 HI=YI,Ia="@imgly/plugin-ai-generation",ZI=`
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="${wa}/image"
165
+ id="${Ia}/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="${wa}/video"
177
+ id="${Ia}/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="${wa}/audio"
188
+ id="${Ia}/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
- `,FI=RI;function VI(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 wd(2e3),await BI(t,e,r)):i(t,r)}async function BI(e,t,r){switch(t.kind){case"image":return qI(e,t,r);case"video":return GI(e,t,r);case"text":return YI(e,t,r);case"audio":return ZI(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function qI(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 Dx(s,r),l=await Nx(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 GI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function YI(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=Zr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Zr(n,o)}else"customPrompt"in e?a=Zr(n,"custom"):a=Zr(n,"improved");else a=Zr(n,"generated");return HI(a,r.abortSignal)}async function*HI(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 wd(100)}return{kind:"text",text:e}}function Zr(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 ZI(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:QI(220,i),duration:i,thumbnailUrl:void 0}}function QI(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 WI(i,44100)}function WI(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function wd(e){return new Promise(t=>{setTimeout(t,e)})}var KI=VI,JI="USER_CANCEL";function XI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Rx([...e.provider.output.middleware??[],...r?.middlewares??[],Vx({enable:r?.debug}),KI({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}:Yx(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Da(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===JI?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var eC=XI;async function tC(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=qn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=PI(a),s=UI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=eC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await NI(a,c);Hx(r.cesdk,"@imgly/plugin-ai-generation",FI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ux.get().register(u),u}var ka=tC;function rC(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 z6(n,r,i);return r.engine.asset.addSource(a),a.id}var iC=rC;function Kr(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 nC(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"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=>ka(e,u,r,i)));o.push(...l),a=aC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ka(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ka(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=iC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(zx)}),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}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Kr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Kr(e,"fromText.label"),icon:f.value!=="fromText"&&Oc(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:Kr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Oc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Kr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function aC({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:Kr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Oc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(za(r.id),!1).value)}var lC=nC,sC=typeof global=="object"&&global&&global.Object===Object&&global,kd=sC,uC=typeof self=="object"&&self&&self.Object===Object&&self,cC=kd||uC||Function("return this")(),ee=cC,dC=ee.Symbol,wt=dC,xd=Object.prototype,pC=xd.hasOwnProperty,gC=xd.toString,Qr=wt?wt.toStringTag:void 0;function fC(e){var t=pC.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=gC.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var yC=fC,mC=Object.prototype,bC=mC.toString;function hC(e){return bC.call(e)}var vC=hC,wC="[object Null]",kC="[object Undefined]",Nc=wt?wt.toStringTag:void 0;function xC(e){return e==null?e===void 0?kC:wC:Nc&&Nc in Object(e)?yC(e):vC(e)}var ui=xC;function IC(e){return e!=null&&typeof e=="object"}var Ua=IC,QJ=Array.isArray;function CC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Id=CC,AC="[object AsyncFunction]",MC="[object Function]",jC="[object GeneratorFunction]",SC="[object Proxy]";function $C(e){if(!Id(e))return!1;var t=ui(e);return t==MC||t==jC||t==AC||t==SC}var _C=$C,EC=ee["__core-js_shared__"],xa=EC,Dc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function TC(e){return!!Dc&&Dc in e}var LC=TC,OC=Function.prototype,NC=OC.toString;function DC(e){if(e!=null){try{return NC.call(e)}catch{}try{return e+""}catch{}}return""}var Le=DC,PC=/[\\^$.*+?()[\]{}|]/g,zC=/^\[object .+?Constructor\]$/,UC=Function.prototype,RC=Object.prototype,FC=UC.toString,VC=RC.hasOwnProperty,BC=RegExp("^"+FC.call(VC).replace(PC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qC(e){if(!Id(e)||LC(e))return!1;var t=_C(e)?BC:zC;return t.test(Le(e))}var GC=qC;function YC(e,t){return e?.[t]}var HC=YC;function ZC(e,t){var r=HC(e,t);return GC(r)?r:void 0}var At=ZC,QC=At(ee,"WeakMap"),_a=QC;function WC(e,t){return e===t||e!==e&&t!==t}var KC=WC,JC=9007199254740991;function XC(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JC}var eA=XC,WJ=Object.prototype,tA="[object Arguments]";function rA(e){return Ua(e)&&ui(e)==tA}var Pc=rA,Cd=Object.prototype,iA=Cd.hasOwnProperty,nA=Cd.propertyIsEnumerable,KJ=Pc(function(){return arguments}())?Pc:function(e){return Ua(e)&&iA.call(e,"callee")&&!nA.call(e,"callee")},Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zc=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,oA=zc&&zc.exports===Ad,Uc=oA?ee.Buffer:void 0,JJ=Uc?Uc.isBuffer:void 0,aA="[object Arguments]",lA="[object Array]",sA="[object Boolean]",uA="[object Date]",cA="[object Error]",dA="[object Function]",pA="[object Map]",gA="[object Number]",fA="[object Object]",yA="[object RegExp]",mA="[object Set]",bA="[object String]",hA="[object WeakMap]",vA="[object ArrayBuffer]",wA="[object DataView]",kA="[object Float32Array]",xA="[object Float64Array]",IA="[object Int8Array]",CA="[object Int16Array]",AA="[object Int32Array]",MA="[object Uint8Array]",jA="[object Uint8ClampedArray]",SA="[object Uint16Array]",$A="[object Uint32Array]",P={};P[kA]=P[xA]=P[IA]=P[CA]=P[AA]=P[MA]=P[jA]=P[SA]=P[$A]=!0;P[aA]=P[lA]=P[vA]=P[sA]=P[wA]=P[uA]=P[cA]=P[dA]=P[pA]=P[gA]=P[fA]=P[yA]=P[mA]=P[bA]=P[hA]=!1;function _A(e){return Ua(e)&&eA(e.length)&&!!P[ui(e)]}var EA=_A;function TA(e){return function(t){return e(t)}}var LA=TA,Md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=Md&&typeof module=="object"&&module&&!module.nodeType&&module,OA=ei&&ei.exports===Md,Ia=OA&&kd.process,NA=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Rc=NA,Fc=Rc&&Rc.isTypedArray,XJ=Fc?LA(Fc):EA,DA=Object.prototype,eX=DA.hasOwnProperty;function PA(e,t){return function(r){return e(t(r))}}var zA=PA,tX=zA(Object.keys,Object),UA=Object.prototype,rX=UA.hasOwnProperty,RA=At(Object,"create"),ii=RA;function FA(){this.__data__=ii?ii(null):{},this.size=0}var VA=FA;function BA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qA=BA,GA="__lodash_hash_undefined__",YA=Object.prototype,HA=YA.hasOwnProperty;function ZA(e){var t=this.__data__;if(ii){var r=t[e];return r===GA?void 0:r}return HA.call(t,e)?t[e]:void 0}var QA=ZA,WA=Object.prototype,KA=WA.hasOwnProperty;function JA(e){var t=this.__data__;return ii?t[e]!==void 0:KA.call(t,e)}var XA=JA,eM="__lodash_hash_undefined__";function tM(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?eM:t,this}var rM=tM;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=VA;Mt.prototype.delete=qA;Mt.prototype.get=QA;Mt.prototype.has=XA;Mt.prototype.set=rM;var Vc=Mt;function iM(){this.__data__=[],this.size=0}var nM=iM;function oM(e,t){for(var r=e.length;r--;)if(KC(e[r][0],t))return r;return-1}var Zn=oM,aM=Array.prototype,lM=aM.splice;function sM(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lM.call(t,r,1),--this.size,!0}var uM=sM;function cM(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var dM=cM;function pM(e){return Zn(this.__data__,e)>-1}var gM=pM;function fM(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 yM=fM;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=nM;jt.prototype.delete=uM;jt.prototype.get=dM;jt.prototype.has=gM;jt.prototype.set=yM;var Qn=jt,mM=At(ee,"Map"),ni=mM;function bM(){this.size=0,this.__data__={hash:new Vc,map:new(ni||Qn),string:new Vc}}var hM=bM;function vM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wM=vM;function kM(e,t){var r=e.__data__;return wM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=kM;function xM(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var IM=xM;function CM(e){return Wn(this,e).get(e)}var AM=CM;function MM(e){return Wn(this,e).has(e)}var jM=MM;function SM(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $M=SM;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=hM;St.prototype.delete=IM;St.prototype.get=AM;St.prototype.has=jM;St.prototype.set=$M;var jd=St;function _M(){this.__data__=new Qn,this.size=0}var EM=_M;function TM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LM=TM;function OM(e){return this.__data__.get(e)}var NM=OM;function DM(e){return this.__data__.has(e)}var PM=DM,zM=200;function UM(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<zM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new jd(i)}return r.set(e,t),this.size=r.size,this}var RM=UM;function ci(e){var t=this.__data__=new Qn(e);this.size=t.size}ci.prototype.clear=EM;ci.prototype.delete=LM;ci.prototype.get=NM;ci.prototype.has=PM;ci.prototype.set=RM;var FM=Object.prototype,iX=FM.propertyIsEnumerable,VM=At(ee,"DataView"),Ea=VM,BM=At(ee,"Promise"),Ta=BM,qM=At(ee,"Set"),La=qM,Bc="[object Map]",GM="[object Object]",qc="[object Promise]",Gc="[object Set]",Yc="[object WeakMap]",Hc="[object DataView]",YM=Le(Ea),HM=Le(ni),ZM=Le(Ta),QM=Le(La),WM=Le(_a),bt=ui;(Ea&&bt(new Ea(new ArrayBuffer(1)))!=Hc||ni&&bt(new ni)!=Bc||Ta&&bt(Ta.resolve())!=qc||La&&bt(new La)!=Gc||_a&&bt(new _a)!=Yc)&&(bt=function(e){var t=ui(e),r=t==GM?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case YM:return Hc;case HM:return Bc;case ZM:return qc;case QM:return Gc;case WM:return Yc}return t});var nX=ee.Uint8Array,KM="__lodash_hash_undefined__";function JM(e){return this.__data__.set(e,KM),this}var XM=JM;function ej(e){return this.__data__.has(e)}var tj=ej;function Oa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new jd;++t<r;)this.add(e[t])}Oa.prototype.add=Oa.prototype.push=XM;Oa.prototype.has=tj;var Zc=wt?wt.prototype:void 0,oX=Zc?Zc.valueOf:void 0,rj=Object.prototype,aX=rj.hasOwnProperty,ij=Object.prototype,lX=ij.hasOwnProperty,sX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),uX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),cX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function nj(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 Sd(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 nj(i,t)}function oj(e){return e==null?[]:Array.isArray(e)?e:[e]}var Qc=oj;function aj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function lj(e){return typeof e?.translate=="function"}function sj(e,t,r){return e&&aj(e)&&lj(e.i18n)?e.i18n.translate(t):r}var Jr="@imgly/plugin-ai-video-generation-web";var Kn="createVideo",Wc=`ly.img.${Kn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Kn}`,Kc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Kn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Kn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Kc}`]:"Create Video...",[`${Kc}.description`]:"Create a video from the image"}}),{id:Wc,type:"quick",kind:"image",label:`${uj}`,enable:Jx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Wc}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Sd(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_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),pj=dj,Jn="animateBetweenImages",Jc=`ly.img.${Jn}`,gj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,Xc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function fj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),e.i18n.setTranslations({en:{[`${Xc}`]:"Animate Between Images...",[`${Xc}.description`]:"Create a video transitioning between two images"}}),{id:Jc,type:"quick",kind:"image",label:`${gj}`,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(`${Jc}.button`,{label:fj(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=>Sd(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"})}}})}}),mj=yj,ye="ly.img.ai.video-generation";function bj(e){return{async initialize({cesdk:t}){if(t==null)return;Zx(t,Jr,"0.2.15"),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=`${Jr}.action.label`;t.setTranslations({en:{[`panel.${ye}`]:"Video Generation",[`${ye}.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."}}),hj(e);let i=qn.get().register({type:"plugin",sceneMode:"Video",id:Jr,pluginId:Jr,label:sj(t,r,"Generate Video"),meta:{panelId:ye},execute:()=>{t.ui.isPanelOpen(ye)?t.ui.closePanel(ye):t.ui.openPanel(ye)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(Qc(n).map(l=>l({cesdk:t}))),s=await Promise.all(Qc(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await lC("video",{fromText:o,fromImage:s},{cesdk:t},e);qn.get().register(pj({cesdk:t})),qn.get().register(mj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(ye,c.panel.builderRenderFunction),Wx({cesdk:t,panelId:ye})):i()}}}function hj(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 vj=bj,wj=e=>({name:Jr,version:"0.2.15",...vj(e)}),$d=wj;var kj=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;Et(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.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=()=>{Et(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 Et(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Et(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 Et(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]=Et(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]=Et(n,t,a)}return e}var xj=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")}},Ij=typeof global=="object"&&global&&global.Object===Object&&global,dp=Ij,Cj=typeof self=="object"&&self&&self.Object===Object&&self,Aj=dp||Cj||Function("return this")(),te=Aj,Mj=te.Symbol,Tt=Mj,pp=Object.prototype,jj=pp.hasOwnProperty,Sj=pp.toString,di=Tt?Tt.toStringTag:void 0;function $j(e){var t=jj.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=Sj.call(e);return i&&(t?e[di]=r:delete e[di]),n}var _j=$j,Ej=Object.prototype,Tj=Ej.toString;function Lj(e){return Tj.call(e)}var Oj=Lj,Nj="[object Null]",Dj="[object Undefined]",_d=Tt?Tt.toStringTag:void 0;function Pj(e){return e==null?e===void 0?Dj:Nj:_d&&_d in Object(e)?_j(e):Oj(e)}var xi=Pj;function zj(e){return e!=null&&typeof e=="object"}var nl=zj,fX=Array.isArray;function Uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var gp=Uj,Rj="[object AsyncFunction]",Fj="[object Function]",Vj="[object GeneratorFunction]",Bj="[object Proxy]";function qj(e){if(!gp(e))return!1;var t=xi(e);return t==Fj||t==Vj||t==Rj||t==Bj}var Gj=qj,Yj=te["__core-js_shared__"],Ra=Yj,Ed=function(){var e=/[^.]+$/.exec(Ra&&Ra.keys&&Ra.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hj(e){return!!Ed&&Ed in e}var Zj=Hj,Qj=Function.prototype,Wj=Qj.toString;function Kj(e){if(e!=null){try{return Wj.call(e)}catch{}try{return e+""}catch{}}return""}var De=Kj,Jj=/[\\^$.*+?()[\]{}|]/g,Xj=/^\[object .+?Constructor\]$/,eS=Function.prototype,tS=Object.prototype,rS=eS.toString,iS=tS.hasOwnProperty,nS=RegExp("^"+rS.call(iS).replace(Jj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oS(e){if(!gp(e)||Zj(e))return!1;var t=Gj(e)?nS:Xj;return t.test(De(e))}var aS=oS;function lS(e,t){return e?.[t]}var sS=lS;function uS(e,t){var r=sS(e,t);return aS(r)?r:void 0}var Ot=uS,cS=Ot(te,"WeakMap"),Ha=cS;function dS(e,t){return e===t||e!==e&&t!==t}var pS=dS,gS=9007199254740991;function fS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gS}var yS=fS,yX=Object.prototype,mS="[object Arguments]";function bS(e){return nl(e)&&xi(e)==mS}var Td=bS,fp=Object.prototype,hS=fp.hasOwnProperty,vS=fp.propertyIsEnumerable,mX=Td(function(){return arguments}())?Td:function(e){return nl(e)&&hS.call(e,"callee")&&!vS.call(e,"callee")},yp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ld=yp&&typeof module=="object"&&module&&!module.nodeType&&module,wS=Ld&&Ld.exports===yp,Od=wS?te.Buffer:void 0,bX=Od?Od.isBuffer:void 0,kS="[object Arguments]",xS="[object Array]",IS="[object Boolean]",CS="[object Date]",AS="[object Error]",MS="[object Function]",jS="[object Map]",SS="[object Number]",$S="[object Object]",_S="[object RegExp]",ES="[object Set]",TS="[object String]",LS="[object WeakMap]",OS="[object ArrayBuffer]",NS="[object DataView]",DS="[object Float32Array]",PS="[object Float64Array]",zS="[object Int8Array]",US="[object Int16Array]",RS="[object Int32Array]",FS="[object Uint8Array]",VS="[object Uint8ClampedArray]",BS="[object Uint16Array]",qS="[object Uint32Array]",z={};z[DS]=z[PS]=z[zS]=z[US]=z[RS]=z[FS]=z[VS]=z[BS]=z[qS]=!0;z[kS]=z[xS]=z[OS]=z[IS]=z[NS]=z[CS]=z[AS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=z[ES]=z[TS]=z[LS]=!1;function GS(e){return nl(e)&&yS(e.length)&&!!z[xi(e)]}var YS=GS;function HS(e){return function(t){return e(t)}}var ZS=HS,mp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mi=mp&&typeof module=="object"&&module&&!module.nodeType&&module,QS=mi&&mi.exports===mp,Fa=QS&&dp.process,WS=function(){try{var e=mi&&mi.require&&mi.require("util").types;return e||Fa&&Fa.binding&&Fa.binding("util")}catch{}}(),Nd=WS,Dd=Nd&&Nd.isTypedArray,hX=Dd?ZS(Dd):YS,KS=Object.prototype,vX=KS.hasOwnProperty;function JS(e,t){return function(r){return e(t(r))}}var XS=JS,wX=XS(Object.keys,Object),e$=Object.prototype,kX=e$.hasOwnProperty,t$=Ot(Object,"create"),hi=t$;function r$(){this.__data__=hi?hi(null):{},this.size=0}var i$=r$;function n$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o$=n$,a$="__lodash_hash_undefined__",l$=Object.prototype,s$=l$.hasOwnProperty;function u$(e){var t=this.__data__;if(hi){var r=t[e];return r===a$?void 0:r}return s$.call(t,e)?t[e]:void 0}var c$=u$,d$=Object.prototype,p$=d$.hasOwnProperty;function g$(e){var t=this.__data__;return hi?t[e]!==void 0:p$.call(t,e)}var f$=g$,y$="__lodash_hash_undefined__";function m$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hi&&t===void 0?y$:t,this}var b$=m$;function Nt(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])}}Nt.prototype.clear=i$;Nt.prototype.delete=o$;Nt.prototype.get=c$;Nt.prototype.has=f$;Nt.prototype.set=b$;var Pd=Nt;function h$(){this.__data__=[],this.size=0}var v$=h$;function w$(e,t){for(var r=e.length;r--;)if(pS(e[r][0],t))return r;return-1}var Xn=w$,k$=Array.prototype,x$=k$.splice;function I$(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x$.call(t,r,1),--this.size,!0}var C$=I$;function A$(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var M$=A$;function j$(e){return Xn(this.__data__,e)>-1}var S$=j$;function $$(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 _$=$$;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=v$;Dt.prototype.delete=C$;Dt.prototype.get=M$;Dt.prototype.has=S$;Dt.prototype.set=_$;var eo=Dt,E$=Ot(te,"Map"),vi=E$;function T$(){this.size=0,this.__data__={hash:new Pd,map:new(vi||eo),string:new Pd}}var L$=T$;function O$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N$=O$;function D$(e,t){var r=e.__data__;return N$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=D$;function P$(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var z$=P$;function U$(e){return to(this,e).get(e)}var R$=U$;function F$(e){return to(this,e).has(e)}var V$=F$;function B$(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q$=B$;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=z$;Pt.prototype.get=R$;Pt.prototype.has=V$;Pt.prototype.set=q$;var bp=Pt;function G$(){this.__data__=new eo,this.size=0}var Y$=G$;function H$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z$=H$;function Q$(e){return this.__data__.get(e)}var W$=Q$;function K$(e){return this.__data__.has(e)}var J$=K$,X$=200;function e_(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<X$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new bp(i)}return r.set(e,t),this.size=r.size,this}var t_=e_;function Ii(e){var t=this.__data__=new eo(e);this.size=t.size}Ii.prototype.clear=Y$;Ii.prototype.delete=Z$;Ii.prototype.get=W$;Ii.prototype.has=J$;Ii.prototype.set=t_;var r_=Object.prototype,xX=r_.propertyIsEnumerable,i_=Ot(te,"DataView"),Za=i_,n_=Ot(te,"Promise"),Qa=n_,o_=Ot(te,"Set"),Wa=o_,zd="[object Map]",a_="[object Object]",Ud="[object Promise]",Rd="[object Set]",Fd="[object WeakMap]",Vd="[object DataView]",l_=De(Za),s_=De(vi),u_=De(Qa),c_=De(Wa),d_=De(Ha),$t=xi;(Za&&$t(new Za(new ArrayBuffer(1)))!=Vd||vi&&$t(new vi)!=zd||Qa&&$t(Qa.resolve())!=Ud||Wa&&$t(new Wa)!=Rd||Ha&&$t(new Ha)!=Fd)&&($t=function(e){var t=xi(e),r=t==a_?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case l_:return Vd;case s_:return zd;case u_:return Ud;case c_:return Rd;case d_:return Fd}return t});var IX=te.Uint8Array,p_="__lodash_hash_undefined__";function g_(e){return this.__data__.set(e,p_),this}var f_=g_;function y_(e){return this.__data__.has(e)}var m_=y_;function Ka(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new bp;++t<r;)this.add(e[t])}Ka.prototype.add=Ka.prototype.push=f_;Ka.prototype.has=m_;var Bd=Tt?Tt.prototype:void 0,CX=Bd?Bd.valueOf:void 0,b_=Object.prototype,AX=b_.hasOwnProperty,h_=Object.prototype,MX=h_.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function hp(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 v_(e,t){let r=await hp(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 w_(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 hp(i,t)}function k_(e){return e!==void 0}var x_=k_;function Ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Ai(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 vp=class wp{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 wp),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))}},I_=class kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new kp),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 C_(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 A_({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 M_=A_,Va="ly.img.ai.temp";async function j_(e,t){return e.engine.asset.findAllSources().includes(Va)||e.engine.asset.addLocalSource(Va),e.engine.asset.apply(Va,t)}function S_(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 xp(){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 $_(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){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 ol(e){return e instanceof Error&&e.name==="AbortError"}function E_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function T_(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
+ `,QI=ZI;function WI(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 jd(2e3),await KI(t,e,r)):i(t,r)}async function KI(e,t,r){switch(t.kind){case"image":return JI(e,t,r);case"video":return XI(e,t,r);case"text":return eC(e,t,r);case"audio":return rC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function JI(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 qx(s,r),l=await Bx(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 XI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function eC(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 tC(a,r.abortSignal)}async function*tC(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 jd(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 rC(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:iC(220,i),duration:i,thumbnailUrl:void 0}}function iC(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 nC(i,44100)}function nC(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jd(e){return new Promise(t=>{setTimeout(t,e)})}var oC=WI,aC="USER_CANCEL";function lC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Zx([...e.provider.output.middleware??[],...r?.middlewares??[],Wx({enable:r?.debug}),oC({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}:eI(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===aC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var sC=lC;async function uC(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 m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=GI(a),s=HI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=sC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await BI(a,c);tI(r.cesdk,"@imgly/plugin-ai-generation",QI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Hx.get().register(u),u}var Ca=uC;function cC(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 Y6(n,r,i);return r.engine.asset.addSource(a),a.id}var dC=cC;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 pC(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=fC({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=gC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=dC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Yx)}),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 gC({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&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"&&Fc(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"&&Fc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function fC({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 Fc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var yC=pC,mC=typeof global=="object"&&global&&global.Object===Object&&global,Sd=mC,bC=typeof self=="object"&&self&&self.Object===Object&&self,hC=Sd||bC||Function("return this")(),re=hC,vC=re.Symbol,xt=vC,$d=Object.prototype,wC=$d.hasOwnProperty,kC=$d.toString,Kr=xt?xt.toStringTag:void 0;function xC(e){var t=wC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=kC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var IC=xC,CC=Object.prototype,AC=CC.toString;function MC(e){return AC.call(e)}var jC=MC,SC="[object Null]",$C="[object Undefined]",Vc=xt?xt.toStringTag:void 0;function _C(e){return e==null?e===void 0?$C:SC:Vc&&Vc in Object(e)?IC(e):jC(e)}var pi=_C;function EC(e){return e!=null&&typeof e=="object"}var Va=EC,nX=Array.isArray;function LC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _d=LC,TC="[object AsyncFunction]",OC="[object Function]",NC="[object GeneratorFunction]",DC="[object Proxy]";function PC(e){if(!_d(e))return!1;var t=pi(e);return t==OC||t==NC||t==TC||t==DC}var zC=PC,UC=re["__core-js_shared__"],Aa=UC,Bc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RC(e){return!!Bc&&Bc in e}var FC=RC,VC=Function.prototype,BC=VC.toString;function qC(e){if(e!=null){try{return BC.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=qC,GC=/[\\^$.*+?()[\]{}|]/g,YC=/^\[object .+?Constructor\]$/,HC=Function.prototype,ZC=Object.prototype,QC=HC.toString,WC=ZC.hasOwnProperty,KC=RegExp("^"+QC.call(WC).replace(GC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JC(e){if(!_d(e)||FC(e))return!1;var t=zC(e)?KC:YC;return t.test(Ne(e))}var XC=JC;function eA(e,t){return e?.[t]}var tA=eA;function rA(e,t){var r=tA(e,t);return XC(r)?r:void 0}var jt=rA,iA=jt(re,"WeakMap"),Ta=iA;function nA(e,t){return e===t||e!==e&&t!==t}var oA=nA,aA=9007199254740991;function lA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=aA}var sA=lA,oX=Object.prototype,uA="[object Arguments]";function cA(e){return Va(e)&&pi(e)==uA}var qc=cA,Ed=Object.prototype,dA=Ed.hasOwnProperty,pA=Ed.propertyIsEnumerable,aX=qc(function(){return arguments}())?qc:function(e){return Va(e)&&dA.call(e,"callee")&&!pA.call(e,"callee")},Ld=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gc=Ld&&typeof module=="object"&&module&&!module.nodeType&&module,gA=Gc&&Gc.exports===Ld,Yc=gA?re.Buffer:void 0,lX=Yc?Yc.isBuffer:void 0,fA="[object Arguments]",yA="[object Array]",mA="[object Boolean]",bA="[object Date]",hA="[object Error]",vA="[object Function]",wA="[object Map]",kA="[object Number]",xA="[object Object]",IA="[object RegExp]",CA="[object Set]",AA="[object String]",MA="[object WeakMap]",jA="[object ArrayBuffer]",SA="[object DataView]",$A="[object Float32Array]",_A="[object Float64Array]",EA="[object Int8Array]",LA="[object Int16Array]",TA="[object Int32Array]",OA="[object Uint8Array]",NA="[object Uint8ClampedArray]",DA="[object Uint16Array]",PA="[object Uint32Array]",P={};P[$A]=P[_A]=P[EA]=P[LA]=P[TA]=P[OA]=P[NA]=P[DA]=P[PA]=!0;P[fA]=P[yA]=P[jA]=P[mA]=P[SA]=P[bA]=P[hA]=P[vA]=P[wA]=P[kA]=P[xA]=P[IA]=P[CA]=P[AA]=P[MA]=!1;function zA(e){return Va(e)&&sA(e.length)&&!!P[pi(e)]}var UA=zA;function RA(e){return function(t){return e(t)}}var FA=RA,Td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Td&&typeof module=="object"&&module&&!module.nodeType&&module,VA=ri&&ri.exports===Td,Ma=VA&&Sd.process,BA=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ma&&Ma.binding&&Ma.binding("util")}catch{}}(),Hc=BA,Zc=Hc&&Hc.isTypedArray,sX=Zc?FA(Zc):UA,qA=Object.prototype,uX=qA.hasOwnProperty;function GA(e,t){return function(r){return e(t(r))}}var YA=GA,cX=YA(Object.keys,Object),HA=Object.prototype,dX=HA.hasOwnProperty,ZA=jt(Object,"create"),oi=ZA;function QA(){this.__data__=oi?oi(null):{},this.size=0}var WA=QA;function KA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var JA=KA,XA="__lodash_hash_undefined__",eM=Object.prototype,tM=eM.hasOwnProperty;function rM(e){var t=this.__data__;if(oi){var r=t[e];return r===XA?void 0:r}return tM.call(t,e)?t[e]:void 0}var iM=rM,nM=Object.prototype,oM=nM.hasOwnProperty;function aM(e){var t=this.__data__;return oi?t[e]!==void 0:oM.call(t,e)}var lM=aM,sM="__lodash_hash_undefined__";function uM(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=oi&&t===void 0?sM:t,this}var cM=uM;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=WA;St.prototype.delete=JA;St.prototype.get=iM;St.prototype.has=lM;St.prototype.set=cM;var Qc=St;function dM(){this.__data__=[],this.size=0}var pM=dM;function gM(e,t){for(var r=e.length;r--;)if(oA(e[r][0],t))return r;return-1}var Kn=gM,fM=Array.prototype,yM=fM.splice;function mM(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():yM.call(t,r,1),--this.size,!0}var bM=mM;function hM(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var vM=hM;function wM(e){return Kn(this.__data__,e)>-1}var kM=wM;function xM(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 IM=xM;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=pM;$t.prototype.delete=bM;$t.prototype.get=vM;$t.prototype.has=kM;$t.prototype.set=IM;var Jn=$t,CM=jt(re,"Map"),ai=CM;function AM(){this.size=0,this.__data__={hash:new Qc,map:new(ai||Jn),string:new Qc}}var MM=AM;function jM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var SM=jM;function $M(e,t){var r=e.__data__;return SM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=$M;function _M(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var EM=_M;function LM(e){return Xn(this,e).get(e)}var TM=LM;function OM(e){return Xn(this,e).has(e)}var NM=OM;function DM(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var PM=DM;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=MM;_t.prototype.delete=EM;_t.prototype.get=TM;_t.prototype.has=NM;_t.prototype.set=PM;var Od=_t;function zM(){this.__data__=new Jn,this.size=0}var UM=zM;function RM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var FM=RM;function VM(e){return this.__data__.get(e)}var BM=VM;function qM(e){return this.__data__.has(e)}var GM=qM,YM=200;function HM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!ai||i.length<YM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Od(i)}return r.set(e,t),this.size=r.size,this}var ZM=HM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=UM;gi.prototype.delete=FM;gi.prototype.get=BM;gi.prototype.has=GM;gi.prototype.set=ZM;var QM=Object.prototype,pX=QM.propertyIsEnumerable,WM=jt(re,"DataView"),Oa=WM,KM=jt(re,"Promise"),Na=KM,JM=jt(re,"Set"),Da=JM,Wc="[object Map]",XM="[object Object]",Kc="[object Promise]",Jc="[object Set]",Xc="[object WeakMap]",ed="[object DataView]",ej=Ne(Oa),tj=Ne(ai),rj=Ne(Na),ij=Ne(Da),nj=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=ed||ai&&vt(new ai)!=Wc||Na&&vt(Na.resolve())!=Kc||Da&&vt(new Da)!=Jc||Ta&&vt(new Ta)!=Xc)&&(vt=function(e){var t=pi(e),r=t==XM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case ej:return ed;case tj:return Wc;case rj:return Kc;case ij:return Jc;case nj:return Xc}return t});var gX=re.Uint8Array,oj="__lodash_hash_undefined__";function aj(e){return this.__data__.set(e,oj),this}var lj=aj;function sj(e){return this.__data__.has(e)}var uj=sj;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Od;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=lj;Pa.prototype.has=uj;var td=xt?xt.prototype:void 0,fX=td?td.valueOf:void 0,cj=Object.prototype,yX=cj.hasOwnProperty,dj=Object.prototype,mX=dj.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 pj(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 Nd(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 pj(i,t)}function gj(e){return e==null?[]:Array.isArray(e)?e:[e]}var rd=gj;function fj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function yj(e){return typeof e?.translate=="function"}function mj(e,t,r){return e&&fj(e)&&yj(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",id=`ly.img.${eo}`,bj=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,nd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function hj(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 vj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${nd}`]:"Create Video...",[`${nd}.description`]:"Create a video from the image"}}),{id,type:"quick",kind:"image",label:`${bj}`,enable:aI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${id}.button`,{label:hj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Nd(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_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),wj=vj,to="animateBetweenImages",od=`ly.img.${to}`,kj=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,ad=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function xj(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 Ij=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${ad}`]:"Animate Between Images...",[`${ad}.description`]:"Create a video transitioning between two images"}}),{id:od,type:"quick",kind:"image",label:`${kj}`,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(`${od}.button`,{label:xj(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=>Nd(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"})}}})}}),Cj=Ij,be="ly.img.ai.video-generation";function Aj(e){return{async initialize({cesdk:t}){if(t==null)return;rI(t,ei,"0.2.16"),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."}}),Mj(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:mj(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(rd(n).map(l=>l({cesdk:t}))),s=await Promise.all(rd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await yC("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(wj({cesdk:t})),Hn.get().register(Cj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),nI({cesdk:t,panelId:be})):i()}}}function Mj(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 jj=Aj,Sj=e=>({name:ei,version:"0.2.16",...jj(e)}),Dd=Sj;var $j=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.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 _j=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")}},Ej=typeof global=="object"&&global&&global.Object===Object&&global,hp=Ej,Lj=typeof self=="object"&&self&&self.Object===Object&&self,Tj=hp||Lj||Function("return this")(),ie=Tj,Oj=ie.Symbol,Ot=Oj,vp=Object.prototype,Nj=vp.hasOwnProperty,Dj=vp.toString,fi=Ot?Ot.toStringTag:void 0;function Pj(e){var t=Nj.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=Dj.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var zj=Pj,Uj=Object.prototype,Rj=Uj.toString;function Fj(e){return Rj.call(e)}var Vj=Fj,Bj="[object Null]",qj="[object Undefined]",Pd=Ot?Ot.toStringTag:void 0;function Gj(e){return e==null?e===void 0?qj:Bj:Pd&&Pd in Object(e)?zj(e):Vj(e)}var Ai=Gj;function Yj(e){return e!=null&&typeof e=="object"}var ll=Yj,IX=Array.isArray;function Hj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wp=Hj,Zj="[object AsyncFunction]",Qj="[object Function]",Wj="[object GeneratorFunction]",Kj="[object Proxy]";function Jj(e){if(!wp(e))return!1;var t=Ai(e);return t==Qj||t==Wj||t==Zj||t==Kj}var Xj=Jj,eS=ie["__core-js_shared__"],Ba=eS,zd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tS(e){return!!zd&&zd in e}var rS=tS,iS=Function.prototype,nS=iS.toString;function oS(e){if(e!=null){try{return nS.call(e)}catch{}try{return e+""}catch{}}return""}var ze=oS,aS=/[\\^$.*+?()[\]{}|]/g,lS=/^\[object .+?Constructor\]$/,sS=Function.prototype,uS=Object.prototype,cS=sS.toString,dS=uS.hasOwnProperty,pS=RegExp("^"+cS.call(dS).replace(aS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gS(e){if(!wp(e)||rS(e))return!1;var t=Xj(e)?pS:lS;return t.test(ze(e))}var fS=gS;function yS(e,t){return e?.[t]}var mS=yS;function bS(e,t){var r=mS(e,t);return fS(r)?r:void 0}var Dt=bS,hS=Dt(ie,"WeakMap"),Wa=hS;function vS(e,t){return e===t||e!==e&&t!==t}var wS=vS,kS=9007199254740991;function xS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kS}var IS=xS,CX=Object.prototype,CS="[object Arguments]";function AS(e){return ll(e)&&Ai(e)==CS}var Ud=AS,kp=Object.prototype,MS=kp.hasOwnProperty,jS=kp.propertyIsEnumerable,AX=Ud(function(){return arguments}())?Ud:function(e){return ll(e)&&MS.call(e,"callee")&&!jS.call(e,"callee")},xp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rd=xp&&typeof module=="object"&&module&&!module.nodeType&&module,SS=Rd&&Rd.exports===xp,Fd=SS?ie.Buffer:void 0,MX=Fd?Fd.isBuffer:void 0,$S="[object Arguments]",_S="[object Array]",ES="[object Boolean]",LS="[object Date]",TS="[object Error]",OS="[object Function]",NS="[object Map]",DS="[object Number]",PS="[object Object]",zS="[object RegExp]",US="[object Set]",RS="[object String]",FS="[object WeakMap]",VS="[object ArrayBuffer]",BS="[object DataView]",qS="[object Float32Array]",GS="[object Float64Array]",YS="[object Int8Array]",HS="[object Int16Array]",ZS="[object Int32Array]",QS="[object Uint8Array]",WS="[object Uint8ClampedArray]",KS="[object Uint16Array]",JS="[object Uint32Array]",z={};z[qS]=z[GS]=z[YS]=z[HS]=z[ZS]=z[QS]=z[WS]=z[KS]=z[JS]=!0;z[$S]=z[_S]=z[VS]=z[ES]=z[BS]=z[LS]=z[TS]=z[OS]=z[NS]=z[DS]=z[PS]=z[zS]=z[US]=z[RS]=z[FS]=!1;function XS(e){return ll(e)&&IS(e.length)&&!!z[Ai(e)]}var e$=XS;function t$(e){return function(t){return e(t)}}var r$=t$,Ip=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Ip&&typeof module=="object"&&module&&!module.nodeType&&module,i$=vi&&vi.exports===Ip,qa=i$&&hp.process,n$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Vd=n$,Bd=Vd&&Vd.isTypedArray,jX=Bd?r$(Bd):e$,o$=Object.prototype,SX=o$.hasOwnProperty;function a$(e,t){return function(r){return e(t(r))}}var l$=a$,$X=l$(Object.keys,Object),s$=Object.prototype,_X=s$.hasOwnProperty,u$=Dt(Object,"create"),ki=u$;function c$(){this.__data__=ki?ki(null):{},this.size=0}var d$=c$;function p$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var g$=p$,f$="__lodash_hash_undefined__",y$=Object.prototype,m$=y$.hasOwnProperty;function b$(e){var t=this.__data__;if(ki){var r=t[e];return r===f$?void 0:r}return m$.call(t,e)?t[e]:void 0}var h$=b$,v$=Object.prototype,w$=v$.hasOwnProperty;function k$(e){var t=this.__data__;return ki?t[e]!==void 0:w$.call(t,e)}var x$=k$,I$="__lodash_hash_undefined__";function C$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?I$:t,this}var A$=C$;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=d$;Pt.prototype.delete=g$;Pt.prototype.get=h$;Pt.prototype.has=x$;Pt.prototype.set=A$;var qd=Pt;function M$(){this.__data__=[],this.size=0}var j$=M$;function S$(e,t){for(var r=e.length;r--;)if(wS(e[r][0],t))return r;return-1}var ro=S$,$$=Array.prototype,_$=$$.splice;function E$(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_$.call(t,r,1),--this.size,!0}var L$=E$;function T$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var O$=T$;function N$(e){return ro(this.__data__,e)>-1}var D$=N$;function P$(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 z$=P$;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=j$;zt.prototype.delete=L$;zt.prototype.get=O$;zt.prototype.has=D$;zt.prototype.set=z$;var io=zt,U$=Dt(ie,"Map"),xi=U$;function R$(){this.size=0,this.__data__={hash:new qd,map:new(xi||io),string:new qd}}var F$=R$;function V$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var B$=V$;function q$(e,t){var r=e.__data__;return B$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=q$;function G$(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var Y$=G$;function H$(e){return no(this,e).get(e)}var Z$=H$;function Q$(e){return no(this,e).has(e)}var W$=Q$;function K$(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var J$=K$;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=F$;Ut.prototype.delete=Y$;Ut.prototype.get=Z$;Ut.prototype.has=W$;Ut.prototype.set=J$;var Cp=Ut;function X$(){this.__data__=new io,this.size=0}var e_=X$;function t_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var r_=t_;function i_(e){return this.__data__.get(e)}var n_=i_;function o_(e){return this.__data__.has(e)}var a_=o_,l_=200;function s_(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<l_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Cp(i)}return r.set(e,t),this.size=r.size,this}var u_=s_;function Mi(e){var t=this.__data__=new io(e);this.size=t.size}Mi.prototype.clear=e_;Mi.prototype.delete=r_;Mi.prototype.get=n_;Mi.prototype.has=a_;Mi.prototype.set=u_;var c_=Object.prototype,EX=c_.propertyIsEnumerable,d_=Dt(ie,"DataView"),Ka=d_,p_=Dt(ie,"Promise"),Ja=p_,g_=Dt(ie,"Set"),Xa=g_,Gd="[object Map]",f_="[object Object]",Yd="[object Promise]",Hd="[object Set]",Zd="[object WeakMap]",Qd="[object DataView]",y_=ze(Ka),m_=ze(xi),b_=ze(Ja),h_=ze(Xa),v_=ze(Wa),Et=Ai;(Ka&&Et(new Ka(new ArrayBuffer(1)))!=Qd||xi&&Et(new xi)!=Gd||Ja&&Et(Ja.resolve())!=Yd||Xa&&Et(new Xa)!=Hd||Wa&&Et(new Wa)!=Zd)&&(Et=function(e){var t=Ai(e),r=t==f_?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case y_:return Qd;case m_:return Gd;case b_:return Yd;case h_:return Hd;case v_:return Zd}return t});var LX=ie.Uint8Array,w_="__lodash_hash_undefined__";function k_(e){return this.__data__.set(e,w_),this}var x_=k_;function I_(e){return this.__data__.has(e)}var C_=I_;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Cp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=x_;el.prototype.has=C_;var Wd=Ot?Ot.prototype:void 0,TX=Wd?Wd.valueOf:void 0,A_=Object.prototype,OX=A_.hasOwnProperty,M_=Object.prototype,NX=M_.hasOwnProperty,DX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),PX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ap(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 j_(e,t){let r=await Ap(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 S_(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 Ap(i,t)}function $_(e){return e!==void 0}var __=$_;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 ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(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 Mp=class jp{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 jp),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))}},E_=class Sp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Sp),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 L_(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 T_({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 O_=T_,Ga="ly.img.ai.temp";async function N_(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function D_(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 $p(){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 P_(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 U_(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!
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 L_(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 qd=L_;function O_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),N_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:S_(e)}))}function N_(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 Gd=O_,D_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",al=D_;function P_(e,t,r){switch(t){case"image":return z_(e,r[t]);case"video":return U_(e,r[t]);case"sticker":return R_(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:al,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:al,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function R_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:al,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var F_=P_;async function V_(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 B_(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 q_(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 G_(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 Y_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function B_(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 q_(e,t,r){let i=t.width,n=t.height,a=await $_(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 G_(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 Y_(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 Ip=V_;function H_(e){switch(e.userFlow){case"placeholder":return Q_(e);case"generation-only":return Z_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Z_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ve(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ve(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(ve(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=xp(),c=await Ip(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 Q_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ve(t,r))return{status:"aborted"};let s=xp(),c=F_(s,a,o);if(i=await j_(t,c),ve(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(ve(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 Ip(s,a,o,l.output);if(ve(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),ve(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)&&(ol(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 ve(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var W_=H_;function ll(e){return`${e}.generating`}function K_(e){return`${e}.abort`}function J_(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),()=>{}),m=c.global(ll(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=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(y.status==="aborted")return;if(y.status==="error"){Gd(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;X_(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ol(y))return;Gd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 X_(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 Cp=J_;async function eE({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(ll(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Cp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var tE=eE;function Ap(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 fi(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=Ap(e,t.$ref),n={...fi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=fi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>fi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=fi(e,t[n],r));return i}return t}function rE(e){return fi(e,{...e})}function iE(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 nE(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return oE(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function oE(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=aE(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function aE(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 Mp=nE;function we(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 jp(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 Sp(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?lE(e,c,r,i,n,a,o,s):$p(e,c,r,i,n,a,o,s);case"boolean":return _p(e,c,r,i,n,a,o,s);case"number":case"integer":return Ep(e,c,r,i,n,a,o,s);case"object":return Ja(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 sE(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ja(e,t,r,i,n,a,o,s){let c=Mp(t.schema??{},i).reduce((l,u)=>{let d=Sp(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 $p(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=we(t,r,o),m=we(t,r,o,"placeholder"),f=Ci(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Ai(d,h,f,t.schema.default,""),v=l(p,b),k=uE(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function lE(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=we(t,r,o),{labels:m,icons:f}=jp(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:we(t,r,o,I),icon:f[I]})),b=Ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Ai(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function _p(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=we(t,r,o),m=Ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Ai(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Ep(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=we(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Ai(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function sE(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=we(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=jp(t.schema),x=Ci(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:$p,boolean:_p,integer:Ep,object:Ja},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:we(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ja(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Ai(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function uE(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var cE=Sp,dE={"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 Yd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function pE(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),m=d[g]||Yd(g);n[a(u,g)]=m})};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,m=u[g]||Yd(g);n[a(l.id,g)]=m}})}});let c={...dE,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function gE({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=rE(r.document),c=Ap(s,r.inputReference);if(!iE(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Mp(l,r);return pE(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=cE(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Cp(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var fE=gE;async function yE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return tE(e,t);case"schema":return fE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var mE=yE;function bE(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 kj(o,r)),o}return i}var hE=bE;function vE(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 wE=vE,Ba="@imgly/plugin-ai-generation",kE=`
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 F_(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 Kd=F_;function V_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),B_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:D_(e)}))}function B_(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 Jd=V_,q_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",cl=q_;function G_(e,t,r){switch(t){case"image":return Y_(e,r[t]);case"video":return H_(e,r[t]);case"sticker":return Z_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Y_(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 H_(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 Z_(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 Q_=G_;async function W_(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 K_(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 J_(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 X_(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 eE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}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:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function J_(e,t,r){let i=t.width,n=t.height,a=await P_(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 X_(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 eE(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 _p=W_;function tE(e){switch(e.userFlow){case"placeholder":return iE(e);case"generation-only":return rE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function rE(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=$p(),c=await _p(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 iE(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=$p(),c=Q_(s,a,o);if(i=await N_(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 _p(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 nE=tE;function dl(e){return`${e}.generating`}function oE(e){return`${e}.abort`}function aE(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(oE(d),()=>{}),m=c.global(dl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=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:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await nE({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(y.status==="aborted")return;if(y.status==="error"){Jd(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;lE(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ul(y))return;Jd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 lE(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 Ep=aE;async function sE({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 Ep(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var uE=sE;function Lp(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=Lp(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 cE(e){return bi(e,{...e})}function dE(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 pE(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return gE(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function gE(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=fE(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function fE(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 Tp=pE;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 Op(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 Np(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?yE(e,c,r,i,n,a,o,s):Dp(e,c,r,i,n,a,o,s);case"boolean":return Pp(e,c,r,i,n,a,o,s);case"number":case"integer":return zp(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 mE(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=Tp(t.schema??{},i).reduce((l,u)=>{let d=Np(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 Dp(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),m=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Si(d,h,f,t.schema.default,""),v=l(p,b),k=bE(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function yE(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:m,icons:f}=Op(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),b=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Pp(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),m=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}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),m=t.schema.minimum,f=t.schema.maximum,h=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Si(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function mE(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),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Op(t.schema),x=ji(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Dp,boolean:Pp,integer:zp,object:tl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:xe(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>tl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Si(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function bE(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var hE=Np,vE={"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 Xd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wE(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),m=d[g]||Xd(g);n[a(u,g)]=m})};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,m=u[g]||Xd(g);n[a(l.id,g)]=m}})}});let c={...vE,...n};Object.keys(c).length>0&&sl(r.cesdk,{en:c})}async function kE({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=cE(r.document),c=Lp(s,r.inputReference);if(!dE(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Tp(l,r);return wE(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=hE(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Ep(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var xE=kE;async function IE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return uE(e,t);case"schema":return xE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CE=IE;function AE(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 $j(o,r)),o}return i}var ME=AE;function jE(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 SE=jE,Ya="@imgly/plugin-ai-generation",$E=`
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="${Ba}/image"
230
+ id="${Ya}/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="${Ba}/video"
242
+ id="${Ya}/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="${Ba}/audio"
253
+ id="${Ya}/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
- `,xE=kE;function IE(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 Tp(2e3),await CE(t,e,r)):i(t,r)}async function CE(e,t,r){switch(t.kind){case"image":return AE(e,t,r);case"video":return ME(e,t,r);case"text":return jE(e,t,r);case"audio":return $E(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function AE(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 w_(s,r),l=await v_(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 ME(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function jE(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=pi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=pi(n,o)}else"customPrompt"in e?a=pi(n,"custom"):a=pi(n,"improved");else a=pi(n,"generated");return SE(a,r.abortSignal)}async function*SE(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 Tp(100)}return{kind:"text",text:e}}function pi(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 $E(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:_E(220,i),duration:i,thumbnailUrl:void 0}}function _E(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 EE(i,44100)}function EE(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function Tp(e){return new Promise(t=>{setTimeout(t,e)})}var TE=IE,LE="USER_CANCEL";function OE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=C_([...e.provider.output.middleware??[],...r?.middlewares??[],M_({enable:r?.debug}),TE({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)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ol(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===LE?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var NE=OE;async function DE(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=vp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=hE(a),s=wE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=NE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mE(a,c);E_(r.cesdk,"@imgly/plugin-ai-generation",xE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return I_.get().register(u),u}var qa=DE;function PE(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 xj(n,r,i);return r.engine.asset.addSource(a),a.id}var zE=PE;function yi(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 UE(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"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=>qa(e,u,r,i)));o.push(...l),a=FE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>qa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>qa(e,d,r,i)));o.push(...u),a=RE({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=zE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(x_)}),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 RE({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:yi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:yi(e,"fromText.label"),icon:f.value!=="fromText"&&Hd(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:yi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Hd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:yi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function FE({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:yi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Hd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ll(r.id),!1).value)}var Zd=UE,VE=typeof global=="object"&&global&&global.Object===Object&&global,Lp=VE,BE=typeof self=="object"&&self&&self.Object===Object&&self,qE=Lp||BE||Function("return this")(),re=qE,GE=re.Symbol,Lt=GE,Op=Object.prototype,YE=Op.hasOwnProperty,HE=Op.toString,gi=Lt?Lt.toStringTag:void 0;function ZE(e){var t=YE.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=HE.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var QE=ZE,WE=Object.prototype,KE=WE.toString;function JE(e){return KE.call(e)}var XE=JE,eT="[object Null]",tT="[object Undefined]",Qd=Lt?Lt.toStringTag:void 0;function rT(e){return e==null?e===void 0?tT:eT:Qd&&Qd in Object(e)?QE(e):XE(e)}var Mi=rT;function iT(e){return e!=null&&typeof e=="object"}var sl=iT,_X=Array.isArray;function nT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Np=nT,oT="[object AsyncFunction]",aT="[object Function]",lT="[object GeneratorFunction]",sT="[object Proxy]";function uT(e){if(!Np(e))return!1;var t=Mi(e);return t==aT||t==lT||t==oT||t==sT}var cT=uT,dT=re["__core-js_shared__"],Ga=dT,Wd=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function pT(e){return!!Wd&&Wd in e}var gT=pT,fT=Function.prototype,yT=fT.toString;function mT(e){if(e!=null){try{return yT.call(e)}catch{}try{return e+""}catch{}}return""}var Pe=mT,bT=/[\\^$.*+?()[\]{}|]/g,hT=/^\[object .+?Constructor\]$/,vT=Function.prototype,wT=Object.prototype,kT=vT.toString,xT=wT.hasOwnProperty,IT=RegExp("^"+kT.call(xT).replace(bT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function CT(e){if(!Np(e)||gT(e))return!1;var t=cT(e)?IT:hT;return t.test(Pe(e))}var AT=CT;function MT(e,t){return e?.[t]}var jT=MT;function ST(e,t){var r=jT(e,t);return AT(r)?r:void 0}var zt=ST,$T=zt(re,"WeakMap"),Xa=$T;function _T(e,t){return e===t||e!==e&&t!==t}var ET=_T,TT=9007199254740991;function LT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=TT}var OT=LT,EX=Object.prototype,NT="[object Arguments]";function DT(e){return sl(e)&&Mi(e)==NT}var Kd=DT,Dp=Object.prototype,PT=Dp.hasOwnProperty,zT=Dp.propertyIsEnumerable,TX=Kd(function(){return arguments}())?Kd:function(e){return sl(e)&&PT.call(e,"callee")&&!zT.call(e,"callee")},Pp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jd=Pp&&typeof module=="object"&&module&&!module.nodeType&&module,UT=Jd&&Jd.exports===Pp,Xd=UT?re.Buffer:void 0,LX=Xd?Xd.isBuffer:void 0,RT="[object Arguments]",FT="[object Array]",VT="[object Boolean]",BT="[object Date]",qT="[object Error]",GT="[object Function]",YT="[object Map]",HT="[object Number]",ZT="[object Object]",QT="[object RegExp]",WT="[object Set]",KT="[object String]",JT="[object WeakMap]",XT="[object ArrayBuffer]",eL="[object DataView]",tL="[object Float32Array]",rL="[object Float64Array]",iL="[object Int8Array]",nL="[object Int16Array]",oL="[object Int32Array]",aL="[object Uint8Array]",lL="[object Uint8ClampedArray]",sL="[object Uint16Array]",uL="[object Uint32Array]",U={};U[tL]=U[rL]=U[iL]=U[nL]=U[oL]=U[aL]=U[lL]=U[sL]=U[uL]=!0;U[RT]=U[FT]=U[XT]=U[VT]=U[eL]=U[BT]=U[qT]=U[GT]=U[YT]=U[HT]=U[ZT]=U[QT]=U[WT]=U[KT]=U[JT]=!1;function cL(e){return sl(e)&&OT(e.length)&&!!U[Mi(e)]}var dL=cL;function pL(e){return function(t){return e(t)}}var gL=pL,zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=zp&&typeof module=="object"&&module&&!module.nodeType&&module,fL=bi&&bi.exports===zp,Ya=fL&&Lp.process,yL=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ya&&Ya.binding&&Ya.binding("util")}catch{}}(),ep=yL,tp=ep&&ep.isTypedArray,OX=tp?gL(tp):dL,mL=Object.prototype,NX=mL.hasOwnProperty;function bL(e,t){return function(r){return e(t(r))}}var hL=bL,DX=hL(Object.keys,Object),vL=Object.prototype,PX=vL.hasOwnProperty,wL=zt(Object,"create"),wi=wL;function kL(){this.__data__=wi?wi(null):{},this.size=0}var xL=kL;function IL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var CL=IL,AL="__lodash_hash_undefined__",ML=Object.prototype,jL=ML.hasOwnProperty;function SL(e){var t=this.__data__;if(wi){var r=t[e];return r===AL?void 0:r}return jL.call(t,e)?t[e]:void 0}var $L=SL,_L=Object.prototype,EL=_L.hasOwnProperty;function TL(e){var t=this.__data__;return wi?t[e]!==void 0:EL.call(t,e)}var LL=TL,OL="__lodash_hash_undefined__";function NL(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=wi&&t===void 0?OL:t,this}var DL=NL;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=xL;Ut.prototype.delete=CL;Ut.prototype.get=$L;Ut.prototype.has=LL;Ut.prototype.set=DL;var rp=Ut;function PL(){this.__data__=[],this.size=0}var zL=PL;function UL(e,t){for(var r=e.length;r--;)if(ET(e[r][0],t))return r;return-1}var ro=UL,RL=Array.prototype,FL=RL.splice;function VL(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():FL.call(t,r,1),--this.size,!0}var BL=VL;function qL(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var GL=qL;function YL(e){return ro(this.__data__,e)>-1}var HL=YL;function ZL(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 QL=ZL;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=zL;Rt.prototype.delete=BL;Rt.prototype.get=GL;Rt.prototype.has=HL;Rt.prototype.set=QL;var io=Rt,WL=zt(re,"Map"),ki=WL;function KL(){this.size=0,this.__data__={hash:new rp,map:new(ki||io),string:new rp}}var JL=KL;function XL(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var eO=XL;function tO(e,t){var r=e.__data__;return eO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=tO;function rO(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var iO=rO;function nO(e){return no(this,e).get(e)}var oO=nO;function aO(e){return no(this,e).has(e)}var lO=aO;function sO(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var uO=sO;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=JL;Ft.prototype.delete=iO;Ft.prototype.get=oO;Ft.prototype.has=lO;Ft.prototype.set=uO;var Up=Ft;function cO(){this.__data__=new io,this.size=0}var dO=cO;function pO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var gO=pO;function fO(e){return this.__data__.get(e)}var yO=fO;function mO(e){return this.__data__.has(e)}var bO=mO,hO=200;function vO(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!ki||i.length<hO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Up(i)}return r.set(e,t),this.size=r.size,this}var wO=vO;function ji(e){var t=this.__data__=new io(e);this.size=t.size}ji.prototype.clear=dO;ji.prototype.delete=gO;ji.prototype.get=yO;ji.prototype.has=bO;ji.prototype.set=wO;var kO=Object.prototype,zX=kO.propertyIsEnumerable,xO=zt(re,"DataView"),el=xO,IO=zt(re,"Promise"),tl=IO,CO=zt(re,"Set"),rl=CO,ip="[object Map]",AO="[object Object]",np="[object Promise]",op="[object Set]",ap="[object WeakMap]",lp="[object DataView]",MO=Pe(el),jO=Pe(ki),SO=Pe(tl),$O=Pe(rl),_O=Pe(Xa),_t=Mi;(el&&_t(new el(new ArrayBuffer(1)))!=lp||ki&&_t(new ki)!=ip||tl&&_t(tl.resolve())!=np||rl&&_t(new rl)!=op||Xa&&_t(new Xa)!=ap)&&(_t=function(e){var t=Mi(e),r=t==AO?e.constructor:void 0,i=r?Pe(r):"";if(i)switch(i){case MO:return lp;case jO:return ip;case SO:return np;case $O:return op;case _O:return ap}return t});var UX=re.Uint8Array,EO="__lodash_hash_undefined__";function TO(e){return this.__data__.set(e,EO),this}var LO=TO;function OO(e){return this.__data__.has(e)}var NO=OO;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Up;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=LO;il.prototype.has=NO;var sp=Lt?Lt.prototype:void 0,RX=sp?sp.valueOf:void 0,DO=Object.prototype,FX=DO.hasOwnProperty,PO=Object.prototype,VX=PO.hasOwnProperty,BX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function zO(e){return e==null?[]:Array.isArray(e)?e:[e]}var up=zO;function UO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function RO(e){return typeof e?.translate=="function"}function cp(e,t,r){return e&&UO(e)&&RO(e.i18n)?e.i18n.translate(t):r}var he="@imgly/plugin-ai-audio-generation-web",Oe="ly.img.ai.audio-generation.speech",Ne="ly.img.ai.audio-generation.sound";function FO(e){return{async initialize({cesdk:t}){if(t==null)return;T_(t,he,"0.2.15"),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=`${he}.sound.action.label`,i=`${he}.speech.action.label`;t.setTranslations({en:{[`panel.${Oe}`]:"AI Voice",[`panel.${Ne}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),VO(e);let n=vp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${he}/sound`,pluginId:he,label:cp(t,r,"Generate Sound"),meta:{panelId:Ne},execute:()=>{t.ui.isPanelOpen(Ne)?t.ui.closePanel(Ne):t.ui.openPanel(Ne)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${he}/speech`,pluginId:he,label:cp(t,i,"AI Voice"),meta:{panelId:Oe},execute:()=>{t.ui.isPanelOpen(Oe)?t.ui.closePanel(Oe):t.ui.openPanel(Oe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(up(s).map(f=>f({cesdk:t}))),u=await Promise.all(up(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 Zd("audio",l,{cesdk:t},e),m=await Zd("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ne,m.panel.builderRenderFunction),qd({cesdk:t,panelId:Ne})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Oe,g.panel.builderRenderFunction),qd({cesdk:t,panelId:Oe})):o()}}}function VO(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 BO=FO,qO=e=>({name:he,version:"0.2.15",...BO(e)}),Rp=qO;var GO="@imgly/plugin-ai-text-generation",YO=`
273
+ `,_E=$E;function EE(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 Up(2e3),await LE(t,e,r)):i(t,r)}async function LE(e,t,r){switch(t.kind){case"image":return TE(e,t,r);case"video":return OE(e,t,r);case"text":return NE(e,t,r);case"audio":return PE(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function TE(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 S_(s,r),l=await j_(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 OE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function NE(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 DE(a,r.abortSignal)}async function*DE(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 Up(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 PE(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:zE(220,i),duration:i,thumbnailUrl:void 0}}function zE(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 UE(i,44100)}function UE(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function Up(e){return new Promise(t=>{setTimeout(t,e)})}var RE=EE,FE="USER_CANCEL";function VE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=L_([...e.provider.output.middleware??[],...r?.middlewares??[],O_({enable:r?.debug}),RE({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===FE?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var BE=VE;async function qE(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=Mp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=ME(a),s=SE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=BE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await CE(a,c);U_(r.cesdk,"@imgly/plugin-ai-generation",_E);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return E_.get().register(u),u}var Ha=qE;function GE(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 _j(n,r,i);return r.engine.asset.addSource(a),a.id}var YE=GE;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 HE(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=QE({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=ZE({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=YE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(__)}),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 ZE({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&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"&&ep(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"&&ep(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function QE({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 ep(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var tp=HE,WE=typeof global=="object"&&global&&global.Object===Object&&global,Rp=WE,KE=typeof self=="object"&&self&&self.Object===Object&&self,JE=Rp||KE||Function("return this")(),ne=JE,XE=ne.Symbol,Nt=XE,Fp=Object.prototype,eL=Fp.hasOwnProperty,tL=Fp.toString,mi=Nt?Nt.toStringTag:void 0;function rL(e){var t=eL.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=tL.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var iL=rL,nL=Object.prototype,oL=nL.toString;function aL(e){return oL.call(e)}var lL=aL,sL="[object Null]",uL="[object Undefined]",rp=Nt?Nt.toStringTag:void 0;function cL(e){return e==null?e===void 0?uL:sL:rp&&rp in Object(e)?iL(e):lL(e)}var $i=cL;function dL(e){return e!=null&&typeof e=="object"}var pl=dL,UX=Array.isArray;function pL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vp=pL,gL="[object AsyncFunction]",fL="[object Function]",yL="[object GeneratorFunction]",mL="[object Proxy]";function bL(e){if(!Vp(e))return!1;var t=$i(e);return t==fL||t==yL||t==gL||t==mL}var hL=bL,vL=ne["__core-js_shared__"],Za=vL,ip=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wL(e){return!!ip&&ip in e}var kL=wL,xL=Function.prototype,IL=xL.toString;function CL(e){if(e!=null){try{return IL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=CL,AL=/[\\^$.*+?()[\]{}|]/g,ML=/^\[object .+?Constructor\]$/,jL=Function.prototype,SL=Object.prototype,$L=jL.toString,_L=SL.hasOwnProperty,EL=RegExp("^"+$L.call(_L).replace(AL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function LL(e){if(!Vp(e)||kL(e))return!1;var t=hL(e)?EL:ML;return t.test(Ue(e))}var TL=LL;function OL(e,t){return e?.[t]}var NL=OL;function DL(e,t){var r=NL(e,t);return TL(r)?r:void 0}var Rt=DL,PL=Rt(ne,"WeakMap"),rl=PL;function zL(e,t){return e===t||e!==e&&t!==t}var UL=zL,RL=9007199254740991;function FL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=RL}var VL=FL,RX=Object.prototype,BL="[object Arguments]";function qL(e){return pl(e)&&$i(e)==BL}var np=qL,Bp=Object.prototype,GL=Bp.hasOwnProperty,YL=Bp.propertyIsEnumerable,FX=np(function(){return arguments}())?np:function(e){return pl(e)&&GL.call(e,"callee")&&!YL.call(e,"callee")},qp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,op=qp&&typeof module=="object"&&module&&!module.nodeType&&module,HL=op&&op.exports===qp,ap=HL?ne.Buffer:void 0,VX=ap?ap.isBuffer:void 0,ZL="[object Arguments]",QL="[object Array]",WL="[object Boolean]",KL="[object Date]",JL="[object Error]",XL="[object Function]",eT="[object Map]",tT="[object Number]",rT="[object Object]",iT="[object RegExp]",nT="[object Set]",oT="[object String]",aT="[object WeakMap]",lT="[object ArrayBuffer]",sT="[object DataView]",uT="[object Float32Array]",cT="[object Float64Array]",dT="[object Int8Array]",pT="[object Int16Array]",gT="[object Int32Array]",fT="[object Uint8Array]",yT="[object Uint8ClampedArray]",mT="[object Uint16Array]",bT="[object Uint32Array]",U={};U[uT]=U[cT]=U[dT]=U[pT]=U[gT]=U[fT]=U[yT]=U[mT]=U[bT]=!0;U[ZL]=U[QL]=U[lT]=U[WL]=U[sT]=U[KL]=U[JL]=U[XL]=U[eT]=U[tT]=U[rT]=U[iT]=U[nT]=U[oT]=U[aT]=!1;function hT(e){return pl(e)&&VL(e.length)&&!!U[$i(e)]}var vT=hT;function wT(e){return function(t){return e(t)}}var kT=wT,Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,xT=wi&&wi.exports===Gp,Qa=xT&&Rp.process,IT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),lp=IT,sp=lp&&lp.isTypedArray,BX=sp?kT(sp):vT,CT=Object.prototype,qX=CT.hasOwnProperty;function AT(e,t){return function(r){return e(t(r))}}var MT=AT,GX=MT(Object.keys,Object),jT=Object.prototype,YX=jT.hasOwnProperty,ST=Rt(Object,"create"),Ii=ST;function $T(){this.__data__=Ii?Ii(null):{},this.size=0}var _T=$T;function ET(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var LT=ET,TT="__lodash_hash_undefined__",OT=Object.prototype,NT=OT.hasOwnProperty;function DT(e){var t=this.__data__;if(Ii){var r=t[e];return r===TT?void 0:r}return NT.call(t,e)?t[e]:void 0}var PT=DT,zT=Object.prototype,UT=zT.hasOwnProperty;function RT(e){var t=this.__data__;return Ii?t[e]!==void 0:UT.call(t,e)}var FT=RT,VT="__lodash_hash_undefined__";function BT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?VT:t,this}var qT=BT;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=_T;Ft.prototype.delete=LT;Ft.prototype.get=PT;Ft.prototype.has=FT;Ft.prototype.set=qT;var up=Ft;function GT(){this.__data__=[],this.size=0}var YT=GT;function HT(e,t){for(var r=e.length;r--;)if(UL(e[r][0],t))return r;return-1}var oo=HT,ZT=Array.prototype,QT=ZT.splice;function WT(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():QT.call(t,r,1),--this.size,!0}var KT=WT;function JT(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var XT=JT;function eO(e){return oo(this.__data__,e)>-1}var tO=eO;function rO(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 iO=rO;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=YT;Vt.prototype.delete=KT;Vt.prototype.get=XT;Vt.prototype.has=tO;Vt.prototype.set=iO;var ao=Vt,nO=Rt(ne,"Map"),Ci=nO;function oO(){this.size=0,this.__data__={hash:new up,map:new(Ci||ao),string:new up}}var aO=oO;function lO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var sO=lO;function uO(e,t){var r=e.__data__;return sO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=uO;function cO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var dO=cO;function pO(e){return lo(this,e).get(e)}var gO=pO;function fO(e){return lo(this,e).has(e)}var yO=fO;function mO(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var bO=mO;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=aO;Bt.prototype.delete=dO;Bt.prototype.get=gO;Bt.prototype.has=yO;Bt.prototype.set=bO;var Yp=Bt;function hO(){this.__data__=new ao,this.size=0}var vO=hO;function wO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var kO=wO;function xO(e){return this.__data__.get(e)}var IO=xO;function CO(e){return this.__data__.has(e)}var AO=CO,MO=200;function jO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<MO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var SO=jO;function _i(e){var t=this.__data__=new ao(e);this.size=t.size}_i.prototype.clear=vO;_i.prototype.delete=kO;_i.prototype.get=IO;_i.prototype.has=AO;_i.prototype.set=SO;var $O=Object.prototype,HX=$O.propertyIsEnumerable,_O=Rt(ne,"DataView"),il=_O,EO=Rt(ne,"Promise"),nl=EO,LO=Rt(ne,"Set"),ol=LO,cp="[object Map]",TO="[object Object]",dp="[object Promise]",pp="[object Set]",gp="[object WeakMap]",fp="[object DataView]",OO=Ue(il),NO=Ue(Ci),DO=Ue(nl),PO=Ue(ol),zO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=fp||Ci&&Lt(new Ci)!=cp||nl&&Lt(nl.resolve())!=dp||ol&&Lt(new ol)!=pp||rl&&Lt(new rl)!=gp)&&(Lt=function(e){var t=$i(e),r=t==TO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case OO:return fp;case NO:return cp;case DO:return dp;case PO:return pp;case zO:return gp}return t});var ZX=ne.Uint8Array,UO="__lodash_hash_undefined__";function RO(e){return this.__data__.set(e,UO),this}var FO=RO;function VO(e){return this.__data__.has(e)}var BO=VO;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=FO;al.prototype.has=BO;var yp=Nt?Nt.prototype:void 0,QX=yp?yp.valueOf:void 0,qO=Object.prototype,WX=qO.hasOwnProperty,GO=Object.prototype,KX=GO.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");function YO(e){return e==null?[]:Array.isArray(e)?e:[e]}var mp=YO;function HO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ZO(e){return typeof e?.translate=="function"}function bp(e,t,r){return e&&HO(e)&&ZO(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 QO(e){return{async initialize({cesdk:t}){if(t==null)return;R_(t,we,"0.2.16"),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"}}),WO(e);let n=Mp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:bp(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:bp(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(mp(s).map(f=>f({cesdk:t}))),u=await Promise.all(mp(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 tp("audio",l,{cesdk:t},e),m=await tp("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,m.panel.builderRenderFunction),Kd({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),Kd({cesdk:t,panelId:De})):o()}}}function WO(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 KO=QO,JO=e=>({name:we,version:"0.2.16",...KO(e)}),Hp=JO;var XO="@imgly/plugin-ai-text-generation",eN=`
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
- `,HO=YO,ZO=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;qt(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.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=()=>{qt(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 qt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),qt(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 qt(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]=qt(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]=qt(n,t,a)}return e}var QO=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")}},WO=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)}},jg=WO,KO=typeof global=="object"&&global&&global.Object===Object&&global,Sg=KO,JO=typeof self=="object"&&self&&self.Object===Object&&self,XO=Sg||JO||Function("return this")(),ie=XO,eN=ie.Symbol,Gt=eN,$g=Object.prototype,tN=$g.hasOwnProperty,rN=$g.toString,Si=Gt?Gt.toStringTag:void 0;function iN(e){var t=tN.call(e,Si),r=e[Si];try{e[Si]=void 0;var i=!0}catch{}var n=rN.call(e);return i&&(t?e[Si]=r:delete e[Si]),n}var nN=iN,oN=Object.prototype,aN=oN.toString;function lN(e){return aN.call(e)}var sN=lN,uN="[object Null]",cN="[object Undefined]",Fp=Gt?Gt.toStringTag:void 0;function dN(e){return e==null?e===void 0?cN:uN:Fp&&Fp in Object(e)?nN(e):sN(e)}var Fi=dN;function pN(e){return e!=null&&typeof e=="object"}var $l=pN,QX=Array.isArray;function gN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _g=gN,fN="[object AsyncFunction]",yN="[object Function]",mN="[object GeneratorFunction]",bN="[object Proxy]";function hN(e){if(!_g(e))return!1;var t=Fi(e);return t==yN||t==mN||t==fN||t==bN}var vN=hN,wN=ie["__core-js_shared__"],ul=wN,Vp=function(){var e=/[^.]+$/.exec(ul&&ul.keys&&ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function kN(e){return!!Vp&&Vp in e}var xN=kN,IN=Function.prototype,CN=IN.toString;function AN(e){if(e!=null){try{return CN.call(e)}catch{}try{return e+""}catch{}}return""}var Re=AN,MN=/[\\^$.*+?()[\]{}|]/g,jN=/^\[object .+?Constructor\]$/,SN=Function.prototype,$N=Object.prototype,_N=SN.toString,EN=$N.hasOwnProperty,TN=RegExp("^"+_N.call(EN).replace(MN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function LN(e){if(!_g(e)||xN(e))return!1;var t=vN(e)?TN:jN;return t.test(Re(e))}var ON=LN;function NN(e,t){return e?.[t]}var DN=NN;function PN(e,t){var r=DN(e,t);return ON(r)?r:void 0}var Ht=PN,zN=Ht(ie,"WeakMap"),bl=zN;function UN(e,t){return e===t||e!==e&&t!==t}var RN=UN,FN=9007199254740991;function VN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=FN}var BN=VN,WX=Object.prototype,qN="[object Arguments]";function GN(e){return $l(e)&&Fi(e)==qN}var Bp=GN,Eg=Object.prototype,YN=Eg.hasOwnProperty,HN=Eg.propertyIsEnumerable,KX=Bp(function(){return arguments}())?Bp:function(e){return $l(e)&&YN.call(e,"callee")&&!HN.call(e,"callee")},Tg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qp=Tg&&typeof module=="object"&&module&&!module.nodeType&&module,ZN=qp&&qp.exports===Tg,Gp=ZN?ie.Buffer:void 0,JX=Gp?Gp.isBuffer:void 0,QN="[object Arguments]",WN="[object Array]",KN="[object Boolean]",JN="[object Date]",XN="[object Error]",eD="[object Function]",tD="[object Map]",rD="[object Number]",iD="[object Object]",nD="[object RegExp]",oD="[object Set]",aD="[object String]",lD="[object WeakMap]",sD="[object ArrayBuffer]",uD="[object DataView]",cD="[object Float32Array]",dD="[object Float64Array]",pD="[object Int8Array]",gD="[object Int16Array]",fD="[object Int32Array]",yD="[object Uint8Array]",mD="[object Uint8ClampedArray]",bD="[object Uint16Array]",hD="[object Uint32Array]",R={};R[cD]=R[dD]=R[pD]=R[gD]=R[fD]=R[yD]=R[mD]=R[bD]=R[hD]=!0;R[QN]=R[WN]=R[sD]=R[KN]=R[uD]=R[JN]=R[XN]=R[eD]=R[tD]=R[rD]=R[iD]=R[nD]=R[oD]=R[aD]=R[lD]=!1;function vD(e){return $l(e)&&BN(e.length)&&!!R[Fi(e)]}var wD=vD;function kD(e){return function(t){return e(t)}}var xD=kD,Lg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ni=Lg&&typeof module=="object"&&module&&!module.nodeType&&module,ID=Ni&&Ni.exports===Lg,cl=ID&&Sg.process,CD=function(){try{var e=Ni&&Ni.require&&Ni.require("util").types;return e||cl&&cl.binding&&cl.binding("util")}catch{}}(),Yp=CD,Hp=Yp&&Yp.isTypedArray,XX=Hp?xD(Hp):wD,AD=Object.prototype,eee=AD.hasOwnProperty;function MD(e,t){return function(r){return e(t(r))}}var jD=MD,tee=jD(Object.keys,Object),SD=Object.prototype,ree=SD.hasOwnProperty,$D=Ht(Object,"create"),Pi=$D;function _D(){this.__data__=Pi?Pi(null):{},this.size=0}var ED=_D;function TD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var LD=TD,OD="__lodash_hash_undefined__",ND=Object.prototype,DD=ND.hasOwnProperty;function PD(e){var t=this.__data__;if(Pi){var r=t[e];return r===OD?void 0:r}return DD.call(t,e)?t[e]:void 0}var zD=PD,UD=Object.prototype,RD=UD.hasOwnProperty;function FD(e){var t=this.__data__;return Pi?t[e]!==void 0:RD.call(t,e)}var VD=FD,BD="__lodash_hash_undefined__";function qD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pi&&t===void 0?BD:t,this}var GD=qD;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=ED;Zt.prototype.delete=LD;Zt.prototype.get=zD;Zt.prototype.has=VD;Zt.prototype.set=GD;var Zp=Zt;function YD(){this.__data__=[],this.size=0}var HD=YD;function ZD(e,t){for(var r=e.length;r--;)if(RN(e[r][0],t))return r;return-1}var oo=ZD,QD=Array.prototype,WD=QD.splice;function KD(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():WD.call(t,r,1),--this.size,!0}var JD=KD;function XD(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var eP=XD;function tP(e){return oo(this.__data__,e)>-1}var rP=tP;function iP(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 nP=iP;function Qt(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])}}Qt.prototype.clear=HD;Qt.prototype.delete=JD;Qt.prototype.get=eP;Qt.prototype.has=rP;Qt.prototype.set=nP;var ao=Qt,oP=Ht(ie,"Map"),zi=oP;function aP(){this.size=0,this.__data__={hash:new Zp,map:new(zi||ao),string:new Zp}}var lP=aP;function sP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var uP=sP;function cP(e,t){var r=e.__data__;return uP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=cP;function dP(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var pP=dP;function gP(e){return lo(this,e).get(e)}var fP=gP;function yP(e){return lo(this,e).has(e)}var mP=yP;function bP(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var hP=bP;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=lP;Wt.prototype.delete=pP;Wt.prototype.get=fP;Wt.prototype.has=mP;Wt.prototype.set=hP;var Og=Wt;function vP(){this.__data__=new ao,this.size=0}var wP=vP;function kP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xP=kP;function IP(e){return this.__data__.get(e)}var CP=IP;function AP(e){return this.__data__.has(e)}var MP=AP,jP=200;function SP(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!zi||i.length<jP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Og(i)}return r.set(e,t),this.size=r.size,this}var $P=SP;function Vi(e){var t=this.__data__=new ao(e);this.size=t.size}Vi.prototype.clear=wP;Vi.prototype.delete=xP;Vi.prototype.get=CP;Vi.prototype.has=MP;Vi.prototype.set=$P;var _P=Object.prototype,iee=_P.propertyIsEnumerable,EP=Ht(ie,"DataView"),hl=EP,TP=Ht(ie,"Promise"),vl=TP,LP=Ht(ie,"Set"),wl=LP,Qp="[object Map]",OP="[object Object]",Wp="[object Promise]",Kp="[object Set]",Jp="[object WeakMap]",Xp="[object DataView]",NP=Re(hl),DP=Re(zi),PP=Re(vl),zP=Re(wl),UP=Re(bl),Vt=Fi;(hl&&Vt(new hl(new ArrayBuffer(1)))!=Xp||zi&&Vt(new zi)!=Qp||vl&&Vt(vl.resolve())!=Wp||wl&&Vt(new wl)!=Kp||bl&&Vt(new bl)!=Jp)&&(Vt=function(e){var t=Fi(e),r=t==OP?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case NP:return Xp;case DP:return Qp;case PP:return Wp;case zP:return Kp;case UP:return Jp}return t});var nee=ie.Uint8Array,RP="__lodash_hash_undefined__";function FP(e){return this.__data__.set(e,RP),this}var VP=FP;function BP(e){return this.__data__.has(e)}var qP=BP;function kl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Og;++t<r;)this.add(e[t])}kl.prototype.add=kl.prototype.push=VP;kl.prototype.has=qP;var eg=Gt?Gt.prototype:void 0,oee=eg?eg.valueOf:void 0,GP=Object.prototype,aee=GP.hasOwnProperty,YP=Object.prototype,lee=YP.hasOwnProperty,see=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),uee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),cee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function HP(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Ng(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 xl(e,t){let r=await Ng(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 ZP(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 Ng(i,t)}function QP(e){return e!==void 0}var so=QP;function Bi(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 _l=class Dg{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 Dg),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))}},Pg=class zg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new zg),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 WP(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 KP({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 JP=KP,dl="ly.img.ai.temp";async function XP(e,t){return e.engine.asset.findAllSources().includes(dl)||e.engine.asset.addLocalSource(dl),e.engine.asset.apply(dl,t)}function ez(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 Ug(){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 tz(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 rz(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 El(e){return e instanceof Error&&e.name==="AbortError"}function iz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function nz(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
+ `,tN=eN,rN=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.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 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")}},nN=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)}},Og=nN,oN=typeof global=="object"&&global&&global.Object===Object&&global,Ng=oN,aN=typeof self=="object"&&self&&self.Object===Object&&self,lN=Ng||aN||Function("return this")(),oe=lN,sN=oe.Symbol,Ht=sN,Dg=Object.prototype,uN=Dg.hasOwnProperty,cN=Dg.toString,Ei=Ht?Ht.toStringTag:void 0;function dN(e){var t=uN.call(e,Ei),r=e[Ei];try{e[Ei]=void 0;var i=!0}catch{}var n=cN.call(e);return i&&(t?e[Ei]=r:delete e[Ei]),n}var pN=dN,gN=Object.prototype,fN=gN.toString;function yN(e){return fN.call(e)}var mN=yN,bN="[object Null]",hN="[object Undefined]",Zp=Ht?Ht.toStringTag:void 0;function vN(e){return e==null?e===void 0?hN:bN:Zp&&Zp in Object(e)?pN(e):mN(e)}var qi=vN;function wN(e){return e!=null&&typeof e=="object"}var Tl=wN,nee=Array.isArray;function kN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pg=kN,xN="[object AsyncFunction]",IN="[object Function]",CN="[object GeneratorFunction]",AN="[object Proxy]";function MN(e){if(!Pg(e))return!1;var t=qi(e);return t==IN||t==CN||t==xN||t==AN}var jN=MN,SN=oe["__core-js_shared__"],gl=SN,Qp=function(){var e=/[^.]+$/.exec(gl&&gl.keys&&gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $N(e){return!!Qp&&Qp in e}var _N=$N,EN=Function.prototype,LN=EN.toString;function TN(e){if(e!=null){try{return LN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=TN,ON=/[\\^$.*+?()[\]{}|]/g,NN=/^\[object .+?Constructor\]$/,DN=Function.prototype,PN=Object.prototype,zN=DN.toString,UN=PN.hasOwnProperty,RN=RegExp("^"+zN.call(UN).replace(ON,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function FN(e){if(!Pg(e)||_N(e))return!1;var t=jN(e)?RN:NN;return t.test(Ve(e))}var VN=FN;function BN(e,t){return e?.[t]}var qN=BN;function GN(e,t){var r=qN(e,t);return VN(r)?r:void 0}var Qt=GN,YN=Qt(oe,"WeakMap"),kl=YN;function HN(e,t){return e===t||e!==e&&t!==t}var ZN=HN,QN=9007199254740991;function WN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=QN}var KN=WN,oee=Object.prototype,JN="[object Arguments]";function XN(e){return Tl(e)&&qi(e)==JN}var Wp=XN,zg=Object.prototype,eD=zg.hasOwnProperty,tD=zg.propertyIsEnumerable,aee=Wp(function(){return arguments}())?Wp:function(e){return Tl(e)&&eD.call(e,"callee")&&!tD.call(e,"callee")},Ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kp=Ug&&typeof module=="object"&&module&&!module.nodeType&&module,rD=Kp&&Kp.exports===Ug,Jp=rD?oe.Buffer:void 0,lee=Jp?Jp.isBuffer:void 0,iD="[object Arguments]",nD="[object Array]",oD="[object Boolean]",aD="[object Date]",lD="[object Error]",sD="[object Function]",uD="[object Map]",cD="[object Number]",dD="[object Object]",pD="[object RegExp]",gD="[object Set]",fD="[object String]",yD="[object WeakMap]",mD="[object ArrayBuffer]",bD="[object DataView]",hD="[object Float32Array]",vD="[object Float64Array]",wD="[object Int8Array]",kD="[object Int16Array]",xD="[object Int32Array]",ID="[object Uint8Array]",CD="[object Uint8ClampedArray]",AD="[object Uint16Array]",MD="[object Uint32Array]",R={};R[hD]=R[vD]=R[wD]=R[kD]=R[xD]=R[ID]=R[CD]=R[AD]=R[MD]=!0;R[iD]=R[nD]=R[mD]=R[oD]=R[bD]=R[aD]=R[lD]=R[sD]=R[uD]=R[cD]=R[dD]=R[pD]=R[gD]=R[fD]=R[yD]=!1;function jD(e){return Tl(e)&&KN(e.length)&&!!R[qi(e)]}var SD=jD;function $D(e){return function(t){return e(t)}}var _D=$D,Rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=Rg&&typeof module=="object"&&module&&!module.nodeType&&module,ED=zi&&zi.exports===Rg,fl=ED&&Ng.process,LD=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||fl&&fl.binding&&fl.binding("util")}catch{}}(),Xp=LD,eg=Xp&&Xp.isTypedArray,see=eg?_D(eg):SD,TD=Object.prototype,uee=TD.hasOwnProperty;function OD(e,t){return function(r){return e(t(r))}}var ND=OD,cee=ND(Object.keys,Object),DD=Object.prototype,dee=DD.hasOwnProperty,PD=Qt(Object,"create"),Ri=PD;function zD(){this.__data__=Ri?Ri(null):{},this.size=0}var UD=zD;function RD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var FD=RD,VD="__lodash_hash_undefined__",BD=Object.prototype,qD=BD.hasOwnProperty;function GD(e){var t=this.__data__;if(Ri){var r=t[e];return r===VD?void 0:r}return qD.call(t,e)?t[e]:void 0}var YD=GD,HD=Object.prototype,ZD=HD.hasOwnProperty;function QD(e){var t=this.__data__;return Ri?t[e]!==void 0:ZD.call(t,e)}var WD=QD,KD="__lodash_hash_undefined__";function JD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?KD:t,this}var XD=JD;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=UD;Wt.prototype.delete=FD;Wt.prototype.get=YD;Wt.prototype.has=WD;Wt.prototype.set=XD;var tg=Wt;function eP(){this.__data__=[],this.size=0}var tP=eP;function rP(e,t){for(var r=e.length;r--;)if(ZN(e[r][0],t))return r;return-1}var so=rP,iP=Array.prototype,nP=iP.splice;function oP(e){var t=this.__data__,r=so(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():nP.call(t,r,1),--this.size,!0}var aP=oP;function lP(e){var t=this.__data__,r=so(t,e);return r<0?void 0:t[r][1]}var sP=lP;function uP(e){return so(this.__data__,e)>-1}var cP=uP;function dP(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 pP=dP;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=tP;Kt.prototype.delete=aP;Kt.prototype.get=sP;Kt.prototype.has=cP;Kt.prototype.set=pP;var uo=Kt,gP=Qt(oe,"Map"),Fi=gP;function fP(){this.size=0,this.__data__={hash:new tg,map:new(Fi||uo),string:new tg}}var yP=fP;function mP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var bP=mP;function hP(e,t){var r=e.__data__;return bP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var co=hP;function vP(e){var t=co(this,e).delete(e);return this.size-=t?1:0,t}var wP=vP;function kP(e){return co(this,e).get(e)}var xP=kP;function IP(e){return co(this,e).has(e)}var CP=IP;function AP(e,t){var r=co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var MP=AP;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=yP;Jt.prototype.delete=wP;Jt.prototype.get=xP;Jt.prototype.has=CP;Jt.prototype.set=MP;var Fg=Jt;function jP(){this.__data__=new uo,this.size=0}var SP=jP;function $P(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var _P=$P;function EP(e){return this.__data__.get(e)}var LP=EP;function TP(e){return this.__data__.has(e)}var OP=TP,NP=200;function DP(e,t){var r=this.__data__;if(r instanceof uo){var i=r.__data__;if(!Fi||i.length<NP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fg(i)}return r.set(e,t),this.size=r.size,this}var PP=DP;function Gi(e){var t=this.__data__=new uo(e);this.size=t.size}Gi.prototype.clear=SP;Gi.prototype.delete=_P;Gi.prototype.get=LP;Gi.prototype.has=OP;Gi.prototype.set=PP;var zP=Object.prototype,pee=zP.propertyIsEnumerable,UP=Qt(oe,"DataView"),xl=UP,RP=Qt(oe,"Promise"),Il=RP,FP=Qt(oe,"Set"),Cl=FP,rg="[object Map]",VP="[object Object]",ig="[object Promise]",ng="[object Set]",og="[object WeakMap]",ag="[object DataView]",BP=Ve(xl),qP=Ve(Fi),GP=Ve(Il),YP=Ve(Cl),HP=Ve(kl),qt=qi;(xl&&qt(new xl(new ArrayBuffer(1)))!=ag||Fi&&qt(new Fi)!=rg||Il&&qt(Il.resolve())!=ig||Cl&&qt(new Cl)!=ng||kl&&qt(new kl)!=og)&&(qt=function(e){var t=qi(e),r=t==VP?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case BP:return ag;case qP:return rg;case GP:return ig;case YP:return ng;case HP:return og}return t});var gee=oe.Uint8Array,ZP="__lodash_hash_undefined__";function QP(e){return this.__data__.set(e,ZP),this}var WP=QP;function KP(e){return this.__data__.has(e)}var JP=KP;function Al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Fg;++t<r;)this.add(e[t])}Al.prototype.add=Al.prototype.push=WP;Al.prototype.has=JP;var lg=Ht?Ht.prototype:void 0,fee=lg?lg.valueOf:void 0,XP=Object.prototype,yee=XP.hasOwnProperty,ez=Object.prototype,mee=ez.hasOwnProperty,bee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),hee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),vee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function tz(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Vg(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 Ml(e,t){let r=await Vg(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 rz(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 Vg(i,t)}function iz(e){return e!==void 0}var po=iz;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 Bg{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 Bg),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))}},qg=class Gg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Gg),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 nz(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 oz({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=oz,yl="ly.img.ai.temp";async function lz(e,t){return e.engine.asset.findAllSources().includes(yl)||e.engine.asset.addLocalSource(yl),e.engine.asset.apply(yl,t)}function sz(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 Yg(){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 uz(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 dz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function pz(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 oz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),az(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:ez(e)}))}function az(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 tg=oz,lz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Tl=lz;function sz(e,t,r){switch(t){case"image":return uz(e,r[t]);case"video":return cz(e,r[t]);case"sticker":return dz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function uz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Tl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function cz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Tl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function dz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Tl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var pz=sz;async function gz(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 yz(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 mz(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 bz(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 yz(e,t,r){let i=t.width,n=t.height,a=await tz(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 mz(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 bz(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 Rg=gz;function hz(e){switch(e.userFlow){case"placeholder":return wz(e);case"generation-only":return vz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function vz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(xe(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(xe(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(xe(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ug(),c=await Rg(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 wz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(xe(t,r))return{status:"aborted"};let s=Ug(),c=pz(s,a,o);if(i=await XP(t,c),xe(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(xe(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 Rg(s,a,o,l.output);if(xe(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),xe(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)&&(El(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 xe(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var kz=hz;function Ll(e){return`${e}.generating`}function xz(e){return`${e}.abort`}function Iz(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(xz(d),()=>{}),m=c.global(Ll(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await kz({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(y.status==="aborted")return;if(y.status==="error"){tg(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Cz(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(El(y))return;tg(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 Cz(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 Fg=Iz;async function Az({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(Ll(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Fg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Mz=Az;function Vg(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 Li(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=Vg(e,t.$ref),n={...Li(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Li(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Li(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Li(e,t[n],r));return i}return t}function jz(e){return Li(e,{...e})}function Sz(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 $z(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return _z(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function _z(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=Ez(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Ez(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 Bg=$z;function Ie(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 qg(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 Gg(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?Tz(e,c,r,i,n,a,o,s):Yg(e,c,r,i,n,a,o,s);case"boolean":return Hg(e,c,r,i,n,a,o,s);case"number":case"integer":return Zg(e,c,r,i,n,a,o,s);case"object":return Il(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 Lz(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Il(e,t,r,i,n,a,o,s){let c=Bg(t.schema??{},i).reduce((l,u)=>{let d=Gg(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 Yg(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=Ie(t,r,o),m=Ie(t,r,o,"placeholder"),f=Bi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=qi(d,h,f,t.schema.default,""),v=l(p,b),k=Oz(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function Tz(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=Ie(t,r,o),{labels:m,icons:f}=qg(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Ie(t,r,o,I),icon:f[I]})),b=Bi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=qi(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Hg(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=Ie(t,r,o),m=Bi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!qi(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Zg(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=Ie(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Bi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=qi(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function Lz(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=Ie(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=qg(t.schema),x=Bi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Yg,boolean:Hg,integer:Zg,object:Il},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Ie(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Il(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=qi(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function Oz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Nz=Gg,Dz={"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 rg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Pz(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),m=d[g]||rg(g);n[a(u,g)]=m})};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,m=u[g]||rg(g);n[a(l.id,g)]=m}})}});let c={...Dz,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function zz({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=jz(r.document),c=Vg(s,r.inputReference);if(!Sz(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Bg(l,r);return Pz(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=Nz(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Fg(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var Uz=zz;async function Rz(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Mz(e,t);case"schema":return Uz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Fz=Rz;function Vz(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 ZO(o,r)),o}return i}var Bz=Vz;function qz(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 Gz=qz,pl="@imgly/plugin-ai-generation",Yz=`
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 gz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),fz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:sz(e)}))}function fz(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 sg=gz,yz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Dl=yz;function mz(e,t,r){switch(t){case"image":return bz(e,r[t]);case"video":return hz(e,r[t]);case"sticker":return vz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function bz(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 hz(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 vz(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 wz=mz;async function kz(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 xz(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 Iz(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 Cz(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 Az(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function xz(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 Iz(e,t,r){let i=t.width,n=t.height,a=await uz(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 Cz(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 Az(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 Hg=kz;function Mz(e){switch(e.userFlow){case"placeholder":return Sz(e);case"generation-only":return jz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function jz(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=Yg(),c=await Hg(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 Sz(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=Yg(),c=wz(s,a,o);if(i=await lz(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 Hg(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 $z=Mz;function Pl(e){return`${e}.generating`}function _z(e){return`${e}.abort`}function Ez(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(_z(d),()=>{}),m=c.global(Pl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=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:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await $z({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(y.status==="aborted")return;if(y.status==="error"){sg(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Lz(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Nl(y))return;sg(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 Lz(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 Zg=Ez;async function Tz({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 Zg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Oz=Tz;function Qg(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=Qg(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 Nz(e){return Di(e,{...e})}function Dz(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 Pz(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return zz(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function zz(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=Uz(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Uz(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 Wg=Pz;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 Kg(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 Jg(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?Rz(e,c,r,i,n,a,o,s):Xg(e,c,r,i,n,a,o,s);case"boolean":return e1(e,c,r,i,n,a,o,s);case"number":case"integer":return t1(e,c,r,i,n,a,o,s);case"object":return jl(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 Fz(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function jl(e,t,r,i,n,a,o,s){let c=Wg(t.schema??{},i).reduce((l,u)=>{let d=Jg(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 Xg(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),m=Ae(t,r,o,"placeholder"),f=Yi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Hi(d,h,f,t.schema.default,""),v=l(p,b),k=Vz(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function Rz(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:m,icons:f}=Kg(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),b=Yi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hi(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function e1(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),m=Yi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hi(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function t1(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),m=t.schema.minimum,f=t.schema.maximum,h=Yi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Hi(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function Fz(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),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Kg(t.schema),x=Yi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Xg,boolean:e1,integer:t1,object:jl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Ae(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>jl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Hi(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function Vz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Bz=Jg,qz={"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 ug(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Gz(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),m=d[g]||ug(g);n[a(u,g)]=m})};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,m=u[g]||ug(g);n[a(l.id,g)]=m}})}});let c={...qz,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}async function Yz({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=Nz(r.document),c=Qg(s,r.inputReference);if(!Dz(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Wg(l,r);return Gz(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=Bz(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Zg(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var Hz=Yz;async function Zz(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Oz(e,t);case"schema":return Hz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Qz=Zz;function Wz(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 rN(o,r)),o}return i}var Kz=Wz;function Jz(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 Xz=Jz,ml="@imgly/plugin-ai-generation",eU=`
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="${pl}/image"
371
+ id="${ml}/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="${pl}/video"
383
+ id="${ml}/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="${pl}/audio"
394
+ id="${ml}/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
- `,Hz=Yz;function Zz(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 Qg(2e3),await Qz(t,e,r)):i(t,r)}async function Qz(e,t,r){switch(t.kind){case"image":return Wz(e,t,r);case"video":return Kz(e,t,r);case"text":return Jz(e,t,r);case"audio":return eU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Wz(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 ZP(s,r),l=await xl(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 Kz(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Jz(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=$i(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$i(n,o)}else"customPrompt"in e?a=$i(n,"custom"):a=$i(n,"improved");else a=$i(n,"generated");return Xz(a,r.abortSignal)}async function*Xz(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 Qg(100)}return{kind:"text",text:e}}function $i(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 eU(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:tU(220,i),duration:i,thumbnailUrl:void 0}}function tU(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 rU(i,44100)}function rU(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function Qg(e){return new Promise(t=>{setTimeout(t,e)})}var iU=Zz,Wg="USER_CANCEL";function nU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=WP([...e.provider.output.middleware??[],...r?.middlewares??[],JP({enable:r?.debug}),iU({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}:rz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return El(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Wg?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var oU=nU;async function aU(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=_l.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=Bz(a),s=Gz(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=oU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Fz(a,c);iz(r.cesdk,"@imgly/plugin-ai-generation",Hz);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Pg.get().register(u),u}var gl=aU;function lU(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 QO(n,r,i);return r.engine.asset.addSource(a),a.id}var sU=lU;function Oi(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 uU(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"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=>gl(e,u,r,i)));o.push(...l),a=dU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>gl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>gl(e,d,r,i)));o.push(...u),a=cU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=sU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(so)}),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 cU({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Oi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Oi(e,"fromText.label"),icon:f.value!=="fromText"&&ig(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:Oi(e,"fromImage.label"),icon:f.value!=="fromImage"&&ig(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Oi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function dU({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:Oi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function ig(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ll(r.id),!1).value)}var pU=uU,uo="ly.img.ai.editMode",Kg="ly.img.ai.metadata";async function gU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({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 jg(n,Kg),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 m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var fU=gU;function yU(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 mU=yU;function bU(e){return`ly.img.ai.${e}.canvasMenu`}var hU=bU;function vU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=hU(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 wU=vU;function kU(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 xU(e,t);case"image":return IU(e,t);case"video":return CU(e,t);case"audio":return AU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function xU(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 IU(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 xl(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),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};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 k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await MU(r,k,x),I=await xl(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();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);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function CU(e,t){throw new Error("Function not implemented.")}async function AU(e,t){throw new Error("Function not implemented.")}async function MU(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${HP(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var jU=kU;function SU(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 $U=SU,_U=class Jg{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Jg),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ue=_U;function EU(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(so)),c=new jg(e.cesdk.engine,Kg),l=e.lock??!0?$U({engine:e.cesdk.engine,editModeToLockTo:uo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ue.get().register(u,{onCancelGeneration:()=>{o.abort(Wg),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 jU(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(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Ue.get().register(m,{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 ng=EU;function TU(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===uo)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=wU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=LU(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=Pg.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(so);return j=mU(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&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:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:ng({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&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:()=>{h.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:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:ng({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function LU(e){return e.map(t=>t==="ly.img.separator"?t:_l.get().getBy({id:t,type:"quick"})[0]).filter(so)}var OU=TU;async function NU(e){let t=await OU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await fU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===uo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ue.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ue.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ue.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ue.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ue.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var DU=NU,PU=typeof global=="object"&&global&&global.Object===Object&&global,Xg=PU,zU=typeof self=="object"&&self&&self.Object===Object&&self,UU=Xg||zU||Function("return this")(),ne=UU,RU=ne.Symbol,Yt=RU,e1=Object.prototype,FU=e1.hasOwnProperty,VU=e1.toString,_i=Yt?Yt.toStringTag:void 0;function BU(e){var t=FU.call(e,_i),r=e[_i];try{e[_i]=void 0;var i=!0}catch{}var n=VU.call(e);return i&&(t?e[_i]=r:delete e[_i]),n}var qU=BU,GU=Object.prototype,YU=GU.toString;function HU(e){return YU.call(e)}var ZU=HU,QU="[object Null]",WU="[object Undefined]",og=Yt?Yt.toStringTag:void 0;function KU(e){return e==null?e===void 0?WU:QU:og&&og in Object(e)?qU(e):ZU(e)}var Gi=KU;function JU(e){return e!=null&&typeof e=="object"}var Ol=JU,dee=Array.isArray;function XU(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var t1=XU,eR="[object AsyncFunction]",tR="[object Function]",rR="[object GeneratorFunction]",iR="[object Proxy]";function nR(e){if(!t1(e))return!1;var t=Gi(e);return t==tR||t==rR||t==eR||t==iR}var oR=nR,aR=ne["__core-js_shared__"],fl=aR,ag=function(){var e=/[^.]+$/.exec(fl&&fl.keys&&fl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function lR(e){return!!ag&&ag in e}var sR=lR,uR=Function.prototype,cR=uR.toString;function dR(e){if(e!=null){try{return cR.call(e)}catch{}try{return e+""}catch{}}return""}var Fe=dR,pR=/[\\^$.*+?()[\]{}|]/g,gR=/^\[object .+?Constructor\]$/,fR=Function.prototype,yR=Object.prototype,mR=fR.toString,bR=yR.hasOwnProperty,hR=RegExp("^"+mR.call(bR).replace(pR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vR(e){if(!t1(e)||sR(e))return!1;var t=oR(e)?hR:gR;return t.test(Fe(e))}var wR=vR;function kR(e,t){return e?.[t]}var xR=kR;function IR(e,t){var r=xR(e,t);return wR(r)?r:void 0}var Kt=IR,CR=Kt(ne,"WeakMap"),Cl=CR;function AR(e,t){return e===t||e!==e&&t!==t}var MR=AR,jR=9007199254740991;function SR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=jR}var $R=SR,pee=Object.prototype,_R="[object Arguments]";function ER(e){return Ol(e)&&Gi(e)==_R}var lg=ER,r1=Object.prototype,TR=r1.hasOwnProperty,LR=r1.propertyIsEnumerable,gee=lg(function(){return arguments}())?lg:function(e){return Ol(e)&&TR.call(e,"callee")&&!LR.call(e,"callee")},i1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sg=i1&&typeof module=="object"&&module&&!module.nodeType&&module,OR=sg&&sg.exports===i1,ug=OR?ne.Buffer:void 0,fee=ug?ug.isBuffer:void 0,NR="[object Arguments]",DR="[object Array]",PR="[object Boolean]",zR="[object Date]",UR="[object Error]",RR="[object Function]",FR="[object Map]",VR="[object Number]",BR="[object Object]",qR="[object RegExp]",GR="[object Set]",YR="[object String]",HR="[object WeakMap]",ZR="[object ArrayBuffer]",QR="[object DataView]",WR="[object Float32Array]",KR="[object Float64Array]",JR="[object Int8Array]",XR="[object Int16Array]",eF="[object Int32Array]",tF="[object Uint8Array]",rF="[object Uint8ClampedArray]",iF="[object Uint16Array]",nF="[object Uint32Array]",F={};F[WR]=F[KR]=F[JR]=F[XR]=F[eF]=F[tF]=F[rF]=F[iF]=F[nF]=!0;F[NR]=F[DR]=F[ZR]=F[PR]=F[QR]=F[zR]=F[UR]=F[RR]=F[FR]=F[VR]=F[BR]=F[qR]=F[GR]=F[YR]=F[HR]=!1;function oF(e){return Ol(e)&&$R(e.length)&&!!F[Gi(e)]}var aF=oF;function lF(e){return function(t){return e(t)}}var sF=lF,n1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Di=n1&&typeof module=="object"&&module&&!module.nodeType&&module,uF=Di&&Di.exports===n1,yl=uF&&Xg.process,cF=function(){try{var e=Di&&Di.require&&Di.require("util").types;return e||yl&&yl.binding&&yl.binding("util")}catch{}}(),cg=cF,dg=cg&&cg.isTypedArray,yee=dg?sF(dg):aF,dF=Object.prototype,mee=dF.hasOwnProperty;function pF(e,t){return function(r){return e(t(r))}}var gF=pF,bee=gF(Object.keys,Object),fF=Object.prototype,hee=fF.hasOwnProperty,yF=Kt(Object,"create"),Ui=yF;function mF(){this.__data__=Ui?Ui(null):{},this.size=0}var bF=mF;function hF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var vF=hF,wF="__lodash_hash_undefined__",kF=Object.prototype,xF=kF.hasOwnProperty;function IF(e){var t=this.__data__;if(Ui){var r=t[e];return r===wF?void 0:r}return xF.call(t,e)?t[e]:void 0}var CF=IF,AF=Object.prototype,MF=AF.hasOwnProperty;function jF(e){var t=this.__data__;return Ui?t[e]!==void 0:MF.call(t,e)}var SF=jF,$F="__lodash_hash_undefined__";function _F(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ui&&t===void 0?$F:t,this}var EF=_F;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=bF;Jt.prototype.delete=vF;Jt.prototype.get=CF;Jt.prototype.has=SF;Jt.prototype.set=EF;var pg=Jt;function TF(){this.__data__=[],this.size=0}var LF=TF;function OF(e,t){for(var r=e.length;r--;)if(MR(e[r][0],t))return r;return-1}var co=OF,NF=Array.prototype,DF=NF.splice;function PF(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():DF.call(t,r,1),--this.size,!0}var zF=PF;function UF(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var RF=UF;function FF(e){return co(this.__data__,e)>-1}var VF=FF;function BF(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 qF=BF;function Xt(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])}}Xt.prototype.clear=LF;Xt.prototype.delete=zF;Xt.prototype.get=RF;Xt.prototype.has=VF;Xt.prototype.set=qF;var po=Xt,GF=Kt(ne,"Map"),Ri=GF;function YF(){this.size=0,this.__data__={hash:new pg,map:new(Ri||po),string:new pg}}var HF=YF;function ZF(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var QF=ZF;function WF(e,t){var r=e.__data__;return QF(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=WF;function KF(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var JF=KF;function XF(e){return go(this,e).get(e)}var eV=XF;function tV(e){return go(this,e).has(e)}var rV=tV;function iV(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var nV=iV;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=HF;er.prototype.delete=JF;er.prototype.get=eV;er.prototype.has=rV;er.prototype.set=nV;var o1=er;function oV(){this.__data__=new po,this.size=0}var aV=oV;function lV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var sV=lV;function uV(e){return this.__data__.get(e)}var cV=uV;function dV(e){return this.__data__.has(e)}var pV=dV,gV=200;function fV(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Ri||i.length<gV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new o1(i)}return r.set(e,t),this.size=r.size,this}var yV=fV;function Yi(e){var t=this.__data__=new po(e);this.size=t.size}Yi.prototype.clear=aV;Yi.prototype.delete=sV;Yi.prototype.get=cV;Yi.prototype.has=pV;Yi.prototype.set=yV;var mV=Object.prototype,vee=mV.propertyIsEnumerable,bV=Kt(ne,"DataView"),Al=bV,hV=Kt(ne,"Promise"),Ml=hV,vV=Kt(ne,"Set"),jl=vV,gg="[object Map]",wV="[object Object]",fg="[object Promise]",yg="[object Set]",mg="[object WeakMap]",bg="[object DataView]",kV=Fe(Al),xV=Fe(Ri),IV=Fe(Ml),CV=Fe(jl),AV=Fe(Cl),Bt=Gi;(Al&&Bt(new Al(new ArrayBuffer(1)))!=bg||Ri&&Bt(new Ri)!=gg||Ml&&Bt(Ml.resolve())!=fg||jl&&Bt(new jl)!=yg||Cl&&Bt(new Cl)!=mg)&&(Bt=function(e){var t=Gi(e),r=t==wV?e.constructor:void 0,i=r?Fe(r):"";if(i)switch(i){case kV:return bg;case xV:return gg;case IV:return fg;case CV:return yg;case AV:return mg}return t});var wee=ne.Uint8Array,MV="__lodash_hash_undefined__";function jV(e){return this.__data__.set(e,MV),this}var SV=jV;function $V(e){return this.__data__.has(e)}var _V=$V;function Sl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new o1;++t<r;)this.add(e[t])}Sl.prototype.add=Sl.prototype.push=SV;Sl.prototype.has=_V;var hg=Yt?Yt.prototype:void 0,kee=hg?hg.valueOf:void 0,EV=Object.prototype,xee=EV.hasOwnProperty,TV=Object.prototype,Iee=TV.hasOwnProperty,Cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Aee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Mee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function LV(e){return e==null?[]:Array.isArray(e)?e:[e]}var OV=LV;function NV(e){return`
414
+ `,tU=eU;function rU(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 r1(2e3),await iU(t,e,r)):i(t,r)}async function iU(e,t,r){switch(t.kind){case"image":return nU(e,t,r);case"video":return oU(e,t,r);case"text":return aU(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 nU(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 rz(s,r),l=await Ml(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 oU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function aU(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 lU(a,r.abortSignal)}async function*lU(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 r1(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 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:uU(220,i),duration:i,thumbnailUrl:void 0}}function uU(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 cU(i,44100)}function cU(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function r1(e){return new Promise(t=>{setTimeout(t,e)})}var dU=rU,i1="USER_CANCEL";function pU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=nz([...e.provider.output.middleware??[],...r?.middlewares??[],az({enable:r?.debug}),dU({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===i1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var gU=pU;async function fU(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 m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=Kz(a),s=Xz(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=gU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Qz(a,c);dz(r.cesdk,"@imgly/plugin-ai-generation",tU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return qg.get().register(u),u}var bl=fU;function yU(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 mU=yU;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 bU(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=vU({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=hU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=mU({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 hU({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&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"&&cg(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"&&cg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function vU({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 cg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pl(r.id),!1).value)}var wU=bU,go="ly.img.ai.editMode",n1="ly.img.ai.metadata";async function kU(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 Og(n,n1),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 m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var xU=kU;function IU(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 CU=IU;function AU(e){return`ly.img.ai.${e}.canvasMenu`}var MU=AU;function jU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=MU(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 SU=jU;function $U(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 _U(e,t);case"image":return EU(e,t);case"video":return LU(e,t);case"audio":return TU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function _U(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 EU(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 Ml(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),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};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 k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await OU(r,k,x),I=await Ml(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();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);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function LU(e,t){throw new Error("Function not implemented.")}async function TU(e,t){throw new Error("Function not implemented.")}async function OU(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${tz(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var NU=$U;function DU(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 PU=DU,zU=class o1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new o1),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=zU;function UU(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 Og(e.cesdk.engine,n1),l=e.lock??!0?PU({engine:e.cesdk.engine,editModeToLockTo:go,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(i1),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 NU(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(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Fe.get().register(m,{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 dg=UU;function RU(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=SU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=FU(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=qg.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(po);return j=CU(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&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:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:dg({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&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:()=>{h.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:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:dg({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function FU(e){return e.map(t=>t==="ly.img.separator"?t:Ol.get().getBy({id:t,type:"quick"})[0]).filter(po)}var VU=RU;async function BU(e){let t=await VU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await xU({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 qU=BU,GU=typeof global=="object"&&global&&global.Object===Object&&global,a1=GU,YU=typeof self=="object"&&self&&self.Object===Object&&self,HU=a1||YU||Function("return this")(),ae=HU,ZU=ae.Symbol,Zt=ZU,l1=Object.prototype,QU=l1.hasOwnProperty,WU=l1.toString,Ti=Zt?Zt.toStringTag:void 0;function KU(e){var t=QU.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=WU.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var JU=KU,XU=Object.prototype,eR=XU.toString;function tR(e){return eR.call(e)}var rR=tR,iR="[object Null]",nR="[object Undefined]",pg=Zt?Zt.toStringTag:void 0;function oR(e){return e==null?e===void 0?nR:iR:pg&&pg in Object(e)?JU(e):rR(e)}var Zi=oR;function aR(e){return e!=null&&typeof e=="object"}var zl=aR,wee=Array.isArray;function lR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var s1=lR,sR="[object AsyncFunction]",uR="[object Function]",cR="[object GeneratorFunction]",dR="[object Proxy]";function pR(e){if(!s1(e))return!1;var t=Zi(e);return t==uR||t==cR||t==sR||t==dR}var gR=pR,fR=ae["__core-js_shared__"],hl=fR,gg=function(){var e=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function yR(e){return!!gg&&gg in e}var mR=yR,bR=Function.prototype,hR=bR.toString;function vR(e){if(e!=null){try{return hR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=vR,wR=/[\\^$.*+?()[\]{}|]/g,kR=/^\[object .+?Constructor\]$/,xR=Function.prototype,IR=Object.prototype,CR=xR.toString,AR=IR.hasOwnProperty,MR=RegExp("^"+CR.call(AR).replace(wR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function jR(e){if(!s1(e)||mR(e))return!1;var t=gR(e)?MR:kR;return t.test(Be(e))}var SR=jR;function $R(e,t){return e?.[t]}var _R=$R;function ER(e,t){var r=_R(e,t);return SR(r)?r:void 0}var Xt=ER,LR=Xt(ae,"WeakMap"),Sl=LR;function TR(e,t){return e===t||e!==e&&t!==t}var OR=TR,NR=9007199254740991;function DR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=NR}var PR=DR,kee=Object.prototype,zR="[object Arguments]";function UR(e){return zl(e)&&Zi(e)==zR}var fg=UR,u1=Object.prototype,RR=u1.hasOwnProperty,FR=u1.propertyIsEnumerable,xee=fg(function(){return arguments}())?fg:function(e){return zl(e)&&RR.call(e,"callee")&&!FR.call(e,"callee")},c1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yg=c1&&typeof module=="object"&&module&&!module.nodeType&&module,VR=yg&&yg.exports===c1,mg=VR?ae.Buffer:void 0,Iee=mg?mg.isBuffer:void 0,BR="[object Arguments]",qR="[object Array]",GR="[object Boolean]",YR="[object Date]",HR="[object Error]",ZR="[object Function]",QR="[object Map]",WR="[object Number]",KR="[object Object]",JR="[object RegExp]",XR="[object Set]",eF="[object String]",tF="[object WeakMap]",rF="[object ArrayBuffer]",iF="[object DataView]",nF="[object Float32Array]",oF="[object Float64Array]",aF="[object Int8Array]",lF="[object Int16Array]",sF="[object Int32Array]",uF="[object Uint8Array]",cF="[object Uint8ClampedArray]",dF="[object Uint16Array]",pF="[object Uint32Array]",F={};F[nF]=F[oF]=F[aF]=F[lF]=F[sF]=F[uF]=F[cF]=F[dF]=F[pF]=!0;F[BR]=F[qR]=F[rF]=F[GR]=F[iF]=F[YR]=F[HR]=F[ZR]=F[QR]=F[WR]=F[KR]=F[JR]=F[XR]=F[eF]=F[tF]=!1;function gF(e){return zl(e)&&PR(e.length)&&!!F[Zi(e)]}var fF=gF;function yF(e){return function(t){return e(t)}}var mF=yF,d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=d1&&typeof module=="object"&&module&&!module.nodeType&&module,bF=Ui&&Ui.exports===d1,vl=bF&&a1.process,hF=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),bg=hF,hg=bg&&bg.isTypedArray,Cee=hg?mF(hg):fF,vF=Object.prototype,Aee=vF.hasOwnProperty;function wF(e,t){return function(r){return e(t(r))}}var kF=wF,Mee=kF(Object.keys,Object),xF=Object.prototype,jee=xF.hasOwnProperty,IF=Xt(Object,"create"),Vi=IF;function CF(){this.__data__=Vi?Vi(null):{},this.size=0}var AF=CF;function MF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var jF=MF,SF="__lodash_hash_undefined__",$F=Object.prototype,_F=$F.hasOwnProperty;function EF(e){var t=this.__data__;if(Vi){var r=t[e];return r===SF?void 0:r}return _F.call(t,e)?t[e]:void 0}var LF=EF,TF=Object.prototype,OF=TF.hasOwnProperty;function NF(e){var t=this.__data__;return Vi?t[e]!==void 0:OF.call(t,e)}var DF=NF,PF="__lodash_hash_undefined__";function zF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Vi&&t===void 0?PF:t,this}var UF=zF;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=AF;er.prototype.delete=jF;er.prototype.get=LF;er.prototype.has=DF;er.prototype.set=UF;var vg=er;function RF(){this.__data__=[],this.size=0}var FF=RF;function VF(e,t){for(var r=e.length;r--;)if(OR(e[r][0],t))return r;return-1}var fo=VF,BF=Array.prototype,qF=BF.splice;function GF(e){var t=this.__data__,r=fo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():qF.call(t,r,1),--this.size,!0}var YF=GF;function HF(e){var t=this.__data__,r=fo(t,e);return r<0?void 0:t[r][1]}var ZF=HF;function QF(e){return fo(this.__data__,e)>-1}var WF=QF;function KF(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 JF=KF;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=FF;tr.prototype.delete=YF;tr.prototype.get=ZF;tr.prototype.has=WF;tr.prototype.set=JF;var yo=tr,XF=Xt(ae,"Map"),Bi=XF;function eV(){this.size=0,this.__data__={hash:new vg,map:new(Bi||yo),string:new vg}}var tV=eV;function rV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var iV=rV;function nV(e,t){var r=e.__data__;return iV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var mo=nV;function oV(e){var t=mo(this,e).delete(e);return this.size-=t?1:0,t}var aV=oV;function lV(e){return mo(this,e).get(e)}var sV=lV;function uV(e){return mo(this,e).has(e)}var cV=uV;function dV(e,t){var r=mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var pV=dV;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=tV;rr.prototype.delete=aV;rr.prototype.get=sV;rr.prototype.has=cV;rr.prototype.set=pV;var p1=rr;function gV(){this.__data__=new yo,this.size=0}var fV=gV;function yV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var mV=yV;function bV(e){return this.__data__.get(e)}var hV=bV;function vV(e){return this.__data__.has(e)}var wV=vV,kV=200;function xV(e,t){var r=this.__data__;if(r instanceof yo){var i=r.__data__;if(!Bi||i.length<kV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new p1(i)}return r.set(e,t),this.size=r.size,this}var IV=xV;function Qi(e){var t=this.__data__=new yo(e);this.size=t.size}Qi.prototype.clear=fV;Qi.prototype.delete=mV;Qi.prototype.get=hV;Qi.prototype.has=wV;Qi.prototype.set=IV;var CV=Object.prototype,See=CV.propertyIsEnumerable,AV=Xt(ae,"DataView"),$l=AV,MV=Xt(ae,"Promise"),_l=MV,jV=Xt(ae,"Set"),El=jV,wg="[object Map]",SV="[object Object]",kg="[object Promise]",xg="[object Set]",Ig="[object WeakMap]",Cg="[object DataView]",$V=Be($l),_V=Be(Bi),EV=Be(_l),LV=Be(El),TV=Be(Sl),Gt=Zi;($l&&Gt(new $l(new ArrayBuffer(1)))!=Cg||Bi&&Gt(new Bi)!=wg||_l&&Gt(_l.resolve())!=kg||El&&Gt(new El)!=xg||Sl&&Gt(new Sl)!=Ig)&&(Gt=function(e){var t=Zi(e),r=t==SV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case $V:return Cg;case _V:return wg;case EV:return kg;case LV:return xg;case TV:return Ig}return t});var $ee=ae.Uint8Array,OV="__lodash_hash_undefined__";function NV(e){return this.__data__.set(e,OV),this}var DV=NV;function PV(e){return this.__data__.has(e)}var zV=PV;function Ll(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new p1;++t<r;)this.add(e[t])}Ll.prototype.add=Ll.prototype.push=DV;Ll.prototype.has=zV;var Ag=Zt?Zt.prototype:void 0,_ee=Ag?Ag.valueOf:void 0,UV=Object.prototype,Eee=UV.hasOwnProperty,RV=Object.prototype,Lee=RV.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");function FV(e){return e==null?[]:Array.isArray(e)?e:[e]}var VV=FV;function BV(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 DV=NV,fo="improve",vg=`ly.img.${fo}`,PV=`ly.img.plugin-ai-text-generation-web.quickAction.${fo}`,zV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${fo}`;function UV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${fo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var RV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),e.i18n.setTranslations({en:{[`${zV}`]:"Improve Writing"}}),{id:vg,type:"quick",kind:"text",scopes:["text/edit"],label:`${PV}`,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:UV(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:DV(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"})}}})}}),FV=RV;function VV(e){return`
439
+ `}var qV=BV,bo="improve",Mg=`ly.img.${bo}`,GV=`ly.img.plugin-ai-text-generation-web.quickAction.${bo}`,YV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${bo}`;function HV(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 ZV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${YV}`]:"Improve Writing"}}),{id:Mg,type:"quick",kind:"text",scopes:["text/edit"],label:`${GV}`,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(`${Mg}.button`,{label:HV(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:qV(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"})}}})}}),QV=ZV;function WV(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 BV=VV,yo="fix",wg=`ly.img.${yo}`,qV=`ly.img.plugin-ai-text-generation-web.quickAction.${yo}`,GV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${yo}`;function YV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${yo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var HV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),e.i18n.setTranslations({en:{[`${GV}`]:"Fix Spelling & Grammar"}}),{id:wg,type:"quick",kind:"text",scopes:["text/edit"],label:`${qV}`,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:YV(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:BV(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"})}}})}}),ZV=HV;function QV(e){return`
469
+ `}var KV=WV,ho="fix",jg=`ly.img.${ho}`,JV=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,XV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function eB(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 tB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${XV}`]:"Fix Spelling & Grammar"}}),{id:jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${JV}`,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(`${jg}.button`,{label:eB(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:KV(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"})}}})}}),rB=tB;function iB(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 WV=QV,mo="shorter",kg=`ly.img.${mo}`,KV=`ly.img.plugin-ai-text-generation-web.quickAction.${mo}`,JV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${mo}`;function XV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${mo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var eB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),e.i18n.setTranslations({en:{[`${JV}`]:"Make Shorter"}}),{id:kg,type:"quick",kind:"text",scopes:["text/edit"],label:`${KV}`,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(`${kg}.button`,{label:XV(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:WV(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"})}}})}}),tB=eB;function rB(e){return`
500
+ `}var nB=iB,vo="shorter",Sg=`ly.img.${vo}`,oB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,aB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function lB(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 sB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${aB}`]:"Make Shorter"}}),{id:Sg,type:"quick",kind:"text",scopes:["text/edit"],label:`${oB}`,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(`${Sg}.button`,{label:lB(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:nB(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"})}}})}}),uB=sB;function cB(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=rB,bo="longer",xg=`ly.img.${bo}`,nB=`ly.img.plugin-ai-text-generation-web.quickAction.${bo}`,oB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${bo}`;function aB(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 lB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),e.i18n.setTranslations({en:{[`${oB}`]:"Make Longer"}}),{id:xg,type:"quick",kind:"text",scopes:["text/edit"],label:`${nB}`,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(`${xg}.button`,{label:aB(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"})}}})}}),sB=lB;function uB(e,t){return`
534
+ `}var dB=cB,wo="longer",$g=`ly.img.${wo}`,pB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,gB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function fB(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 yB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${gB}`]:"Make Longer"}}),{id:$g,type:"quick",kind:"text",scopes:["text/edit"],label:`${pB}`,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(`${$g}.button`,{label:fB(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:dB(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"})}}})}}),mB=yB;function bB(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 cB=uB,ho="changeTone",Ei=`ly.img.${ho}`,dB=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,ze=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function Ig(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 pB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],gB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),e.i18n.setTranslations({en:{[`${ze}`]:"Change Tone",[`${ze}.professional`]:"Professional",[`${ze}.casual`]:"Casual",[`${ze}.friendly`]:"Friendly",[`${ze}.serious`]:"Serious",[`${ze}.humorous`]:"Humorous",[`${ze}.optimistic`]:"Optimistic"}}),{id:Ei,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(`${Ei}.popover`,{label:Ig(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ei}.popover.section`,{children:()=>{a.builder.Menu(`${Ei}.popover.menu`,{children:()=>{pB.forEach(s=>{t.Button(`${Ei}.popover.menu.${s.id}`,{label:Ig(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:cB(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"})}}})})}})}})}})}}),fB=gB,a1={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"},yB=Object.keys(a1);function mB(e,t){let r=a1[t]||t;return`
556
+ `}var hB=bB,ko="changeTone",Oi=`ly.img.${ko}`,vB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function _g(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 wB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],kB=({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:`${vB}`,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:_g(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:()=>{wB.forEach(s=>{t.Button(`${Oi}.popover.menu.${s.id}`,{label:_g(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:hB(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"})}}})})}})}})}})}}),xB=kB,g1={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"},IB=Object.keys(g1);function CB(e,t){let r=g1[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 bB=mB,vo="translate",Ti=`ly.img.${vo}`,hB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,H=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function Cg(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 vB=yB.map(e=>({id:e})),wB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),e.i18n.setTranslations({en:{[`${H}`]:"Translate",[`${H}.en_US`]:"English (US)",[`${H}.en_UK`]:"English (UK)",[`${H}.es`]:"Spanish",[`${H}.fr`]:"French",[`${H}.de`]:"German",[`${H}.pt`]:"Portuguese",[`${H}.it`]:"Italian",[`${H}.ru`]:"Russian",[`${H}.zh`]:"Mandarin Chinese",[`${H}.ja`]:"Japanese"}}),{id:Ti,type:"quick",kind:"text",scopes:["text/edit"],label:`${hB}`,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(`${Ti}.popover`,{label:Cg(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ti}.popover.section`,{children:()=>{a.builder.Menu(`${Ti}.popover.menu`,{children:()=>{vB.forEach(s=>{t.Button(`${Ti}.popover.menu.${s.id}`,{label:Cg(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:bB(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"})}}})})}})}})}})}}),kB=wB;function xB(e,t){return`
572
+ `}var AB=CB,xo="translate",Ni=`ly.img.${xo}`,MB=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function Eg(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 jB=IB.map(e=>({id:e})),SB=({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:`${MB}`,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:Eg(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:()=>{jB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Eg(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:AB(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"})}}})})}})}})}})}}),$B=SB;function _B(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 IB=xB,wo="changeTextTo",ke=`ly.img.${wo}`,Ag=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,Mg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function ml(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 CB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${Mg}`]:"Change Text to...",[`${Mg}.prompt`]:"Change Text to...",[`${Ag}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:ke,type:"quick",kind:"text",scopes:["text/edit"],label:`${Ag}`,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(`${ke}.prompt`,"");t.TextArea(`${ke}.prompt`,{inputLabel:ml(l,"prompt"),placeholder:ml(l,"prompt.placeholder")[1],...u}),t.Separator(`${ke}.separator`),r.builder.ButtonRow(`${ke}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ke}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ke}.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:IB(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(`${ke}.button`,{label:ml(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),AB=CB,l1="@imgly/plugin-ai-text-generation-web",MB=["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;nz(t,l1,"0.2.15"),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(GO,HO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),SB(e);let r=_l.get();r.register(FV({cesdk:t})),r.register(ZV({cesdk:t})),r.register(tB({cesdk:t})),r.register(sB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(AB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(OV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await pU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await DU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:MB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:uo}))}}}function SB(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 $B=jB,_B=e=>({name:l1,version:"0.2.15",...$B(e)}),s1=_B;var EB=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;ir(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.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=()=>{ir(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 ir(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ir(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 ir(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]=ir(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]=ir(n,t,a)}return e}var TB=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")}},LB=typeof global=="object"&&global&&global.Object===Object&&global,R1=LB,OB=typeof self=="object"&&self&&self.Object===Object&&self,NB=R1||OB||Function("return this")(),oe=NB,DB=oe.Symbol,nr=DB,F1=Object.prototype,PB=F1.hasOwnProperty,zB=F1.toString,Hi=nr?nr.toStringTag:void 0;function UB(e){var t=PB.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=zB.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var RB=UB,FB=Object.prototype,VB=FB.toString;function BB(e){return VB.call(e)}var qB=BB,GB="[object Null]",YB="[object Undefined]",u1=nr?nr.toStringTag:void 0;function HB(e){return e==null?e===void 0?YB:GB:u1&&u1 in Object(e)?RB(e):qB(e)}var an=HB;function ZB(e){return e!=null&&typeof e=="object"}var Xl=ZB,Eee=Array.isArray;function QB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var V1=QB,WB="[object AsyncFunction]",KB="[object Function]",JB="[object GeneratorFunction]",XB="[object Proxy]";function eq(e){if(!V1(e))return!1;var t=an(e);return t==KB||t==JB||t==WB||t==XB}var tq=eq,rq=oe["__core-js_shared__"],Nl=rq,c1=function(){var e=/[^.]+$/.exec(Nl&&Nl.keys&&Nl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function iq(e){return!!c1&&c1 in e}var nq=iq,oq=Function.prototype,aq=oq.toString;function lq(e){if(e!=null){try{return aq.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=lq,sq=/[\\^$.*+?()[\]{}|]/g,uq=/^\[object .+?Constructor\]$/,cq=Function.prototype,dq=Object.prototype,pq=cq.toString,gq=dq.hasOwnProperty,fq=RegExp("^"+pq.call(gq).replace(sq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yq(e){if(!V1(e)||nq(e))return!1;var t=tq(e)?fq:uq;return t.test(Ve(e))}var mq=yq;function bq(e,t){return e?.[t]}var hq=bq;function vq(e,t){var r=hq(e,t);return mq(r)?r:void 0}var ar=vq,wq=ar(oe,"WeakMap"),Vl=wq;function kq(e,t){return e===t||e!==e&&t!==t}var xq=kq,Iq=9007199254740991;function Cq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Iq}var Aq=Cq,Tee=Object.prototype,Mq="[object Arguments]";function jq(e){return Xl(e)&&an(e)==Mq}var d1=jq,B1=Object.prototype,Sq=B1.hasOwnProperty,$q=B1.propertyIsEnumerable,Lee=d1(function(){return arguments}())?d1:function(e){return Xl(e)&&Sq.call(e,"callee")&&!$q.call(e,"callee")},q1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,p1=q1&&typeof module=="object"&&module&&!module.nodeType&&module,_q=p1&&p1.exports===q1,g1=_q?oe.Buffer:void 0,Oee=g1?g1.isBuffer:void 0,Eq="[object Arguments]",Tq="[object Array]",Lq="[object Boolean]",Oq="[object Date]",Nq="[object Error]",Dq="[object Function]",Pq="[object Map]",zq="[object Number]",Uq="[object Object]",Rq="[object RegExp]",Fq="[object Set]",Vq="[object String]",Bq="[object WeakMap]",qq="[object ArrayBuffer]",Gq="[object DataView]",Yq="[object Float32Array]",Hq="[object Float64Array]",Zq="[object Int8Array]",Qq="[object Int16Array]",Wq="[object Int32Array]",Kq="[object Uint8Array]",Jq="[object Uint8ClampedArray]",Xq="[object Uint16Array]",eG="[object Uint32Array]",V={};V[Yq]=V[Hq]=V[Zq]=V[Qq]=V[Wq]=V[Kq]=V[Jq]=V[Xq]=V[eG]=!0;V[Eq]=V[Tq]=V[qq]=V[Lq]=V[Gq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=V[Uq]=V[Rq]=V[Fq]=V[Vq]=V[Bq]=!1;function tG(e){return Xl(e)&&Aq(e.length)&&!!V[an(e)]}var rG=tG;function iG(e){return function(t){return e(t)}}var nG=iG,G1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=G1&&typeof module=="object"&&module&&!module.nodeType&&module,oG=Xi&&Xi.exports===G1,Dl=oG&&R1.process,aG=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Dl&&Dl.binding&&Dl.binding("util")}catch{}}(),f1=aG,y1=f1&&f1.isTypedArray,Nee=y1?nG(y1):rG,lG=Object.prototype,Dee=lG.hasOwnProperty;function sG(e,t){return function(r){return e(t(r))}}var uG=sG,Pee=uG(Object.keys,Object),cG=Object.prototype,zee=cG.hasOwnProperty,dG=ar(Object,"create"),tn=dG;function pG(){this.__data__=tn?tn(null):{},this.size=0}var gG=pG;function fG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var yG=fG,mG="__lodash_hash_undefined__",bG=Object.prototype,hG=bG.hasOwnProperty;function vG(e){var t=this.__data__;if(tn){var r=t[e];return r===mG?void 0:r}return hG.call(t,e)?t[e]:void 0}var wG=vG,kG=Object.prototype,xG=kG.hasOwnProperty;function IG(e){var t=this.__data__;return tn?t[e]!==void 0:xG.call(t,e)}var CG=IG,AG="__lodash_hash_undefined__";function MG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?AG:t,this}var jG=MG;function lr(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])}}lr.prototype.clear=gG;lr.prototype.delete=yG;lr.prototype.get=wG;lr.prototype.has=CG;lr.prototype.set=jG;var m1=lr;function SG(){this.__data__=[],this.size=0}var $G=SG;function _G(e,t){for(var r=e.length;r--;)if(xq(e[r][0],t))return r;return-1}var ko=_G,EG=Array.prototype,TG=EG.splice;function LG(e){var t=this.__data__,r=ko(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TG.call(t,r,1),--this.size,!0}var OG=LG;function NG(e){var t=this.__data__,r=ko(t,e);return r<0?void 0:t[r][1]}var DG=NG;function PG(e){return ko(this.__data__,e)>-1}var zG=PG;function UG(e,t){var r=this.__data__,i=ko(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var RG=UG;function sr(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])}}sr.prototype.clear=$G;sr.prototype.delete=OG;sr.prototype.get=DG;sr.prototype.has=zG;sr.prototype.set=RG;var xo=sr,FG=ar(oe,"Map"),rn=FG;function VG(){this.size=0,this.__data__={hash:new m1,map:new(rn||xo),string:new m1}}var BG=VG;function qG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var GG=qG;function YG(e,t){var r=e.__data__;return GG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Io=YG;function HG(e){var t=Io(this,e).delete(e);return this.size-=t?1:0,t}var ZG=HG;function QG(e){return Io(this,e).get(e)}var WG=QG;function KG(e){return Io(this,e).has(e)}var JG=KG;function XG(e,t){var r=Io(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var eY=XG;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=BG;ur.prototype.delete=ZG;ur.prototype.get=WG;ur.prototype.has=JG;ur.prototype.set=eY;var Y1=ur;function tY(){this.__data__=new xo,this.size=0}var rY=tY;function iY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var nY=iY;function oY(e){return this.__data__.get(e)}var aY=oY;function lY(e){return this.__data__.has(e)}var sY=lY,uY=200;function cY(e,t){var r=this.__data__;if(r instanceof xo){var i=r.__data__;if(!rn||i.length<uY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Y1(i)}return r.set(e,t),this.size=r.size,this}var dY=cY;function ln(e){var t=this.__data__=new xo(e);this.size=t.size}ln.prototype.clear=rY;ln.prototype.delete=nY;ln.prototype.get=aY;ln.prototype.has=sY;ln.prototype.set=dY;var pY=Object.prototype,Uee=pY.propertyIsEnumerable,gY=ar(oe,"DataView"),Bl=gY,fY=ar(oe,"Promise"),ql=fY,yY=ar(oe,"Set"),Gl=yY,b1="[object Map]",mY="[object Object]",h1="[object Promise]",v1="[object Set]",w1="[object WeakMap]",k1="[object DataView]",bY=Ve(Bl),hY=Ve(rn),vY=Ve(ql),wY=Ve(Gl),kY=Ve(Vl),tr=an;(Bl&&tr(new Bl(new ArrayBuffer(1)))!=k1||rn&&tr(new rn)!=b1||ql&&tr(ql.resolve())!=h1||Gl&&tr(new Gl)!=v1||Vl&&tr(new Vl)!=w1)&&(tr=function(e){var t=an(e),r=t==mY?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case bY:return k1;case hY:return b1;case vY:return h1;case wY:return v1;case kY:return w1}return t});var Ree=oe.Uint8Array,xY="__lodash_hash_undefined__";function IY(e){return this.__data__.set(e,xY),this}var CY=IY;function AY(e){return this.__data__.has(e)}var MY=AY;function Yl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Y1;++t<r;)this.add(e[t])}Yl.prototype.add=Yl.prototype.push=CY;Yl.prototype.has=MY;var x1=nr?nr.prototype:void 0,Fee=x1?x1.valueOf:void 0,jY=Object.prototype,Vee=jY.hasOwnProperty,SY=Object.prototype,Bee=SY.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");async function H1(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 $Y(e,t){let r=await H1(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 _Y(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 H1(i,t)}function EY(e){return e!==void 0}var TY=EY;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(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 Z1=class Q1{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 Q1),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))}},LY=class W1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new W1),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 OY(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 NY({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 DY=NY,Pl="ly.img.ai.temp";async function PY(e,t){return e.engine.asset.findAllSources().includes(Pl)||e.engine.asset.addLocalSource(Pl),e.engine.asset.apply(Pl,t)}function zY(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 K1(){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 UY(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 RY(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 es(e){return e instanceof Error&&e.name==="AbortError"}function FY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function VY(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 EB=_B,Io="changeTextTo",Ie=`ly.img.${Io}`,Lg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Tg=`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 LB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Tg}`]:"Change Text to...",[`${Tg}.prompt`]:"Change Text to...",[`${Lg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Lg}`,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:EB(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})}}),TB=LB,f1="@imgly/plugin-ai-text-generation-web",OB=["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 NB(e){return{async initialize({cesdk:t}){if(t==null)return;pz(t,f1,"0.2.16"),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(XO,tN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),DB(e);let r=Ol.get();r.register(QV({cesdk:t})),r.register(rB({cesdk:t})),r.register(uB({cesdk:t})),r.register(mB({cesdk:t})),r.register(xB({cesdk:t})),r.register($B({cesdk:t})),r.register(TB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(VV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await wU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await qU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:OB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function DB(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 PB=NB,zB=e=>({name:f1,version:"0.2.16",...PB(e)}),y1=zB;var UB=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.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 RB=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")}},FB=typeof global=="object"&&global&&global.Object===Object&&global,H1=FB,VB=typeof self=="object"&&self&&self.Object===Object&&self,BB=H1||VB||Function("return this")(),le=BB,qB=le.Symbol,ar=qB,Z1=Object.prototype,GB=Z1.hasOwnProperty,YB=Z1.toString,Wi=ar?ar.toStringTag:void 0;function HB(e){var t=GB.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=YB.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var ZB=HB,QB=Object.prototype,WB=QB.toString;function KB(e){return WB.call(e)}var JB=KB,XB="[object Null]",eq="[object Undefined]",m1=ar?ar.toStringTag:void 0;function tq(e){return e==null?e===void 0?eq:XB:m1&&m1 in Object(e)?ZB(e):JB(e)}var un=tq;function rq(e){return e!=null&&typeof e=="object"}var is=rq,Ree=Array.isArray;function iq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Q1=iq,nq="[object AsyncFunction]",oq="[object Function]",aq="[object GeneratorFunction]",lq="[object Proxy]";function sq(e){if(!Q1(e))return!1;var t=un(e);return t==oq||t==aq||t==nq||t==lq}var uq=sq,cq=le["__core-js_shared__"],Ul=cq,b1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dq(e){return!!b1&&b1 in e}var pq=dq,gq=Function.prototype,fq=gq.toString;function yq(e){if(e!=null){try{return fq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=yq,mq=/[\\^$.*+?()[\]{}|]/g,bq=/^\[object .+?Constructor\]$/,hq=Function.prototype,vq=Object.prototype,wq=hq.toString,kq=vq.hasOwnProperty,xq=RegExp("^"+wq.call(kq).replace(mq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Iq(e){if(!Q1(e)||pq(e))return!1;var t=uq(e)?xq:bq;return t.test(qe(e))}var Cq=Iq;function Aq(e,t){return e?.[t]}var Mq=Aq;function jq(e,t){var r=Mq(e,t);return Cq(r)?r:void 0}var sr=jq,Sq=sr(le,"WeakMap"),Yl=Sq;function $q(e,t){return e===t||e!==e&&t!==t}var _q=$q,Eq=9007199254740991;function Lq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Eq}var Tq=Lq,Fee=Object.prototype,Oq="[object Arguments]";function Nq(e){return is(e)&&un(e)==Oq}var h1=Nq,W1=Object.prototype,Dq=W1.hasOwnProperty,Pq=W1.propertyIsEnumerable,Vee=h1(function(){return arguments}())?h1:function(e){return is(e)&&Dq.call(e,"callee")&&!Pq.call(e,"callee")},K1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,v1=K1&&typeof module=="object"&&module&&!module.nodeType&&module,zq=v1&&v1.exports===K1,w1=zq?le.Buffer:void 0,Bee=w1?w1.isBuffer:void 0,Uq="[object Arguments]",Rq="[object Array]",Fq="[object Boolean]",Vq="[object Date]",Bq="[object Error]",qq="[object Function]",Gq="[object Map]",Yq="[object Number]",Hq="[object Object]",Zq="[object RegExp]",Qq="[object Set]",Wq="[object String]",Kq="[object WeakMap]",Jq="[object ArrayBuffer]",Xq="[object DataView]",eG="[object Float32Array]",tG="[object Float64Array]",rG="[object Int8Array]",iG="[object Int16Array]",nG="[object Int32Array]",oG="[object Uint8Array]",aG="[object Uint8ClampedArray]",lG="[object Uint16Array]",sG="[object Uint32Array]",V={};V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=V[oG]=V[aG]=V[lG]=V[sG]=!0;V[Uq]=V[Rq]=V[Jq]=V[Fq]=V[Xq]=V[Vq]=V[Bq]=V[qq]=V[Gq]=V[Yq]=V[Hq]=V[Zq]=V[Qq]=V[Wq]=V[Kq]=!1;function uG(e){return is(e)&&Tq(e.length)&&!!V[un(e)]}var cG=uG;function dG(e){return function(t){return e(t)}}var pG=dG,J1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=J1&&typeof module=="object"&&module&&!module.nodeType&&module,gG=rn&&rn.exports===J1,Rl=gG&&H1.process,fG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),k1=fG,x1=k1&&k1.isTypedArray,qee=x1?pG(x1):cG,yG=Object.prototype,Gee=yG.hasOwnProperty;function mG(e,t){return function(r){return e(t(r))}}var bG=mG,Yee=bG(Object.keys,Object),hG=Object.prototype,Hee=hG.hasOwnProperty,vG=sr(Object,"create"),on=vG;function wG(){this.__data__=on?on(null):{},this.size=0}var kG=wG;function xG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IG=xG,CG="__lodash_hash_undefined__",AG=Object.prototype,MG=AG.hasOwnProperty;function jG(e){var t=this.__data__;if(on){var r=t[e];return r===CG?void 0:r}return MG.call(t,e)?t[e]:void 0}var SG=jG,$G=Object.prototype,_G=$G.hasOwnProperty;function EG(e){var t=this.__data__;return on?t[e]!==void 0:_G.call(t,e)}var LG=EG,TG="__lodash_hash_undefined__";function OG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?TG:t,this}var NG=OG;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=kG;ur.prototype.delete=IG;ur.prototype.get=SG;ur.prototype.has=LG;ur.prototype.set=NG;var I1=ur;function DG(){this.__data__=[],this.size=0}var PG=DG;function zG(e,t){for(var r=e.length;r--;)if(_q(e[r][0],t))return r;return-1}var Co=zG,UG=Array.prototype,RG=UG.splice;function FG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RG.call(t,r,1),--this.size,!0}var VG=FG;function BG(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var qG=BG;function GG(e){return Co(this.__data__,e)>-1}var YG=GG;function HG(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 ZG=HG;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=PG;cr.prototype.delete=VG;cr.prototype.get=qG;cr.prototype.has=YG;cr.prototype.set=ZG;var Ao=cr,QG=sr(le,"Map"),an=QG;function WG(){this.size=0,this.__data__={hash:new I1,map:new(an||Ao),string:new I1}}var KG=WG;function JG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XG=JG;function eY(e,t){var r=e.__data__;return XG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=eY;function tY(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var rY=tY;function iY(e){return Mo(this,e).get(e)}var nY=iY;function oY(e){return Mo(this,e).has(e)}var aY=oY;function lY(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sY=lY;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=KG;dr.prototype.delete=rY;dr.prototype.get=nY;dr.prototype.has=aY;dr.prototype.set=sY;var X1=dr;function uY(){this.__data__=new Ao,this.size=0}var cY=uY;function dY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pY=dY;function gY(e){return this.__data__.get(e)}var fY=gY;function yY(e){return this.__data__.has(e)}var mY=yY,bY=200;function hY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<bY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new X1(i)}return r.set(e,t),this.size=r.size,this}var vY=hY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=cY;cn.prototype.delete=pY;cn.prototype.get=fY;cn.prototype.has=mY;cn.prototype.set=vY;var wY=Object.prototype,Zee=wY.propertyIsEnumerable,kY=sr(le,"DataView"),Hl=kY,xY=sr(le,"Promise"),Zl=xY,IY=sr(le,"Set"),Ql=IY,C1="[object Map]",CY="[object Object]",A1="[object Promise]",M1="[object Set]",j1="[object WeakMap]",S1="[object DataView]",AY=qe(Hl),MY=qe(an),jY=qe(Zl),SY=qe(Ql),$Y=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=S1||an&&ir(new an)!=C1||Zl&&ir(Zl.resolve())!=A1||Ql&&ir(new Ql)!=M1||Yl&&ir(new Yl)!=j1)&&(ir=function(e){var t=un(e),r=t==CY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case AY:return S1;case MY:return C1;case jY:return A1;case SY:return M1;case $Y:return j1}return t});var Qee=le.Uint8Array,_Y="__lodash_hash_undefined__";function EY(e){return this.__data__.set(e,_Y),this}var LY=EY;function TY(e){return this.__data__.has(e)}var OY=TY;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new X1;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=LY;Wl.prototype.has=OY;var $1=ar?ar.prototype:void 0,Wee=$1?$1.valueOf:void 0,NY=Object.prototype,Kee=NY.hasOwnProperty,DY=Object.prototype,Jee=DY.hasOwnProperty,Xee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ete=new RegExp(/[A-Fa-f0-9]{1}/,"g"),tte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ef(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 PY(e,t){let r=await ef(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 zY(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 ef(i,t)}function UY(e){return e!==void 0}var RY=UY;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 tf=class rf{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 rf),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))}},FY=class nf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new nf),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 VY(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,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,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 BY({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 qY=BY,Fl="ly.img.ai.temp";async function GY(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function YY(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 of(){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 HY(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 ZY(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 QY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function WY(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 BY(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 qY=BY;function GY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),YY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:zY(e)}))}function YY(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 I1=GY,HY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ts=HY;function ZY(e,t,r){switch(t){case"image":return QY(e,r[t]);case"video":return WY(e,r[t]);case"sticker":return KY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ts,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function WY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ts,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function KY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ts,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var JY=ZY;async function XY(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 eH(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 tH(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 rH(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 eH(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 tH(e,t,r){let i=t.width,n=t.height,a=await UY(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 rH(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 J1=XY;function nH(e){switch(e.userFlow){case"placeholder":return aH(e);case"generation-only":return oH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function oH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ae(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ae(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(Ae(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=K1(),c=await J1(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 aH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ae(t,r))return{status:"aborted"};let s=K1(),c=JY(s,a,o);if(i=await PY(t,c),Ae(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(Ae(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 J1(s,a,o,l.output);if(Ae(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),Ae(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)&&(es(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 Ae(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var lH=nH;function rs(e){return`${e}.generating`}function sH(e){return`${e}.abort`}function uH(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(sH(d),()=>{}),m=c.global(rs(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=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(y.status==="aborted")return;if(y.status==="error"){I1(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;cH(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(es(y))return;I1(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 cH(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 X1=uH;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(rs(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return X1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var pH=dH;function ef(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 Wi(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=ef(e,t.$ref),n={...Wi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Wi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Wi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Wi(e,t[n],r));return i}return t}function gH(e){return Wi(e,{...e})}function fH(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 yH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return mH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function mH(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=bH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function bH(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 tf=yH;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 rf(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 nf(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?hH(e,c,r,i,n,a,o,s):of(e,c,r,i,n,a,o,s);case"boolean":return af(e,c,r,i,n,a,o,s);case"number":case"integer":return lf(e,c,r,i,n,a,o,s);case"object":return Hl(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 vH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Hl(e,t,r,i,n,a,o,s){let c=tf(t.schema??{},i).reduce((l,u)=>{let d=nf(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 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=Me(t,r,o),m=Me(t,r,o,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=un(d,h,f,t.schema.default,""),v=l(p,b),k=wH(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function hH(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:m,icons:f}=rf(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Me(t,r,o,I),icon:f[I]})),b=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function af(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),m=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}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=Me(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=un(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function vH(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),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=rf(t.schema),x=sn(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:of,boolean:af,integer:lf,object:Hl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Me(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Hl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=un(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function wH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var kH=nf,xH={"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 C1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function IH(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),m=d[g]||C1(g);n[a(u,g)]=m})};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,m=u[g]||C1(g);n[a(l.id,g)]=m}})}});let c={...xH,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function CH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=gH(r.document),c=ef(s,r.inputReference);if(!fH(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=tf(l,r);return IH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=kH(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});X1(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var AH=CH;async function MH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return pH(e,t);case"schema":return AH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var jH=MH;function SH(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 EB(o,r)),o}return i}var $H=SH;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 EH=_H,zl="@imgly/plugin-ai-generation",TH=`
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 KY(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 JY=KY;function XY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),eH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:YY(e)}))}function eH(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 _1=XY,tH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",as=tH;function rH(e,t,r){switch(t){case"image":return iH(e,r[t]);case"video":return nH(e,r[t]);case"sticker":return oH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function iH(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 nH(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 oH(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 aH=rH;async function lH(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 sH(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 uH(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 cH(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 dH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function sH(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 uH(e,t,r){let i=t.width,n=t.height,a=await HY(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 cH(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 dH(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 af=lH;function pH(e){switch(e.userFlow){case"placeholder":return fH(e);case"generation-only":return gH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function gH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(je(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(je(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(je(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=of(),c=await af(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 fH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(je(t,r))return{status:"aborted"};let s=of(),c=aH(s,a,o);if(i=await GY(t,c),je(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(je(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 af(s,a,o,l.output);if(je(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),je(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 je(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var yH=pH;function ls(e){return`${e}.generating`}function mH(e){return`${e}.abort`}function bH(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(mH(d),()=>{}),m=c.global(ls(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=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:m.value,color:"accent",isDisabled:v,suffix:h?{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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await yH({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(y.status==="aborted")return;if(y.status==="error"){_1(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;hH(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(os(y))return;_1(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.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 hH(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=bH;async function vH({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 lf(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var wH=vH;function sf(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=sf(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 kH(e){return Xi(e,{...e})}function xH(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 IH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return CH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function CH(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=AH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function AH(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 uf=IH;function Se(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 cf(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?MH(e,c,r,i,n,a,o,s):pf(e,c,r,i,n,a,o,s);case"boolean":return gf(e,c,r,i,n,a,o,s);case"number":case"integer":return ff(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 jH(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=uf(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,p=`${r.id}.${d}`,g=Se(t,r,o),m=Se(t,r,o,"placeholder"),f=dn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=pn(d,h,f,t.schema.default,""),v=l(p,b),k=SH(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function MH(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=Se(t,r,o),{labels:m,icons:f}=cf(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Se(t,r,o,I),icon:f[I]})),b=dn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=pn(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function gf(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=Se(t,r,o),m=dn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!pn(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function ff(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=Se(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=dn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=pn(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function jH(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=Se(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=cf(t.schema),x=dn(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:pf,boolean:gf,integer:ff,object:Kl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Se(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Kl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=pn(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function SH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $H=df,_H={"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 E1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function EH(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),m=d[g]||E1(g);n[a(u,g)]=m})};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,m=u[g]||E1(g);n[a(l.id,g)]=m}})}});let c={..._H,...n};Object.keys(c).length>0&&ns(r.cesdk,{en:c})}async function LH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=kH(r.document),c=sf(s,r.inputReference);if(!xH(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=uf(l,r);return EH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=$H(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});lf(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var TH=LH;async function OH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return wH(e,t);case"schema":return TH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var NH=OH;function DH(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 UB(o,r)),o}return i}var PH=DH;function zH(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 UH=zH,Vl="@imgly/plugin-ai-generation",RH=`
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="${zl}/image"
607
+ id="${Vl}/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="${zl}/video"
619
+ id="${Vl}/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="${zl}/audio"
630
+ id="${Vl}/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
- `,LH=TH;function OH(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 sf(2e3),await NH(t,e,r)):i(t,r)}async function NH(e,t,r){switch(t.kind){case"image":return DH(e,t,r);case"video":return PH(e,t,r);case"text":return zH(e,t,r);case"audio":return RH(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function DH(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 _Y(s,r),l=await $Y(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 PH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function zH(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=Zi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Zi(n,o)}else"customPrompt"in e?a=Zi(n,"custom"):a=Zi(n,"improved");else a=Zi(n,"generated");return UH(a,r.abortSignal)}async function*UH(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 sf(100)}return{kind:"text",text:e}}function Zi(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 RH(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:FH(220,i),duration:i,thumbnailUrl:void 0}}function FH(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 VH(i,44100)}function VH(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function sf(e){return new Promise(t=>{setTimeout(t,e)})}var BH=OH,qH="USER_CANCEL";function GH(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=OY([...e.provider.output.middleware??[],...r?.middlewares??[],DY({enable:r?.debug}),BH({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}:RY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return es(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===qH?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var YH=GH;async function HH(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=Z1.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=$H(a),s=EH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=YH({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await jH(a,c);FY(r.cesdk,"@imgly/plugin-ai-generation",LH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return LY.get().register(u),u}var Ul=HH;function ZH(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 TB(n,r,i);return r.engine.asset.addSource(a),a.id}var QH=ZH;function Ki(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 WH(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"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=>Ul(e,u,r,i)));o.push(...l),a=JH({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ul(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ul(e,d,r,i)));o.push(...u),a=KH({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=QH({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(TY)}),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 KH({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Ki(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Ki(e,"fromText.label"),icon:f.value!=="fromText"&&A1(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:Ki(e,"fromImage.label"),icon:f.value!=="fromImage"&&A1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Ki(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function JH({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:Ki(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function A1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(rs(r.id),!1).value)}var XH=WH,eZ="@imgly/plugin-ai-sticker-generation",tZ=`
650
+ `,FH=RH;function VH(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 yf(2e3),await BH(t,e,r)):i(t,r)}async function BH(e,t,r){switch(t.kind){case"image":return qH(e,t,r);case"video":return GH(e,t,r);case"text":return YH(e,t,r);case"audio":return ZH(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function qH(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 zY(s,r),l=await PY(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 GH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function YH(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 HH(a,r.abortSignal)}async function*HH(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 yf(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 ZH(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:QH(220,i),duration:i,thumbnailUrl:void 0}}function QH(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 WH(i,44100)}function WH(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,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};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 h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function yf(e){return new Promise(t=>{setTimeout(t,e)})}var KH=VH,JH="USER_CANCEL";function XH(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=VY([...e.provider.output.middleware??[],...r?.middlewares??[],qY({enable:r?.debug}),KH({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}:ZY(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===JH?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var eZ=XH;async function tZ(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=tf.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=PH(a),s=UH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=eZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await NH(a,c);QY(r.cesdk,"@imgly/plugin-ai-generation",FH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return FY.get().register(u),u}var Bl=tZ;function rZ(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 RB(n,r,i);return r.engine.asset.addSource(a),a.id}var iZ=rZ;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 nZ(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=aZ({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=oZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=iZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(RY)}),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 oZ({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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{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 $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&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"&&L1(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"&&L1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function aZ({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 L1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ls(r.id),!1).value)}var lZ=nZ,sZ="@imgly/plugin-ai-sticker-generation",uZ=`
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
- `,rZ=tZ,iZ=typeof global=="object"&&global&&global.Object===Object&&global,uf=iZ,nZ=typeof self=="object"&&self&&self.Object===Object&&self,oZ=uf||nZ||Function("return this")(),ae=oZ,aZ=ae.Symbol,or=aZ,cf=Object.prototype,lZ=cf.hasOwnProperty,sZ=cf.toString,Qi=or?or.toStringTag:void 0;function uZ(e){var t=lZ.call(e,Qi),r=e[Qi];try{e[Qi]=void 0;var i=!0}catch{}var n=sZ.call(e);return i&&(t?e[Qi]=r:delete e[Qi]),n}var cZ=uZ,dZ=Object.prototype,pZ=dZ.toString;function gZ(e){return pZ.call(e)}var fZ=gZ,yZ="[object Null]",mZ="[object Undefined]",M1=or?or.toStringTag:void 0;function bZ(e){return e==null?e===void 0?mZ:yZ:M1&&M1 in Object(e)?cZ(e):fZ(e)}var cn=bZ;function hZ(e){return e!=null&&typeof e=="object"}var is=hZ,Hee=Array.isArray;function vZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var df=vZ,wZ="[object AsyncFunction]",kZ="[object Function]",xZ="[object GeneratorFunction]",IZ="[object Proxy]";function CZ(e){if(!df(e))return!1;var t=cn(e);return t==kZ||t==xZ||t==wZ||t==IZ}var AZ=CZ,MZ=ae["__core-js_shared__"],Rl=MZ,j1=function(){var e=/[^.]+$/.exec(Rl&&Rl.keys&&Rl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jZ(e){return!!j1&&j1 in e}var SZ=jZ,$Z=Function.prototype,_Z=$Z.toString;function EZ(e){if(e!=null){try{return _Z.call(e)}catch{}try{return e+""}catch{}}return""}var Be=EZ,TZ=/[\\^$.*+?()[\]{}|]/g,LZ=/^\[object .+?Constructor\]$/,OZ=Function.prototype,NZ=Object.prototype,DZ=OZ.toString,PZ=NZ.hasOwnProperty,zZ=RegExp("^"+DZ.call(PZ).replace(TZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UZ(e){if(!df(e)||SZ(e))return!1;var t=AZ(e)?zZ:LZ;return t.test(Be(e))}var RZ=UZ;function FZ(e,t){return e?.[t]}var VZ=FZ;function BZ(e,t){var r=VZ(e,t);return RZ(r)?r:void 0}var cr=BZ,qZ=cr(ae,"WeakMap"),Zl=qZ;function GZ(e,t){return e===t||e!==e&&t!==t}var YZ=GZ,HZ=9007199254740991;function ZZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HZ}var QZ=ZZ,Zee=Object.prototype,WZ="[object Arguments]";function KZ(e){return is(e)&&cn(e)==WZ}var S1=KZ,pf=Object.prototype,JZ=pf.hasOwnProperty,XZ=pf.propertyIsEnumerable,Qee=S1(function(){return arguments}())?S1:function(e){return is(e)&&JZ.call(e,"callee")&&!XZ.call(e,"callee")},gf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$1=gf&&typeof module=="object"&&module&&!module.nodeType&&module,eQ=$1&&$1.exports===gf,_1=eQ?ae.Buffer:void 0,Wee=_1?_1.isBuffer:void 0,tQ="[object Arguments]",rQ="[object Array]",iQ="[object Boolean]",nQ="[object Date]",oQ="[object Error]",aQ="[object Function]",lQ="[object Map]",sQ="[object Number]",uQ="[object Object]",cQ="[object RegExp]",dQ="[object Set]",pQ="[object String]",gQ="[object WeakMap]",fQ="[object ArrayBuffer]",yQ="[object DataView]",mQ="[object Float32Array]",bQ="[object Float64Array]",hQ="[object Int8Array]",vQ="[object Int16Array]",wQ="[object Int32Array]",kQ="[object Uint8Array]",xQ="[object Uint8ClampedArray]",IQ="[object Uint16Array]",CQ="[object Uint32Array]",B={};B[mQ]=B[bQ]=B[hQ]=B[vQ]=B[wQ]=B[kQ]=B[xQ]=B[IQ]=B[CQ]=!0;B[tQ]=B[rQ]=B[fQ]=B[iQ]=B[yQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=B[uQ]=B[cQ]=B[dQ]=B[pQ]=B[gQ]=!1;function AQ(e){return is(e)&&QZ(e.length)&&!!B[cn(e)]}var MQ=AQ;function jQ(e){return function(t){return e(t)}}var SQ=jQ,ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=ff&&typeof module=="object"&&module&&!module.nodeType&&module,$Q=en&&en.exports===ff,Fl=$Q&&uf.process,_Q=function(){try{var e=en&&en.require&&en.require("util").types;return e||Fl&&Fl.binding&&Fl.binding("util")}catch{}}(),E1=_Q,T1=E1&&E1.isTypedArray,Kee=T1?SQ(T1):MQ,EQ=Object.prototype,Jee=EQ.hasOwnProperty;function TQ(e,t){return function(r){return e(t(r))}}var LQ=TQ,Xee=LQ(Object.keys,Object),OQ=Object.prototype,ete=OQ.hasOwnProperty,NQ=cr(Object,"create"),nn=NQ;function DQ(){this.__data__=nn?nn(null):{},this.size=0}var PQ=DQ;function zQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var UQ=zQ,RQ="__lodash_hash_undefined__",FQ=Object.prototype,VQ=FQ.hasOwnProperty;function BQ(e){var t=this.__data__;if(nn){var r=t[e];return r===RQ?void 0:r}return VQ.call(t,e)?t[e]:void 0}var qQ=BQ,GQ=Object.prototype,YQ=GQ.hasOwnProperty;function HQ(e){var t=this.__data__;return nn?t[e]!==void 0:YQ.call(t,e)}var ZQ=HQ,QQ="__lodash_hash_undefined__";function WQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?QQ:t,this}var KQ=WQ;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=PQ;dr.prototype.delete=UQ;dr.prototype.get=qQ;dr.prototype.has=ZQ;dr.prototype.set=KQ;var L1=dr;function JQ(){this.__data__=[],this.size=0}var XQ=JQ;function eW(e,t){for(var r=e.length;r--;)if(YZ(e[r][0],t))return r;return-1}var Co=eW,tW=Array.prototype,rW=tW.splice;function iW(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rW.call(t,r,1),--this.size,!0}var nW=iW;function oW(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var aW=oW;function lW(e){return Co(this.__data__,e)>-1}var sW=lW;function uW(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 cW=uW;function pr(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])}}pr.prototype.clear=XQ;pr.prototype.delete=nW;pr.prototype.get=aW;pr.prototype.has=sW;pr.prototype.set=cW;var Ao=pr,dW=cr(ae,"Map"),on=dW;function pW(){this.size=0,this.__data__={hash:new L1,map:new(on||Ao),string:new L1}}var gW=pW;function fW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yW=fW;function mW(e,t){var r=e.__data__;return yW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=mW;function bW(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var hW=bW;function vW(e){return Mo(this,e).get(e)}var wW=vW;function kW(e){return Mo(this,e).has(e)}var xW=kW;function IW(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var CW=IW;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=gW;gr.prototype.delete=hW;gr.prototype.get=wW;gr.prototype.has=xW;gr.prototype.set=CW;var yf=gr;function AW(){this.__data__=new Ao,this.size=0}var MW=AW;function jW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SW=jW;function $W(e){return this.__data__.get(e)}var _W=$W;function EW(e){return this.__data__.has(e)}var TW=EW,LW=200;function OW(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!on||i.length<LW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yf(i)}return r.set(e,t),this.size=r.size,this}var NW=OW;function dn(e){var t=this.__data__=new Ao(e);this.size=t.size}dn.prototype.clear=MW;dn.prototype.delete=SW;dn.prototype.get=_W;dn.prototype.has=TW;dn.prototype.set=NW;var DW=Object.prototype,tte=DW.propertyIsEnumerable,PW=cr(ae,"DataView"),Ql=PW,zW=cr(ae,"Promise"),Wl=zW,UW=cr(ae,"Set"),Kl=UW,O1="[object Map]",RW="[object Object]",N1="[object Promise]",D1="[object Set]",P1="[object WeakMap]",z1="[object DataView]",FW=Be(Ql),VW=Be(on),BW=Be(Wl),qW=Be(Kl),GW=Be(Zl),rr=cn;(Ql&&rr(new Ql(new ArrayBuffer(1)))!=z1||on&&rr(new on)!=O1||Wl&&rr(Wl.resolve())!=N1||Kl&&rr(new Kl)!=D1||Zl&&rr(new Zl)!=P1)&&(rr=function(e){var t=cn(e),r=t==RW?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case FW:return z1;case VW:return O1;case BW:return N1;case qW:return D1;case GW:return P1}return t});var rte=ae.Uint8Array,YW="__lodash_hash_undefined__";function HW(e){return this.__data__.set(e,YW),this}var ZW=HW;function QW(e){return this.__data__.has(e)}var WW=QW;function Jl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yf;++t<r;)this.add(e[t])}Jl.prototype.add=Jl.prototype.push=ZW;Jl.prototype.has=WW;var U1=or?or.prototype:void 0,ite=U1?U1.valueOf:void 0,KW=Object.prototype,nte=KW.hasOwnProperty,JW=Object.prototype,ote=JW.hasOwnProperty,ate=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),lte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ste=new RegExp(/[A-Fa-f0-9]{2}/,"g");function XW(e){return e==null?[]:Array.isArray(e)?e:[e]}var eK=XW;function tK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function rK(e){return typeof e?.translate=="function"}function iK(e,t,r){return e&&tK(e)&&rK(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Ce="ly.img.ai.sticker-generation";function nK(e){return{async initialize({cesdk:t}){if(t==null)return;VY(t,Ji,"0.2.15"),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=Z1.get(),i=`${Ji}.action.label`;t.ui.addIconSet(eZ,rZ),t.i18n.setTranslations({en:{[`panel.${Ce}`]:"Sticker Generation",[`${Ce}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:iK(t,i,"Generate Sticker"),meta:{panelId:Ce},execute:()=>{t.ui.isPanelOpen(Ce)?t.ui.closePanel(Ce):t.ui.openPanel(Ce)}}),a=e.providers?.text2sticker,o=await Promise.all(eK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await XH("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ce,s.panel.builderRenderFunction),qY({cesdk:t,panelId:Ce})):n()}}}var oK=nK,aK=e=>({name:Ji,version:"0.2.15",...oK(e)}),mf=aK;var ns=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(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,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=lK(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 bf(e,t,r=[]){return new ns(e,t,r)}function lK(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 pn="ly.img.ai.apps";var Y=Qs("apps"),sK=512,uK=128,hf=e=>({async initialize({cesdk:t}){if(t==null)return;Ws(t,pn,"0.2.15");let{providers:r}=e;await t.addPlugin(s1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(bc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin($d({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Rp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),fK(t),cK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function cK(e,t){gK(e);let r=dK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.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:({label:a})=>a,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?vn.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 dK(e,t){let r=vn.get(),i=bf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,sceneMode:c})=>a==="Design"&&c==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:c,thumbUri:t.baseURL!=null?pK(t.baseURL,o):void 0,width:sK,height:uK}}).filter(Ms)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function pK(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 gK(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(h=>typeof h!="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(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?b.sourceIds.some(k=>{let x=v(e.version.startsWith("1.51.")?k:{sourceId:k});return x===u||x==="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}}),m=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:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function fK(e){e.i18n.setTranslations({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 yK=e=>({name:pn,version:"0.2.15",...hf(e)}),Mte=yK;export{Mte as default};
665
+ `,cZ=uZ,dZ=typeof global=="object"&&global&&global.Object===Object&&global,mf=dZ,pZ=typeof self=="object"&&self&&self.Object===Object&&self,gZ=mf||pZ||Function("return this")(),se=gZ,fZ=se.Symbol,lr=fZ,bf=Object.prototype,yZ=bf.hasOwnProperty,mZ=bf.toString,Ji=lr?lr.toStringTag:void 0;function bZ(e){var t=yZ.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 hZ=bZ,vZ=Object.prototype,wZ=vZ.toString;function kZ(e){return wZ.call(e)}var xZ=kZ,IZ="[object Null]",CZ="[object Undefined]",T1=lr?lr.toStringTag:void 0;function AZ(e){return e==null?e===void 0?CZ:IZ:T1&&T1 in Object(e)?hZ(e):xZ(e)}var gn=AZ;function MZ(e){return e!=null&&typeof e=="object"}var ss=MZ,rte=Array.isArray;function jZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var hf=jZ,SZ="[object AsyncFunction]",$Z="[object Function]",_Z="[object GeneratorFunction]",EZ="[object Proxy]";function LZ(e){if(!hf(e))return!1;var t=gn(e);return t==$Z||t==_Z||t==SZ||t==EZ}var TZ=LZ,OZ=se["__core-js_shared__"],ql=OZ,O1=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NZ(e){return!!O1&&O1 in e}var DZ=NZ,PZ=Function.prototype,zZ=PZ.toString;function UZ(e){if(e!=null){try{return zZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=UZ,RZ=/[\\^$.*+?()[\]{}|]/g,FZ=/^\[object .+?Constructor\]$/,VZ=Function.prototype,BZ=Object.prototype,qZ=VZ.toString,GZ=BZ.hasOwnProperty,YZ=RegExp("^"+qZ.call(GZ).replace(RZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function HZ(e){if(!hf(e)||DZ(e))return!1;var t=TZ(e)?YZ:FZ;return t.test(Ge(e))}var ZZ=HZ;function QZ(e,t){return e?.[t]}var WZ=QZ;function KZ(e,t){var r=WZ(e,t);return ZZ(r)?r:void 0}var pr=KZ,JZ=pr(se,"WeakMap"),Jl=JZ;function XZ(e,t){return e===t||e!==e&&t!==t}var eQ=XZ,tQ=9007199254740991;function rQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tQ}var iQ=rQ,ite=Object.prototype,nQ="[object Arguments]";function oQ(e){return ss(e)&&gn(e)==nQ}var N1=oQ,vf=Object.prototype,aQ=vf.hasOwnProperty,lQ=vf.propertyIsEnumerable,nte=N1(function(){return arguments}())?N1:function(e){return ss(e)&&aQ.call(e,"callee")&&!lQ.call(e,"callee")},wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,D1=wf&&typeof module=="object"&&module&&!module.nodeType&&module,sQ=D1&&D1.exports===wf,P1=sQ?se.Buffer:void 0,ote=P1?P1.isBuffer:void 0,uQ="[object Arguments]",cQ="[object Array]",dQ="[object Boolean]",pQ="[object Date]",gQ="[object Error]",fQ="[object Function]",yQ="[object Map]",mQ="[object Number]",bQ="[object Object]",hQ="[object RegExp]",vQ="[object Set]",wQ="[object String]",kQ="[object WeakMap]",xQ="[object ArrayBuffer]",IQ="[object DataView]",CQ="[object Float32Array]",AQ="[object Float64Array]",MQ="[object Int8Array]",jQ="[object Int16Array]",SQ="[object Int32Array]",$Q="[object Uint8Array]",_Q="[object Uint8ClampedArray]",EQ="[object Uint16Array]",LQ="[object Uint32Array]",B={};B[CQ]=B[AQ]=B[MQ]=B[jQ]=B[SQ]=B[$Q]=B[_Q]=B[EQ]=B[LQ]=!0;B[uQ]=B[cQ]=B[xQ]=B[dQ]=B[IQ]=B[pQ]=B[gQ]=B[fQ]=B[yQ]=B[mQ]=B[bQ]=B[hQ]=B[vQ]=B[wQ]=B[kQ]=!1;function TQ(e){return ss(e)&&iQ(e.length)&&!!B[gn(e)]}var OQ=TQ;function NQ(e){return function(t){return e(t)}}var DQ=NQ,kf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=kf&&typeof module=="object"&&module&&!module.nodeType&&module,PQ=nn&&nn.exports===kf,Gl=PQ&&mf.process,zQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),z1=zQ,U1=z1&&z1.isTypedArray,ate=U1?DQ(U1):OQ,UQ=Object.prototype,lte=UQ.hasOwnProperty;function RQ(e,t){return function(r){return e(t(r))}}var FQ=RQ,ste=FQ(Object.keys,Object),VQ=Object.prototype,ute=VQ.hasOwnProperty,BQ=pr(Object,"create"),ln=BQ;function qQ(){this.__data__=ln?ln(null):{},this.size=0}var GQ=qQ;function YQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HQ=YQ,ZQ="__lodash_hash_undefined__",QQ=Object.prototype,WQ=QQ.hasOwnProperty;function KQ(e){var t=this.__data__;if(ln){var r=t[e];return r===ZQ?void 0:r}return WQ.call(t,e)?t[e]:void 0}var JQ=KQ,XQ=Object.prototype,eW=XQ.hasOwnProperty;function tW(e){var t=this.__data__;return ln?t[e]!==void 0:eW.call(t,e)}var rW=tW,iW="__lodash_hash_undefined__";function nW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?iW:t,this}var oW=nW;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=GQ;gr.prototype.delete=HQ;gr.prototype.get=JQ;gr.prototype.has=rW;gr.prototype.set=oW;var R1=gr;function aW(){this.__data__=[],this.size=0}var lW=aW;function sW(e,t){for(var r=e.length;r--;)if(eQ(e[r][0],t))return r;return-1}var jo=sW,uW=Array.prototype,cW=uW.splice;function dW(e){var t=this.__data__,r=jo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():cW.call(t,r,1),--this.size,!0}var pW=dW;function gW(e){var t=this.__data__,r=jo(t,e);return r<0?void 0:t[r][1]}var fW=gW;function yW(e){return jo(this.__data__,e)>-1}var mW=yW;function bW(e,t){var r=this.__data__,i=jo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var hW=bW;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=lW;fr.prototype.delete=pW;fr.prototype.get=fW;fr.prototype.has=mW;fr.prototype.set=hW;var So=fr,vW=pr(se,"Map"),sn=vW;function wW(){this.size=0,this.__data__={hash:new R1,map:new(sn||So),string:new R1}}var kW=wW;function xW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var IW=xW;function CW(e,t){var r=e.__data__;return IW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=CW;function AW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var MW=AW;function jW(e){return $o(this,e).get(e)}var SW=jW;function $W(e){return $o(this,e).has(e)}var _W=$W;function EW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LW=EW;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=kW;yr.prototype.delete=MW;yr.prototype.get=SW;yr.prototype.has=_W;yr.prototype.set=LW;var xf=yr;function TW(){this.__data__=new So,this.size=0}var OW=TW;function NW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var DW=NW;function PW(e){return this.__data__.get(e)}var zW=PW;function UW(e){return this.__data__.has(e)}var RW=UW,FW=200;function VW(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!sn||i.length<FW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new xf(i)}return r.set(e,t),this.size=r.size,this}var BW=VW;function fn(e){var t=this.__data__=new So(e);this.size=t.size}fn.prototype.clear=OW;fn.prototype.delete=DW;fn.prototype.get=zW;fn.prototype.has=RW;fn.prototype.set=BW;var qW=Object.prototype,cte=qW.propertyIsEnumerable,GW=pr(se,"DataView"),Xl=GW,YW=pr(se,"Promise"),es=YW,HW=pr(se,"Set"),ts=HW,F1="[object Map]",ZW="[object Object]",V1="[object Promise]",B1="[object Set]",q1="[object WeakMap]",G1="[object DataView]",QW=Ge(Xl),WW=Ge(sn),KW=Ge(es),JW=Ge(ts),XW=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=G1||sn&&nr(new sn)!=F1||es&&nr(es.resolve())!=V1||ts&&nr(new ts)!=B1||Jl&&nr(new Jl)!=q1)&&(nr=function(e){var t=gn(e),r=t==ZW?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case QW:return G1;case WW:return F1;case KW:return V1;case JW:return B1;case XW:return q1}return t});var dte=se.Uint8Array,eK="__lodash_hash_undefined__";function tK(e){return this.__data__.set(e,eK),this}var rK=tK;function iK(e){return this.__data__.has(e)}var nK=iK;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new xf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=rK;rs.prototype.has=nK;var Y1=lr?lr.prototype:void 0,pte=Y1?Y1.valueOf:void 0,oK=Object.prototype,gte=oK.hasOwnProperty,aK=Object.prototype,fte=aK.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");function lK(e){return e==null?[]:Array.isArray(e)?e:[e]}var sK=lK;function uK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function cK(e){return typeof e?.translate=="function"}function dK(e,t,r){return e&&uK(e)&&cK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Me="ly.img.ai.sticker-generation";function pK(e){return{async initialize({cesdk:t}){if(t==null)return;WY(t,tn,"0.2.16"),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=tf.get(),i=`${tn}.action.label`;t.ui.addIconSet(sZ,cZ),ns(t,{en:{[`panel.${Me}`]:"Sticker Generation",[`${Me}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:dK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Me},execute:()=>{t.ui.isPanelOpen(Me)?t.ui.closePanel(Me):t.ui.openPanel(Me)}}),a=e.providers?.text2sticker,o=await Promise.all(sK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await lZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Me,s.panel.builderRenderFunction),JY({cesdk:t,panelId:Me})):n()}}}var gK=pK,fK=e=>({name:tn,version:"0.2.16",...gK(e)}),If=fK;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(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,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=yK(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 Cf(e,t,r=[]){return new us(e,t,r)}function yK(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,bK=128,Af=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"0.2.16");let{providers:r}=e;await t.addPlugin(y1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Cc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Dd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Hp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(If({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),xK(t),hK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function hK(e,t){kK(e);let r=vK(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 vK(e,t){let r=xn.get(),i=Cf(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?wK(t.baseURL,o):void 0,width:mK,height:bK}}).filter(Es)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function wK(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 kK(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(h=>typeof h!="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(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(x=>{let y=v(e.version.startsWith("1.51.")?x:{sourceId:x});return y===u||y==="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}}),m=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:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function xK(e){Xs(e,iu)}var IK=e=>({name:yn,version:"0.2.16",...Af(e)}),Dte=IK;export{Dte as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js: