@imgly/plugin-ai-apps-web 1.79.0 → 1.80.0-hotfix-mcp.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var Xf=typeof global=="object"&&global&&global.Object===Object&&global,$s=Xf,ey=typeof self=="object"&&self&&self.Object===Object&&self,ty=$s||ey||Function("return this")(),K=ty,ry=K.Symbol,He=ry,Es=Object.prototype,iy=Es.hasOwnProperty,ny=Es.toString,mr=He?He.toStringTag:void 0;function oy(e){var t=iy.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=ny.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var ay=oy,ly=Object.prototype,sy=ly.toString;function uy(e){return sy.call(e)}var cy=uy,dy="[object Null]",py="[object Undefined]",ys=He?He.toStringTag:void 0;function gy(e){return e==null?e===void 0?py:dy:ys&&ys in Object(e)?ay(e):cy(e)}var wr=gy;function fy(e){return e!=null&&typeof e=="object"}var Uo=fy,qK=Array.isArray;function yy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _s=yy,my="[object AsyncFunction]",hy="[object Function]",by="[object GeneratorFunction]",vy="[object Proxy]";function wy(e){if(!_s(e))return!1;var t=wr(e);return t==hy||t==by||t==my||t==vy}var ky=wy,xy=K["__core-js_shared__"],To=xy,ms=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iy(e){return!!ms&&ms in e}var Cy=Iy,Ay=Function.prototype,Sy=Ay.toString;function My(e){if(e!=null){try{return Sy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=My,jy=/[\\^$.*+?()[\]{}|]/g,$y=/^\[object .+?Constructor\]$/,Ey=Function.prototype,_y=Object.prototype,Ty=Ey.toString,Ly=_y.hasOwnProperty,Oy=RegExp("^"+Ty.call(Ly).replace(jy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ny(e){if(!_s(e)||Cy(e))return!1;var t=ky(e)?Oy:$y;return t.test($e(e))}var Dy=Ny;function Py(e,t){return e?.[t]}var zy=Py;function Uy(e,t){var r=zy(e,t);return Dy(r)?r:void 0}var Ze=Uy,Ry=Ze(K,"WeakMap"),Oo=Ry;function Fy(e,t){return e===t||e!==e&&t!==t}var Vy=Fy,By=9007199254740991;function qy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=By}var Gy=qy;var GK=Object.prototype;var Yy="[object Arguments]";function Hy(e){return Uo(e)&&wr(e)==Yy}var hs=Hy,Ts=Object.prototype,Zy=Ts.hasOwnProperty,Qy=Ts.propertyIsEnumerable,YK=hs(function(){return arguments}())?hs:function(e){return Uo(e)&&Zy.call(e,"callee")&&!Qy.call(e,"callee")};var Ls=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bs=Ls&&typeof module=="object"&&module&&!module.nodeType&&module,Wy=bs&&bs.exports===Ls,vs=Wy?K.Buffer:void 0,HK=vs?vs.isBuffer:void 0;var Ky="[object Arguments]",Jy="[object Array]",Xy="[object Boolean]",em="[object Date]",tm="[object Error]",rm="[object Function]",im="[object Map]",nm="[object Number]",om="[object Object]",am="[object RegExp]",lm="[object Set]",sm="[object String]",um="[object WeakMap]",cm="[object ArrayBuffer]",dm="[object DataView]",pm="[object Float32Array]",gm="[object Float64Array]",fm="[object Int8Array]",ym="[object Int16Array]",mm="[object Int32Array]",hm="[object Uint8Array]",bm="[object Uint8ClampedArray]",vm="[object Uint16Array]",wm="[object Uint32Array]",T={};T[pm]=T[gm]=T[fm]=T[ym]=T[mm]=T[hm]=T[bm]=T[vm]=T[wm]=!0;T[Ky]=T[Jy]=T[cm]=T[Xy]=T[dm]=T[em]=T[tm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=!1;function km(e){return Uo(e)&&Gy(e.length)&&!!T[wr(e)]}var xm=km;function Im(e){return function(t){return e(t)}}var Cm=Im,Os=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Os&&typeof module=="object"&&module&&!module.nodeType&&module,Am=hr&&hr.exports===Os,Lo=Am&&$s.process,Sm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||Lo&&Lo.binding&&Lo.binding("util")}catch{}}(),ws=Sm,ks=ws&&ws.isTypedArray,ZK=ks?Cm(ks):xm;var Mm=Object.prototype,QK=Mm.hasOwnProperty;function jm(e,t){return function(r){return e(t(r))}}var $m=jm,WK=$m(Object.keys,Object);var Em=Object.prototype,KK=Em.hasOwnProperty;var _m=Ze(Object,"create"),br=_m;function Tm(){this.__data__=br?br(null):{},this.size=0}var Lm=Tm;function Om(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Nm=Om,Dm="__lodash_hash_undefined__",Pm=Object.prototype,zm=Pm.hasOwnProperty;function Um(e){var t=this.__data__;if(br){var r=t[e];return r===Dm?void 0:r}return zm.call(t,e)?t[e]:void 0}var Rm=Um,Fm=Object.prototype,Vm=Fm.hasOwnProperty;function Bm(e){var t=this.__data__;return br?t[e]!==void 0:Vm.call(t,e)}var qm=Bm,Gm="__lodash_hash_undefined__";function Ym(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=br&&t===void 0?Gm:t,this}var Hm=Ym;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=Lm;Qe.prototype.delete=Nm;Qe.prototype.get=Rm;Qe.prototype.has=qm;Qe.prototype.set=Hm;var xs=Qe;function Zm(){this.__data__=[],this.size=0}var Qm=Zm;function Wm(e,t){for(var r=e.length;r--;)if(Vy(e[r][0],t))return r;return-1}var bn=Wm,Km=Array.prototype,Jm=Km.splice;function Xm(e){var t=this.__data__,r=bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Jm.call(t,r,1),--this.size,!0}var eh=Xm;function th(e){var t=this.__data__,r=bn(t,e);return r<0?void 0:t[r][1]}var rh=th;function ih(e){return bn(this.__data__,e)>-1}var nh=ih;function oh(e,t){var r=this.__data__,i=bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ah=oh;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=Qm;We.prototype.delete=eh;We.prototype.get=rh;We.prototype.has=nh;We.prototype.set=ah;var vn=We,lh=Ze(K,"Map"),vr=lh;function sh(){this.size=0,this.__data__={hash:new xs,map:new(vr||vn),string:new xs}}var uh=sh;function ch(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dh=ch;function ph(e,t){var r=e.__data__;return dh(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=ph;function gh(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var fh=gh;function yh(e){return wn(this,e).get(e)}var mh=yh;function hh(e){return wn(this,e).has(e)}var bh=hh;function vh(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wh=vh;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=uh;Ke.prototype.delete=fh;Ke.prototype.get=mh;Ke.prototype.has=bh;Ke.prototype.set=wh;var Ns=Ke;function kh(){this.__data__=new vn,this.size=0}var xh=kh;function Ih(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ch=Ih;function Ah(e){return this.__data__.get(e)}var Sh=Ah;function Mh(e){return this.__data__.has(e)}var jh=Mh,$h=200;function Eh(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<$h-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ns(i)}return r.set(e,t),this.size=r.size,this}var _h=Eh;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=xh;kr.prototype.delete=Ch;kr.prototype.get=Sh;kr.prototype.has=jh;kr.prototype.set=_h;var Th=Object.prototype,JK=Th.propertyIsEnumerable;var Lh=Ze(K,"DataView"),No=Lh,Oh=Ze(K,"Promise"),Do=Oh,Nh=Ze(K,"Set"),Po=Nh,Is="[object Map]",Dh="[object Object]",Cs="[object Promise]",As="[object Set]",Ss="[object WeakMap]",Ms="[object DataView]",Ph=$e(No),zh=$e(vr),Uh=$e(Do),Rh=$e(Po),Fh=$e(Oo),Ye=wr;(No&&Ye(new No(new ArrayBuffer(1)))!=Ms||vr&&Ye(new vr)!=Is||Do&&Ye(Do.resolve())!=Cs||Po&&Ye(new Po)!=As||Oo&&Ye(new Oo)!=Ss)&&(Ye=function(e){var t=wr(e),r=t==Dh?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ph:return Ms;case zh:return Is;case Uh:return Cs;case Rh:return As;case Fh:return Ss}return t});var XK=K.Uint8Array;var Vh="__lodash_hash_undefined__";function Bh(e){return this.__data__.set(e,Vh),this}var qh=Bh;function Gh(e){return this.__data__.has(e)}var Yh=Gh;function zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ns;++t<r;)this.add(e[t])}zo.prototype.add=zo.prototype.push=qh;zo.prototype.has=Yh;var js=He?He.prototype:void 0,eJ=js?js.valueOf:void 0;var Hh=Object.prototype,tJ=Hh.hasOwnProperty;var Zh=Object.prototype,rJ=Zh.hasOwnProperty;var iJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),nJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),oJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Qh(e){return e!==void 0}var Ds=Qh;var Wh=typeof global=="object"&&global&&global.Object===Object&&global,Ks=Wh,Kh=typeof self=="object"&&self&&self.Object===Object&&self,Jh=Ks||Kh||Function("return this")(),J=Jh,Xh=J.Symbol,Xe=Xh,Js=Object.prototype,eb=Js.hasOwnProperty,tb=Js.toString,xr=Xe?Xe.toStringTag:void 0;function rb(e){var t=eb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=tb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var ib=rb,nb=Object.prototype,ob=nb.toString;function ab(e){return ob.call(e)}var lb=ab,sb="[object Null]",ub="[object Undefined]",Ps=Xe?Xe.toStringTag:void 0;function cb(e){return e==null?e===void 0?ub:sb:Ps&&Ps in Object(e)?ib(e):lb(e)}var Sr=cb;function db(e){return e!=null&&typeof e=="object"}var Zo=db,lJ=Array.isArray;function pb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xs=pb,gb="[object AsyncFunction]",fb="[object Function]",yb="[object GeneratorFunction]",mb="[object Proxy]";function hb(e){if(!Xs(e))return!1;var t=Sr(e);return t==fb||t==yb||t==gb||t==mb}var bb=hb,vb=J["__core-js_shared__"],Ro=vb,zs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wb(e){return!!zs&&zs in e}var kb=wb,xb=Function.prototype,Ib=xb.toString;function Cb(e){if(e!=null){try{return Ib.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Cb,Ab=/[\\^$.*+?()[\]{}|]/g,Sb=/^\[object .+?Constructor\]$/,Mb=Function.prototype,jb=Object.prototype,$b=Mb.toString,Eb=jb.hasOwnProperty,_b=RegExp("^"+$b.call(Eb).replace(Ab,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tb(e){if(!Xs(e)||kb(e))return!1;var t=bb(e)?_b:Sb;return t.test(Ee(e))}var Lb=Tb;function Ob(e,t){return e?.[t]}var Nb=Ob;function Db(e,t){var r=Nb(e,t);return Lb(r)?r:void 0}var et=Db,Pb=et(J,"WeakMap"),Bo=Pb;function zb(e,t){return e===t||e!==e&&t!==t}var Ub=zb,Rb=9007199254740991;function Fb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Rb}var Vb=Fb,sJ=Object.prototype,Bb="[object Arguments]";function qb(e){return Zo(e)&&Sr(e)==Bb}var Us=qb,eu=Object.prototype,Gb=eu.hasOwnProperty,Yb=eu.propertyIsEnumerable,uJ=Us(function(){return arguments}())?Us:function(e){return Zo(e)&&Gb.call(e,"callee")&&!Yb.call(e,"callee")},tu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rs=tu&&typeof module=="object"&&module&&!module.nodeType&&module,Hb=Rs&&Rs.exports===tu,Fs=Hb?J.Buffer:void 0,cJ=Fs?Fs.isBuffer:void 0,Zb="[object Arguments]",Qb="[object Array]",Wb="[object Boolean]",Kb="[object Date]",Jb="[object Error]",Xb="[object Function]",e0="[object Map]",t0="[object Number]",r0="[object Object]",i0="[object RegExp]",n0="[object Set]",o0="[object String]",a0="[object WeakMap]",l0="[object ArrayBuffer]",s0="[object DataView]",u0="[object Float32Array]",c0="[object Float64Array]",d0="[object Int8Array]",p0="[object Int16Array]",g0="[object Int32Array]",f0="[object Uint8Array]",y0="[object Uint8ClampedArray]",m0="[object Uint16Array]",h0="[object Uint32Array]",L={};L[u0]=L[c0]=L[d0]=L[p0]=L[g0]=L[f0]=L[y0]=L[m0]=L[h0]=!0;L[Zb]=L[Qb]=L[l0]=L[Wb]=L[s0]=L[Kb]=L[Jb]=L[Xb]=L[e0]=L[t0]=L[r0]=L[i0]=L[n0]=L[o0]=L[a0]=!1;function b0(e){return Zo(e)&&Vb(e.length)&&!!L[Sr(e)]}var v0=b0;function w0(e){return function(t){return e(t)}}var k0=w0,ru=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=ru&&typeof module=="object"&&module&&!module.nodeType&&module,x0=Ir&&Ir.exports===ru,Fo=x0&&Ks.process,I0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Fo&&Fo.binding&&Fo.binding("util")}catch{}}(),Vs=I0,Bs=Vs&&Vs.isTypedArray,dJ=Bs?k0(Bs):v0,C0=Object.prototype,pJ=C0.hasOwnProperty;function A0(e,t){return function(r){return e(t(r))}}var S0=A0,gJ=S0(Object.keys,Object),M0=Object.prototype,fJ=M0.hasOwnProperty,j0=et(Object,"create"),Cr=j0;function $0(){this.__data__=Cr?Cr(null):{},this.size=0}var E0=$0;function _0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var T0=_0,L0="__lodash_hash_undefined__",O0=Object.prototype,N0=O0.hasOwnProperty;function D0(e){var t=this.__data__;if(Cr){var r=t[e];return r===L0?void 0:r}return N0.call(t,e)?t[e]:void 0}var P0=D0,z0=Object.prototype,U0=z0.hasOwnProperty;function R0(e){var t=this.__data__;return Cr?t[e]!==void 0:U0.call(t,e)}var F0=R0,V0="__lodash_hash_undefined__";function B0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?V0:t,this}var q0=B0;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=E0;tt.prototype.delete=T0;tt.prototype.get=P0;tt.prototype.has=F0;tt.prototype.set=q0;var qs=tt;function G0(){this.__data__=[],this.size=0}var Y0=G0;function H0(e,t){for(var r=e.length;r--;)if(Ub(e[r][0],t))return r;return-1}var kn=H0,Z0=Array.prototype,Q0=Z0.splice;function W0(e){var t=this.__data__,r=kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Q0.call(t,r,1),--this.size,!0}var K0=W0;function J0(e){var t=this.__data__,r=kn(t,e);return r<0?void 0:t[r][1]}var X0=J0;function e2(e){return kn(this.__data__,e)>-1}var t2=e2;function r2(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 i2=r2;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=Y0;rt.prototype.delete=K0;rt.prototype.get=X0;rt.prototype.has=t2;rt.prototype.set=i2;var xn=rt,n2=et(J,"Map"),Ar=n2;function o2(){this.size=0,this.__data__={hash:new qs,map:new(Ar||xn),string:new qs}}var a2=o2;function l2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var s2=l2;function u2(e,t){var r=e.__data__;return s2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var In=u2;function c2(e){var t=In(this,e).delete(e);return this.size-=t?1:0,t}var d2=c2;function p2(e){return In(this,e).get(e)}var g2=p2;function f2(e){return In(this,e).has(e)}var y2=f2;function m2(e,t){var r=In(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h2=m2;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=a2;it.prototype.delete=d2;it.prototype.get=g2;it.prototype.has=y2;it.prototype.set=h2;var iu=it;function b2(){this.__data__=new xn,this.size=0}var v2=b2;function w2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var k2=w2;function x2(e){return this.__data__.get(e)}var I2=x2;function C2(e){return this.__data__.has(e)}var A2=C2,S2=200;function M2(e,t){var r=this.__data__;if(r instanceof xn){var i=r.__data__;if(!Ar||i.length<S2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new iu(i)}return r.set(e,t),this.size=r.size,this}var j2=M2;function Mr(e){var t=this.__data__=new xn(e);this.size=t.size}Mr.prototype.clear=v2;Mr.prototype.delete=k2;Mr.prototype.get=I2;Mr.prototype.has=A2;Mr.prototype.set=j2;var $2=Object.prototype,yJ=$2.propertyIsEnumerable,E2=et(J,"DataView"),qo=E2,_2=et(J,"Promise"),Go=_2,T2=et(J,"Set"),Yo=T2,Gs="[object Map]",L2="[object Object]",Ys="[object Promise]",Hs="[object Set]",Zs="[object WeakMap]",Qs="[object DataView]",O2=Ee(qo),N2=Ee(Ar),D2=Ee(Go),P2=Ee(Yo),z2=Ee(Bo),Je=Sr;(qo&&Je(new qo(new ArrayBuffer(1)))!=Qs||Ar&&Je(new Ar)!=Gs||Go&&Je(Go.resolve())!=Ys||Yo&&Je(new Yo)!=Hs||Bo&&Je(new Bo)!=Zs)&&(Je=function(e){var t=Sr(e),r=t==L2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case O2:return Qs;case N2:return Gs;case D2:return Ys;case P2:return Hs;case z2:return Zs}return t});var mJ=J.Uint8Array,U2="__lodash_hash_undefined__";function R2(e){return this.__data__.set(e,U2),this}var F2=R2;function V2(e){return this.__data__.has(e)}var B2=V2;function Ho(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new iu;++t<r;)this.add(e[t])}Ho.prototype.add=Ho.prototype.push=F2;Ho.prototype.has=B2;var Ws=Xe?Xe.prototype:void 0,hJ=Ws?Ws.valueOf:void 0,q2=Object.prototype,bJ=q2.hasOwnProperty,G2=Object.prototype,vJ=G2.hasOwnProperty,wJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),kJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function nu(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Cn=class ou{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ou),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var Y2="ly.img.ai";function au(e){return`${Y2}.${e}`}function lu(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
1
+ var Xf=typeof global=="object"&&global&&global.Object===Object&&global,_s=Xf,ey=typeof self=="object"&&self&&self.Object===Object&&self,ty=_s||ey||Function("return this")(),K=ty,ry=K.Symbol,He=ry,Ts=Object.prototype,iy=Ts.hasOwnProperty,ny=Ts.toString,mr=He?He.toStringTag:void 0;function oy(e){var t=iy.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=ny.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var ay=oy,ly=Object.prototype,sy=ly.toString;function uy(e){return sy.call(e)}var cy=uy,dy="[object Null]",py="[object Undefined]",hs=He?He.toStringTag:void 0;function gy(e){return e==null?e===void 0?py:dy:hs&&hs in Object(e)?ay(e):cy(e)}var wr=gy;function fy(e){return e!=null&&typeof e=="object"}var Uo=fy,qK=Array.isArray;function yy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ls=yy,my="[object AsyncFunction]",hy="[object Function]",by="[object GeneratorFunction]",vy="[object Proxy]";function wy(e){if(!Ls(e))return!1;var t=wr(e);return t==hy||t==by||t==my||t==vy}var ky=wy,xy=K["__core-js_shared__"],To=xy,bs=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iy(e){return!!bs&&bs in e}var Ay=Iy,Cy=Function.prototype,Sy=Cy.toString;function My(e){if(e!=null){try{return Sy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=My,jy=/[\\^$.*+?()[\]{}|]/g,$y=/^\[object .+?Constructor\]$/,Ey=Function.prototype,_y=Object.prototype,Ty=Ey.toString,Ly=_y.hasOwnProperty,Oy=RegExp("^"+Ty.call(Ly).replace(jy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ny(e){if(!Ls(e)||Ay(e))return!1;var t=ky(e)?Oy:$y;return t.test($e(e))}var Dy=Ny;function Py(e,t){return e?.[t]}var zy=Py;function Uy(e,t){var r=zy(e,t);return Dy(r)?r:void 0}var Ze=Uy,Ry=Ze(K,"WeakMap"),Oo=Ry;function Fy(e,t){return e===t||e!==e&&t!==t}var Vy=Fy,By=9007199254740991;function qy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=By}var Gy=qy;var GK=Object.prototype;var Yy="[object Arguments]";function Hy(e){return Uo(e)&&wr(e)==Yy}var vs=Hy,Os=Object.prototype,Zy=Os.hasOwnProperty,Qy=Os.propertyIsEnumerable,YK=vs(function(){return arguments}())?vs:function(e){return Uo(e)&&Zy.call(e,"callee")&&!Qy.call(e,"callee")};var Ns=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ws=Ns&&typeof module=="object"&&module&&!module.nodeType&&module,Wy=ws&&ws.exports===Ns,ks=Wy?K.Buffer:void 0,HK=ks?ks.isBuffer:void 0;var Ky="[object Arguments]",Jy="[object Array]",Xy="[object Boolean]",em="[object Date]",tm="[object Error]",rm="[object Function]",im="[object Map]",nm="[object Number]",om="[object Object]",am="[object RegExp]",lm="[object Set]",sm="[object String]",um="[object WeakMap]",cm="[object ArrayBuffer]",dm="[object DataView]",pm="[object Float32Array]",gm="[object Float64Array]",fm="[object Int8Array]",ym="[object Int16Array]",mm="[object Int32Array]",hm="[object Uint8Array]",bm="[object Uint8ClampedArray]",vm="[object Uint16Array]",wm="[object Uint32Array]",T={};T[pm]=T[gm]=T[fm]=T[ym]=T[mm]=T[hm]=T[bm]=T[vm]=T[wm]=!0;T[Ky]=T[Jy]=T[cm]=T[Xy]=T[dm]=T[em]=T[tm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=!1;function km(e){return Uo(e)&&Gy(e.length)&&!!T[wr(e)]}var xm=km;function Im(e){return function(t){return e(t)}}var Am=Im,Ds=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Ds&&typeof module=="object"&&module&&!module.nodeType&&module,Cm=hr&&hr.exports===Ds,Lo=Cm&&_s.process,Sm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||Lo&&Lo.binding&&Lo.binding("util")}catch{}}(),xs=Sm,Is=xs&&xs.isTypedArray,ZK=Is?Am(Is):xm;var Mm=Object.prototype,QK=Mm.hasOwnProperty;function jm(e,t){return function(r){return e(t(r))}}var $m=jm,WK=$m(Object.keys,Object);var Em=Object.prototype,KK=Em.hasOwnProperty;var _m=Ze(Object,"create"),br=_m;function Tm(){this.__data__=br?br(null):{},this.size=0}var Lm=Tm;function Om(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Nm=Om,Dm="__lodash_hash_undefined__",Pm=Object.prototype,zm=Pm.hasOwnProperty;function Um(e){var t=this.__data__;if(br){var r=t[e];return r===Dm?void 0:r}return zm.call(t,e)?t[e]:void 0}var Rm=Um,Fm=Object.prototype,Vm=Fm.hasOwnProperty;function Bm(e){var t=this.__data__;return br?t[e]!==void 0:Vm.call(t,e)}var qm=Bm,Gm="__lodash_hash_undefined__";function Ym(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=br&&t===void 0?Gm:t,this}var Hm=Ym;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=Lm;Qe.prototype.delete=Nm;Qe.prototype.get=Rm;Qe.prototype.has=qm;Qe.prototype.set=Hm;var As=Qe;function Zm(){this.__data__=[],this.size=0}var Qm=Zm;function Wm(e,t){for(var r=e.length;r--;)if(Vy(e[r][0],t))return r;return-1}var bn=Wm,Km=Array.prototype,Jm=Km.splice;function Xm(e){var t=this.__data__,r=bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Jm.call(t,r,1),--this.size,!0}var eh=Xm;function th(e){var t=this.__data__,r=bn(t,e);return r<0?void 0:t[r][1]}var rh=th;function ih(e){return bn(this.__data__,e)>-1}var nh=ih;function oh(e,t){var r=this.__data__,i=bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ah=oh;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=Qm;We.prototype.delete=eh;We.prototype.get=rh;We.prototype.has=nh;We.prototype.set=ah;var vn=We,lh=Ze(K,"Map"),vr=lh;function sh(){this.size=0,this.__data__={hash:new As,map:new(vr||vn),string:new As}}var uh=sh;function ch(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dh=ch;function ph(e,t){var r=e.__data__;return dh(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=ph;function gh(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var fh=gh;function yh(e){return wn(this,e).get(e)}var mh=yh;function hh(e){return wn(this,e).has(e)}var bh=hh;function vh(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wh=vh;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=uh;Ke.prototype.delete=fh;Ke.prototype.get=mh;Ke.prototype.has=bh;Ke.prototype.set=wh;var Ps=Ke;function kh(){this.__data__=new vn,this.size=0}var xh=kh;function Ih(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ah=Ih;function Ch(e){return this.__data__.get(e)}var Sh=Ch;function Mh(e){return this.__data__.has(e)}var jh=Mh,$h=200;function Eh(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<$h-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ps(i)}return r.set(e,t),this.size=r.size,this}var _h=Eh;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=xh;kr.prototype.delete=Ah;kr.prototype.get=Sh;kr.prototype.has=jh;kr.prototype.set=_h;var Th=Object.prototype,JK=Th.propertyIsEnumerable;var Lh=Ze(K,"DataView"),No=Lh,Oh=Ze(K,"Promise"),Do=Oh,Nh=Ze(K,"Set"),Po=Nh,Cs="[object Map]",Dh="[object Object]",Ss="[object Promise]",Ms="[object Set]",js="[object WeakMap]",$s="[object DataView]",Ph=$e(No),zh=$e(vr),Uh=$e(Do),Rh=$e(Po),Fh=$e(Oo),Ye=wr;(No&&Ye(new No(new ArrayBuffer(1)))!=$s||vr&&Ye(new vr)!=Cs||Do&&Ye(Do.resolve())!=Ss||Po&&Ye(new Po)!=Ms||Oo&&Ye(new Oo)!=js)&&(Ye=function(e){var t=wr(e),r=t==Dh?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ph:return $s;case zh:return Cs;case Uh:return Ss;case Rh:return Ms;case Fh:return js}return t});var XK=K.Uint8Array;var Vh="__lodash_hash_undefined__";function Bh(e){return this.__data__.set(e,Vh),this}var qh=Bh;function Gh(e){return this.__data__.has(e)}var Yh=Gh;function zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ps;++t<r;)this.add(e[t])}zo.prototype.add=zo.prototype.push=qh;zo.prototype.has=Yh;var Es=He?He.prototype:void 0,eJ=Es?Es.valueOf:void 0;var Hh=Object.prototype,tJ=Hh.hasOwnProperty;var Zh=Object.prototype,rJ=Zh.hasOwnProperty;var iJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),nJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),oJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Qh(e){return e!==void 0}var zs=Qh;var Wh=typeof global=="object"&&global&&global.Object===Object&&global,Xs=Wh,Kh=typeof self=="object"&&self&&self.Object===Object&&self,Jh=Xs||Kh||Function("return this")(),J=Jh,Xh=J.Symbol,Xe=Xh,eu=Object.prototype,eb=eu.hasOwnProperty,tb=eu.toString,xr=Xe?Xe.toStringTag:void 0;function rb(e){var t=eb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=tb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var ib=rb,nb=Object.prototype,ob=nb.toString;function ab(e){return ob.call(e)}var lb=ab,sb="[object Null]",ub="[object Undefined]",Us=Xe?Xe.toStringTag:void 0;function cb(e){return e==null?e===void 0?ub:sb:Us&&Us in Object(e)?ib(e):lb(e)}var Sr=cb;function db(e){return e!=null&&typeof e=="object"}var Zo=db,lJ=Array.isArray;function pb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var tu=pb,gb="[object AsyncFunction]",fb="[object Function]",yb="[object GeneratorFunction]",mb="[object Proxy]";function hb(e){if(!tu(e))return!1;var t=Sr(e);return t==fb||t==yb||t==gb||t==mb}var bb=hb,vb=J["__core-js_shared__"],Ro=vb,Rs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wb(e){return!!Rs&&Rs in e}var kb=wb,xb=Function.prototype,Ib=xb.toString;function Ab(e){if(e!=null){try{return Ib.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Ab,Cb=/[\\^$.*+?()[\]{}|]/g,Sb=/^\[object .+?Constructor\]$/,Mb=Function.prototype,jb=Object.prototype,$b=Mb.toString,Eb=jb.hasOwnProperty,_b=RegExp("^"+$b.call(Eb).replace(Cb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tb(e){if(!tu(e)||kb(e))return!1;var t=bb(e)?_b:Sb;return t.test(Ee(e))}var Lb=Tb;function Ob(e,t){return e?.[t]}var Nb=Ob;function Db(e,t){var r=Nb(e,t);return Lb(r)?r:void 0}var et=Db,Pb=et(J,"WeakMap"),Bo=Pb;function zb(e,t){return e===t||e!==e&&t!==t}var Ub=zb,Rb=9007199254740991;function Fb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Rb}var Vb=Fb,sJ=Object.prototype,Bb="[object Arguments]";function qb(e){return Zo(e)&&Sr(e)==Bb}var Fs=qb,ru=Object.prototype,Gb=ru.hasOwnProperty,Yb=ru.propertyIsEnumerable,uJ=Fs(function(){return arguments}())?Fs:function(e){return Zo(e)&&Gb.call(e,"callee")&&!Yb.call(e,"callee")},iu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vs=iu&&typeof module=="object"&&module&&!module.nodeType&&module,Hb=Vs&&Vs.exports===iu,Bs=Hb?J.Buffer:void 0,cJ=Bs?Bs.isBuffer:void 0,Zb="[object Arguments]",Qb="[object Array]",Wb="[object Boolean]",Kb="[object Date]",Jb="[object Error]",Xb="[object Function]",e0="[object Map]",t0="[object Number]",r0="[object Object]",i0="[object RegExp]",n0="[object Set]",o0="[object String]",a0="[object WeakMap]",l0="[object ArrayBuffer]",s0="[object DataView]",u0="[object Float32Array]",c0="[object Float64Array]",d0="[object Int8Array]",p0="[object Int16Array]",g0="[object Int32Array]",f0="[object Uint8Array]",y0="[object Uint8ClampedArray]",m0="[object Uint16Array]",h0="[object Uint32Array]",L={};L[u0]=L[c0]=L[d0]=L[p0]=L[g0]=L[f0]=L[y0]=L[m0]=L[h0]=!0;L[Zb]=L[Qb]=L[l0]=L[Wb]=L[s0]=L[Kb]=L[Jb]=L[Xb]=L[e0]=L[t0]=L[r0]=L[i0]=L[n0]=L[o0]=L[a0]=!1;function b0(e){return Zo(e)&&Vb(e.length)&&!!L[Sr(e)]}var v0=b0;function w0(e){return function(t){return e(t)}}var k0=w0,nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=nu&&typeof module=="object"&&module&&!module.nodeType&&module,x0=Ir&&Ir.exports===nu,Fo=x0&&Xs.process,I0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Fo&&Fo.binding&&Fo.binding("util")}catch{}}(),qs=I0,Gs=qs&&qs.isTypedArray,dJ=Gs?k0(Gs):v0,A0=Object.prototype,pJ=A0.hasOwnProperty;function C0(e,t){return function(r){return e(t(r))}}var S0=C0,gJ=S0(Object.keys,Object),M0=Object.prototype,fJ=M0.hasOwnProperty,j0=et(Object,"create"),Ar=j0;function $0(){this.__data__=Ar?Ar(null):{},this.size=0}var E0=$0;function _0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var T0=_0,L0="__lodash_hash_undefined__",O0=Object.prototype,N0=O0.hasOwnProperty;function D0(e){var t=this.__data__;if(Ar){var r=t[e];return r===L0?void 0:r}return N0.call(t,e)?t[e]:void 0}var P0=D0,z0=Object.prototype,U0=z0.hasOwnProperty;function R0(e){var t=this.__data__;return Ar?t[e]!==void 0:U0.call(t,e)}var F0=R0,V0="__lodash_hash_undefined__";function B0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ar&&t===void 0?V0:t,this}var q0=B0;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=E0;tt.prototype.delete=T0;tt.prototype.get=P0;tt.prototype.has=F0;tt.prototype.set=q0;var Ys=tt;function G0(){this.__data__=[],this.size=0}var Y0=G0;function H0(e,t){for(var r=e.length;r--;)if(Ub(e[r][0],t))return r;return-1}var kn=H0,Z0=Array.prototype,Q0=Z0.splice;function W0(e){var t=this.__data__,r=kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Q0.call(t,r,1),--this.size,!0}var K0=W0;function J0(e){var t=this.__data__,r=kn(t,e);return r<0?void 0:t[r][1]}var X0=J0;function e2(e){return kn(this.__data__,e)>-1}var t2=e2;function r2(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 i2=r2;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=Y0;rt.prototype.delete=K0;rt.prototype.get=X0;rt.prototype.has=t2;rt.prototype.set=i2;var xn=rt,n2=et(J,"Map"),Cr=n2;function o2(){this.size=0,this.__data__={hash:new Ys,map:new(Cr||xn),string:new Ys}}var a2=o2;function l2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var s2=l2;function u2(e,t){var r=e.__data__;return s2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var In=u2;function c2(e){var t=In(this,e).delete(e);return this.size-=t?1:0,t}var d2=c2;function p2(e){return In(this,e).get(e)}var g2=p2;function f2(e){return In(this,e).has(e)}var y2=f2;function m2(e,t){var r=In(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h2=m2;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=a2;it.prototype.delete=d2;it.prototype.get=g2;it.prototype.has=y2;it.prototype.set=h2;var ou=it;function b2(){this.__data__=new xn,this.size=0}var v2=b2;function w2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var k2=w2;function x2(e){return this.__data__.get(e)}var I2=x2;function A2(e){return this.__data__.has(e)}var C2=A2,S2=200;function M2(e,t){var r=this.__data__;if(r instanceof xn){var i=r.__data__;if(!Cr||i.length<S2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ou(i)}return r.set(e,t),this.size=r.size,this}var j2=M2;function Mr(e){var t=this.__data__=new xn(e);this.size=t.size}Mr.prototype.clear=v2;Mr.prototype.delete=k2;Mr.prototype.get=I2;Mr.prototype.has=C2;Mr.prototype.set=j2;var $2=Object.prototype,yJ=$2.propertyIsEnumerable,E2=et(J,"DataView"),qo=E2,_2=et(J,"Promise"),Go=_2,T2=et(J,"Set"),Yo=T2,Hs="[object Map]",L2="[object Object]",Zs="[object Promise]",Qs="[object Set]",Ws="[object WeakMap]",Ks="[object DataView]",O2=Ee(qo),N2=Ee(Cr),D2=Ee(Go),P2=Ee(Yo),z2=Ee(Bo),Je=Sr;(qo&&Je(new qo(new ArrayBuffer(1)))!=Ks||Cr&&Je(new Cr)!=Hs||Go&&Je(Go.resolve())!=Zs||Yo&&Je(new Yo)!=Qs||Bo&&Je(new Bo)!=Ws)&&(Je=function(e){var t=Sr(e),r=t==L2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case O2:return Ks;case N2:return Hs;case D2:return Zs;case P2:return Qs;case z2:return Ws}return t});var mJ=J.Uint8Array,U2="__lodash_hash_undefined__";function R2(e){return this.__data__.set(e,U2),this}var F2=R2;function V2(e){return this.__data__.has(e)}var B2=V2;function Ho(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ou;++t<r;)this.add(e[t])}Ho.prototype.add=Ho.prototype.push=F2;Ho.prototype.has=B2;var Js=Xe?Xe.prototype:void 0,hJ=Js?Js.valueOf:void 0,q2=Object.prototype,bJ=q2.hasOwnProperty,G2=Object.prototype,vJ=G2.hasOwnProperty,wJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),kJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function au(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 An=class lu{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 lu),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 Y2="ly.img.ai";function su(e){return`${Y2}.${e}`}function uu(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
4
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Vo="@imgly/plugin-ai-generation",IJ=`
@@ -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 su={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var Z2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var Q2=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")}},W2=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)}},tc=W2,K2=typeof global=="object"&&global&&global.Object===Object&&global,rc=K2,J2=typeof self=="object"&&self&&self.Object===Object&&self,X2=rc||J2||Function("return this")(),X=X2,e4=X.Symbol,lt=e4,ic=Object.prototype,t4=ic.hasOwnProperty,r4=ic.toString,jr=lt?lt.toStringTag:void 0;function i4(e){var t=t4.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=r4.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var n4=i4,o4=Object.prototype,a4=o4.toString;function l4(e){return a4.call(e)}var s4=l4,u4="[object Null]",c4="[object Undefined]",uu=lt?lt.toStringTag:void 0;function d4(e){return e==null?e===void 0?c4:u4:uu&&uu in Object(e)?n4(e):s4(e)}var Br=d4;function p4(e){return e!=null&&typeof e=="object"}var ma=p4,SJ=Array.isArray;function g4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var nc=g4,f4="[object AsyncFunction]",y4="[object Function]",m4="[object GeneratorFunction]",h4="[object Proxy]";function b4(e){if(!nc(e))return!1;var t=Br(e);return t==y4||t==m4||t==f4||t==h4}var v4=b4,w4=X["__core-js_shared__"],Qo=w4,cu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function k4(e){return!!cu&&cu in e}var x4=k4,I4=Function.prototype,C4=I4.toString;function A4(e){if(e!=null){try{return C4.call(e)}catch{}try{return e+""}catch{}}return""}var Te=A4,S4=/[\\^$.*+?()[\]{}|]/g,M4=/^\[object .+?Constructor\]$/,j4=Function.prototype,$4=Object.prototype,E4=j4.toString,_4=$4.hasOwnProperty,T4=RegExp("^"+E4.call(_4).replace(S4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function L4(e){if(!nc(e)||x4(e))return!1;var t=v4(e)?T4:M4;return t.test(Te(e))}var O4=L4;function N4(e,t){return e?.[t]}var D4=N4;function P4(e,t){var r=D4(e,t);return O4(r)?r:void 0}var ut=P4,z4=ut(X,"WeakMap"),na=z4;function U4(e,t){return e===t||e!==e&&t!==t}var R4=U4,F4=9007199254740991;function V4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F4}var B4=V4,MJ=Object.prototype,q4="[object Arguments]";function G4(e){return ma(e)&&Br(e)==q4}var du=G4,oc=Object.prototype,Y4=oc.hasOwnProperty,H4=oc.propertyIsEnumerable,jJ=du(function(){return arguments}())?du:function(e){return ma(e)&&Y4.call(e,"callee")&&!H4.call(e,"callee")},ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pu=ac&&typeof module=="object"&&module&&!module.nodeType&&module,Z4=pu&&pu.exports===ac,gu=Z4?X.Buffer:void 0,$J=gu?gu.isBuffer:void 0,Q4="[object Arguments]",W4="[object Array]",K4="[object Boolean]",J4="[object Date]",X4="[object Error]",e5="[object Function]",t5="[object Map]",r5="[object Number]",i5="[object Object]",n5="[object RegExp]",o5="[object Set]",a5="[object String]",l5="[object WeakMap]",s5="[object ArrayBuffer]",u5="[object DataView]",c5="[object Float32Array]",d5="[object Float64Array]",p5="[object Int8Array]",g5="[object Int16Array]",f5="[object Int32Array]",y5="[object Uint8Array]",m5="[object Uint8ClampedArray]",h5="[object Uint16Array]",b5="[object Uint32Array]",O={};O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=O[h5]=O[b5]=!0;O[Q4]=O[W4]=O[s5]=O[K4]=O[u5]=O[J4]=O[X4]=O[e5]=O[t5]=O[r5]=O[i5]=O[n5]=O[o5]=O[a5]=O[l5]=!1;function v5(e){return ma(e)&&B4(e.length)&&!!O[Br(e)]}var w5=v5;function k5(e){return function(t){return e(t)}}var x5=k5,lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=lc&&typeof module=="object"&&module&&!module.nodeType&&module,I5=Dr&&Dr.exports===lc,Wo=I5&&rc.process,C5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),fu=C5,yu=fu&&fu.isTypedArray,EJ=yu?x5(yu):w5,A5=Object.prototype,_J=A5.hasOwnProperty;function S5(e,t){return function(r){return e(t(r))}}var M5=S5,TJ=M5(Object.keys,Object),j5=Object.prototype,LJ=j5.hasOwnProperty,$5=ut(Object,"create"),zr=$5;function E5(){this.__data__=zr?zr(null):{},this.size=0}var _5=E5;function T5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var L5=T5,O5="__lodash_hash_undefined__",N5=Object.prototype,D5=N5.hasOwnProperty;function P5(e){var t=this.__data__;if(zr){var r=t[e];return r===O5?void 0:r}return D5.call(t,e)?t[e]:void 0}var z5=P5,U5=Object.prototype,R5=U5.hasOwnProperty;function F5(e){var t=this.__data__;return zr?t[e]!==void 0:R5.call(t,e)}var V5=F5,B5="__lodash_hash_undefined__";function q5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?B5:t,this}var G5=q5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=_5;ct.prototype.delete=L5;ct.prototype.get=z5;ct.prototype.has=V5;ct.prototype.set=G5;var mu=ct;function Y5(){this.__data__=[],this.size=0}var H5=Y5;function Z5(e,t){for(var r=e.length;r--;)if(R4(e[r][0],t))return r;return-1}var Ln=Z5,Q5=Array.prototype,W5=Q5.splice;function K5(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():W5.call(t,r,1),--this.size,!0}var J5=K5;function X5(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var e9=X5;function t9(e){return Ln(this.__data__,e)>-1}var r9=t9;function i9(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 n9=i9;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=H5;dt.prototype.delete=J5;dt.prototype.get=e9;dt.prototype.has=r9;dt.prototype.set=n9;var On=dt,o9=ut(X,"Map"),Ur=o9;function a9(){this.size=0,this.__data__={hash:new mu,map:new(Ur||On),string:new mu}}var l9=a9;function s9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var u9=s9;function c9(e,t){var r=e.__data__;return u9(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=c9;function d9(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var p9=d9;function g9(e){return Nn(this,e).get(e)}var f9=g9;function y9(e){return Nn(this,e).has(e)}var m9=y9;function h9(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var b9=h9;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=l9;pt.prototype.delete=p9;pt.prototype.get=f9;pt.prototype.has=m9;pt.prototype.set=b9;var sc=pt;function v9(){this.__data__=new On,this.size=0}var w9=v9;function k9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var x9=k9;function I9(e){return this.__data__.get(e)}var C9=I9;function A9(e){return this.__data__.has(e)}var S9=A9,M9=200;function j9(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<M9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new sc(i)}return r.set(e,t),this.size=r.size,this}var $9=j9;function qr(e){var t=this.__data__=new On(e);this.size=t.size}qr.prototype.clear=w9;qr.prototype.delete=x9;qr.prototype.get=C9;qr.prototype.has=S9;qr.prototype.set=$9;var E9=Object.prototype,OJ=E9.propertyIsEnumerable,_9=ut(X,"DataView"),oa=_9,T9=ut(X,"Promise"),aa=T9,L9=ut(X,"Set"),la=L9,hu="[object Map]",O9="[object Object]",bu="[object Promise]",vu="[object Set]",wu="[object WeakMap]",ku="[object DataView]",N9=Te(oa),D9=Te(Ur),P9=Te(aa),z9=Te(la),U9=Te(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=ku||Ur&&nt(new Ur)!=hu||aa&&nt(aa.resolve())!=bu||la&&nt(new la)!=vu||na&&nt(new na)!=wu)&&(nt=function(e){var t=Br(e),r=t==O9?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case N9:return ku;case D9:return hu;case P9:return bu;case z9:return vu;case U9:return wu}return t});var NJ=X.Uint8Array,R9="__lodash_hash_undefined__";function F9(e){return this.__data__.set(e,R9),this}var V9=F9;function B9(e){return this.__data__.has(e)}var q9=B9;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new sc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=V9;sa.prototype.has=q9;var xu=lt?lt.prototype:void 0,DJ=xu?xu.valueOf:void 0,G9=Object.prototype,PJ=G9.hasOwnProperty,Y9=Object.prototype,zJ=Y9.hasOwnProperty,UJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),RJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),FJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function uc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ua(e,t){let r=await uc(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 H9(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 uc(i,t)}function Z9(e){return e!==void 0}var Dn=Z9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Yr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ha=class cc{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 cc),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))}},dc=class pc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new pc),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 Q9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function W9({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 K9=W9,Ko="ly.img.ai.temp";async function J9(e,t){return e.engine.asset.findAllSources().includes(Ko)||e.engine.asset.addLocalSource(Ko),e.engine.asset.apply(Ko,t)}function X9(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 gc(){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 e3(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 t3(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 ba(e){return e instanceof Error&&e.name==="AbortError"}function r3(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function i3(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 AJ=5*60*1e3;var cu={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 Z2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var Q2=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")}},W2=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)}},rc=W2,K2=typeof global=="object"&&global&&global.Object===Object&&global,ic=K2,J2=typeof self=="object"&&self&&self.Object===Object&&self,X2=ic||J2||Function("return this")(),X=X2,e4=X.Symbol,lt=e4,nc=Object.prototype,t4=nc.hasOwnProperty,r4=nc.toString,jr=lt?lt.toStringTag:void 0;function i4(e){var t=t4.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=r4.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var n4=i4,o4=Object.prototype,a4=o4.toString;function l4(e){return a4.call(e)}var s4=l4,u4="[object Null]",c4="[object Undefined]",du=lt?lt.toStringTag:void 0;function d4(e){return e==null?e===void 0?c4:u4:du&&du in Object(e)?n4(e):s4(e)}var Br=d4;function p4(e){return e!=null&&typeof e=="object"}var ha=p4,MJ=Array.isArray;function g4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var oc=g4,f4="[object AsyncFunction]",y4="[object Function]",m4="[object GeneratorFunction]",h4="[object Proxy]";function b4(e){if(!oc(e))return!1;var t=Br(e);return t==y4||t==m4||t==f4||t==h4}var v4=b4,w4=X["__core-js_shared__"],Qo=w4,pu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function k4(e){return!!pu&&pu in e}var x4=k4,I4=Function.prototype,A4=I4.toString;function C4(e){if(e!=null){try{return A4.call(e)}catch{}try{return e+""}catch{}}return""}var Te=C4,S4=/[\\^$.*+?()[\]{}|]/g,M4=/^\[object .+?Constructor\]$/,j4=Function.prototype,$4=Object.prototype,E4=j4.toString,_4=$4.hasOwnProperty,T4=RegExp("^"+E4.call(_4).replace(S4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function L4(e){if(!oc(e)||x4(e))return!1;var t=v4(e)?T4:M4;return t.test(Te(e))}var O4=L4;function N4(e,t){return e?.[t]}var D4=N4;function P4(e,t){var r=D4(e,t);return O4(r)?r:void 0}var ut=P4,z4=ut(X,"WeakMap"),na=z4;function U4(e,t){return e===t||e!==e&&t!==t}var R4=U4,F4=9007199254740991;function V4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F4}var B4=V4,jJ=Object.prototype,q4="[object Arguments]";function G4(e){return ha(e)&&Br(e)==q4}var gu=G4,ac=Object.prototype,Y4=ac.hasOwnProperty,H4=ac.propertyIsEnumerable,$J=gu(function(){return arguments}())?gu:function(e){return ha(e)&&Y4.call(e,"callee")&&!H4.call(e,"callee")},lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fu=lc&&typeof module=="object"&&module&&!module.nodeType&&module,Z4=fu&&fu.exports===lc,yu=Z4?X.Buffer:void 0,EJ=yu?yu.isBuffer:void 0,Q4="[object Arguments]",W4="[object Array]",K4="[object Boolean]",J4="[object Date]",X4="[object Error]",e5="[object Function]",t5="[object Map]",r5="[object Number]",i5="[object Object]",n5="[object RegExp]",o5="[object Set]",a5="[object String]",l5="[object WeakMap]",s5="[object ArrayBuffer]",u5="[object DataView]",c5="[object Float32Array]",d5="[object Float64Array]",p5="[object Int8Array]",g5="[object Int16Array]",f5="[object Int32Array]",y5="[object Uint8Array]",m5="[object Uint8ClampedArray]",h5="[object Uint16Array]",b5="[object Uint32Array]",O={};O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=O[h5]=O[b5]=!0;O[Q4]=O[W4]=O[s5]=O[K4]=O[u5]=O[J4]=O[X4]=O[e5]=O[t5]=O[r5]=O[i5]=O[n5]=O[o5]=O[a5]=O[l5]=!1;function v5(e){return ha(e)&&B4(e.length)&&!!O[Br(e)]}var w5=v5;function k5(e){return function(t){return e(t)}}var x5=k5,sc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=sc&&typeof module=="object"&&module&&!module.nodeType&&module,I5=Dr&&Dr.exports===sc,Wo=I5&&ic.process,A5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),mu=A5,hu=mu&&mu.isTypedArray,_J=hu?x5(hu):w5,C5=Object.prototype,TJ=C5.hasOwnProperty;function S5(e,t){return function(r){return e(t(r))}}var M5=S5,LJ=M5(Object.keys,Object),j5=Object.prototype,OJ=j5.hasOwnProperty,$5=ut(Object,"create"),zr=$5;function E5(){this.__data__=zr?zr(null):{},this.size=0}var _5=E5;function T5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var L5=T5,O5="__lodash_hash_undefined__",N5=Object.prototype,D5=N5.hasOwnProperty;function P5(e){var t=this.__data__;if(zr){var r=t[e];return r===O5?void 0:r}return D5.call(t,e)?t[e]:void 0}var z5=P5,U5=Object.prototype,R5=U5.hasOwnProperty;function F5(e){var t=this.__data__;return zr?t[e]!==void 0:R5.call(t,e)}var V5=F5,B5="__lodash_hash_undefined__";function q5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?B5:t,this}var G5=q5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=_5;ct.prototype.delete=L5;ct.prototype.get=z5;ct.prototype.has=V5;ct.prototype.set=G5;var bu=ct;function Y5(){this.__data__=[],this.size=0}var H5=Y5;function Z5(e,t){for(var r=e.length;r--;)if(R4(e[r][0],t))return r;return-1}var Ln=Z5,Q5=Array.prototype,W5=Q5.splice;function K5(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():W5.call(t,r,1),--this.size,!0}var J5=K5;function X5(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var ev=X5;function tv(e){return Ln(this.__data__,e)>-1}var rv=tv;function iv(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 nv=iv;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=H5;dt.prototype.delete=J5;dt.prototype.get=ev;dt.prototype.has=rv;dt.prototype.set=nv;var On=dt,ov=ut(X,"Map"),Ur=ov;function av(){this.size=0,this.__data__={hash:new bu,map:new(Ur||On),string:new bu}}var lv=av;function sv(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var uv=sv;function cv(e,t){var r=e.__data__;return uv(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=cv;function dv(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var pv=dv;function gv(e){return Nn(this,e).get(e)}var fv=gv;function yv(e){return Nn(this,e).has(e)}var mv=yv;function hv(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var bv=hv;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=lv;pt.prototype.delete=pv;pt.prototype.get=fv;pt.prototype.has=mv;pt.prototype.set=bv;var uc=pt;function vv(){this.__data__=new On,this.size=0}var wv=vv;function kv(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xv=kv;function Iv(e){return this.__data__.get(e)}var Av=Iv;function Cv(e){return this.__data__.has(e)}var Sv=Cv,Mv=200;function jv(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<Mv-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new uc(i)}return r.set(e,t),this.size=r.size,this}var $v=jv;function qr(e){var t=this.__data__=new On(e);this.size=t.size}qr.prototype.clear=wv;qr.prototype.delete=xv;qr.prototype.get=Av;qr.prototype.has=Sv;qr.prototype.set=$v;var Ev=Object.prototype,NJ=Ev.propertyIsEnumerable,_v=ut(X,"DataView"),oa=_v,Tv=ut(X,"Promise"),aa=Tv,Lv=ut(X,"Set"),la=Lv,vu="[object Map]",Ov="[object Object]",wu="[object Promise]",ku="[object Set]",xu="[object WeakMap]",Iu="[object DataView]",Nv=Te(oa),Dv=Te(Ur),Pv=Te(aa),zv=Te(la),Uv=Te(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=Iu||Ur&&nt(new Ur)!=vu||aa&&nt(aa.resolve())!=wu||la&&nt(new la)!=ku||na&&nt(new na)!=xu)&&(nt=function(e){var t=Br(e),r=t==Ov?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case Nv:return Iu;case Dv:return vu;case Pv:return wu;case zv:return ku;case Uv:return xu}return t});var DJ=X.Uint8Array,Rv="__lodash_hash_undefined__";function Fv(e){return this.__data__.set(e,Rv),this}var Vv=Fv;function Bv(e){return this.__data__.has(e)}var qv=Bv;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new uc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=Vv;sa.prototype.has=qv;var Au=lt?lt.prototype:void 0,PJ=Au?Au.valueOf:void 0,Gv=Object.prototype,zJ=Gv.hasOwnProperty,Yv=Object.prototype,UJ=Yv.hasOwnProperty,RJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),FJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),VJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function cc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ua(e,t){let r=await cc(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 Hv(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 cc(i,t)}function Zv(e){return e!==void 0}var Dn=Zv;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Yr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ba=class dc{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 dc),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))}},pc=class gc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new gc),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 Qv(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Wv({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 Kv=Wv,Ko="ly.img.ai.temp";async function Jv(e,t){return e.engine.asset.findAllSources().includes(Ko)||e.engine.asset.addLocalSource(Ko),e.engine.asset.apply(Ko,t)}function Xv(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 fc(){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 e9(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 t9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function va(e){return e instanceof Error&&e.name==="AbortError"}function r9(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!
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 n3(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 o3=n3;function a3(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Hr=a3;function l3(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),s3(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:X9(e)}))}function s3(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Iu=l3,u3="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",va=u3;function c3(e,t,r){switch(t){case"image":return d3(e,r[t]);case"video":return p3(e,r[t]);case"sticker":return g3(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function d3(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:va,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function p3(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:va,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function g3(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:va,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var f3=c3;async function y3(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 m3(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 h3(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 b3(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 v3(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m3(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 h3(e,t,r){let i=t.width,n=t.height,a=await e3(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 b3(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 v3(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 fc=y3;function w3(e){switch(e.userFlow){case"placeholder":return x3(e);case"generation-only":return k3(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function k3(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=gc(),c=await fc(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 x3(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=gc(),c=f3(s,a,o);if(i=await J9(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 fc(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)&&(ba(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 I3=w3;function wa(e){return`${e}.generating`}function C3(e){return`${e}.abort`}function A3(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(C3(d),()=>{}),y=c.global(wa(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.some(h=>!x.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await I3({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(h.status==="aborted")return;if(h.status==="error"){Iu(h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let I=t.output.notification;S3(l,I,()=>({input:i().input,output:h.output}))}}catch(h){if(ba(h))return;Iu(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function S3(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 yc=A3;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function M3({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(wa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return yc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var j3=M3;function mc(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 Lr(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=mc(e,t.$ref),n={...Lr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Lr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Lr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Lr(e,t[n],r));return i}return t}function $3(e){return Lr(e,{...e})}function E3(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function _3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return T3(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function T3(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 hc=_3;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function bc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function vc(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?O3(e,c,r,i,n,a,o,s):wc(e,c,r,i,n,a,o,s);case"boolean":return kc(e,c,r,i,n,a,o,s);case"number":case"integer":return xc(e,c,r,i,n,a,o,s);case"object":return ca(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return N3(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ca(e,t,r,i,n,a,o,s){let c=hc(t.schema??{},i).reduce((l,u)=>{let d=vc(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 wc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Yr(d,m,f,t.schema.default,""),k=l(p,b),w=D3(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function O3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:y,icons:f}=bc(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),b=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,b,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],h=l(p,x);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function xc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,b,m,k,k),x=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function N3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=bc(t.schema),x=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],I={string:wc,boolean:kc,integer:xc,object:ca},S=(v,$)=>v.$ref?v.$ref.split("/").pop():$.split(".").pop()??$,A=(v,$)=>({id:v,label:me(t,r,o,$),icon:w[$]??w[v]});y.forEach((v,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(v.$ref||v.title){let M=v.$ref?v.$ref.split("/").pop():v.title;m[C]=()=>ca(e,{id:C,schema:{...v,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(v.type==="string"&&v.enum)v.enum.forEach(M=>{f.push(A(M,M))});else if(v.type&&I[v.type]){let M=I[v.type];m[C]=()=>M(e,{id:C,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=S(v,C);f.push(v.type==="string"&&!v.enum?{id:C,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:A(C,q))}});let _=Yr(d,h,x,t.schema.default,null),j=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function D3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var P3=vc,z3={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Au(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Cu(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Cu(g);n[a(l.id,g)]=y}})}});let c={...z3,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function Su(e){return typeof e.document=="function"?e.document():e.document}function Mu(e,t,r){let i=$3(e),n=mc(i,t.inputReference);if(!E3(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=hc(a,t);return{inputSchema:a,properties:o}}function ju(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=P3(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];yc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function U3(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Su(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Mu(c,s,a.debug);return Au(y,i,r,i.kind),ju(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Su(s)).then(g=>{let{inputSchema:y,properties:f}=Mu(g,s,a.debug);Au(f,i,r,i.kind),u=ju(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var R3=U3;async function F3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return j3(e,t);case"schema":return R3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var V3=F3;function B3(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 Z2(o,r)),o}return i}var q3=B3;function G3(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 Y3=G3,Jo="@imgly/plugin-ai-generation",H3=`
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 n9(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 o9=n9;function a9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Hr=a9;function l9(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:Xv(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,duration:i.duration}),!0}var ca=l9,u9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",wa=u9;function c9(e,t,r){switch(t){case"image":return d9(e,r[t]);case"video":return p9(e,r[t]);case"sticker":return g9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function d9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:wa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function p9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:wa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function g9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:wa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var f9=c9;async function y9(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 m9(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 h9(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 b9(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 v9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m9(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 h9(e,t,r){let i=t.width,n=t.height,a=await e9(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 b9(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 v9(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 yc=y9;function w9(e){switch(e.userFlow){case"placeholder":return x9(e);case"generation-only":return k9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function k9(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=fc(),c=await yc(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),error:n}}}}function x9(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=fc(),c=f9(s,a,o);if(i=await Jv(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 i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?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 yc(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)&&(va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var I9=w9;function ka(e){return`${e}.generating`}function A9(e){return`${e}.abort`}function C9(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(A9(d),()=>{}),y=c.global(ka(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await I9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){ca(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;S9(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(va(h))return;ca(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function S9(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 mc=C9;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function M9({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(ka(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return mc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var j9=M9;function hc(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 Lr(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=hc(e,t.$ref),n={...Lr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Lr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Lr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Lr(e,t[n],r));return i}return t}function $9(e){return Lr(e,{...e})}function E9(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 _9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return T9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function T9(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=L9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function L9(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 bc=_9;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 vc(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 wc(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?O9(e,c,r,i,n,a,o,s):kc(e,c,r,i,n,a,o,s);case"boolean":return xc(e,c,r,i,n,a,o,s);case"number":case"integer":return Ic(e,c,r,i,n,a,o,s);case"object":return da(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 N9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function da(e,t,r,i,n,a,o,s){let c=bc(t.schema??{},i).reduce((l,u)=>{let d=wc(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 kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Yr(d,m,f,t.schema.default,""),k=l(p,b),w=D9(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function O9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:y,icons:f}=vc(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:me(t,r,o,x),icon:f[x]})),b=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function xc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}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=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function N9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=vc(t.schema),I=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:kc,boolean:xc,integer:Ic,object:da},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:me(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>da(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=Yr(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function D9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var P9=wc,z9={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Su(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Cu(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Cu(g);n[a(l.id,g)]=y}})}});let c={...z9,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function Mu(e){return typeof e.document=="function"?e.document():e.document}function ju(e,t,r){let i=$9(e),n=hc(i,t.inputReference);if(!E9(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=bc(a,t);return{inputSchema:a,properties:o}}function $u(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=P9(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];mc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function U9(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Mu(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=ju(c,s,a.debug);return Su(y,i,r,i.kind),$u(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Mu(s)).then(g=>{let{inputSchema:y,properties:f}=ju(g,s,a.debug);Su(f,i,r,i.kind),u=$u(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var R9=U9;async function F9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return j9(e,t);case"schema":return R9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var V9=F9;function B9(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 Z2(o,r)),o}return i}var q9=B9;function G9(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 Y9=G9,Jo="@imgly/plugin-ai-generation",H9=`
69
69
  <svg>
70
70
  <symbol
71
71
  fill="none"
@@ -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
- `,Z3=H3;function Q3(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 Ic(2e3),await W3(t,e,r)):i(t,r)}async function W3(e,t,r){switch(t.kind){case"image":return K3(e,t,r);case"video":return J3(e,t,r);case"text":return X3(e,t,r);case"audio":return tv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function K3(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 H9(s,r),l=await ua(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
- `,"+")}`}}async function J3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function X3(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 ev(a,r.abortSignal)}async function*ev(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 Ic(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 tv(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:rv(220,i),duration:i,thumbnailUrl:void 0}}function rv(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 iv(i,44100)}function iv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Ic(e){return new Promise(t=>{setTimeout(t,e)})}var nv=Q3,Cc="USER_CANCEL";function ov(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Q9([...e.provider.output.middleware??[],...r?.middlewares??[],K9({enable:r?.debug}),nv({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}:t3(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ba(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Cc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var av=ov;async function lv(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=ha.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=q3(a),s=Y3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=av({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await V3(a,c);r3(r.cesdk,"@imgly/plugin-ai-generation",Z3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return dc.get().register(u),u}var Xo=lv;function sv(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 Q2(n,r,i);return r.engine.asset.addSource(a),a.id}var uv=sv;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 cv(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Xo(e,u,r,i)));o.push(...l),a=pv({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Xo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Xo(e,d,r,i)));o.push(...u),a=dv({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=uv({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Dn)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function dv({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(C=>C.id===w.value)??b[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?h:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,$=m.length>1&&j;if((v||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&$u(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&$u(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function pv({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:Rr(p),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 $u(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(wa(r.id),!1).value)}var gv=cv,Pn="ly.img.ai.editMode",Ac="ly.img.ai.metadata";async function fv(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 tc(n,Ac),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var yv=fv;function mv(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 hv=mv;function bv(e){return`ly.img.ai.${e}.canvasMenu`}var vv=bv;function wv(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Eu(e){let t=[];for(let r of e){let i=wv(r);i!=null&&t.push(i)}return t}function kv(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=vv(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)?Eu(o.children):n??[]}return Eu(i.children)}var xv=kv;function Iv(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 Cv(e,t);case"image":return Av(e,t);case"video":return Sv(e,t);case"audio":return Mv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Cv(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 Av(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ua(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,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 w=e.output.url,x=await ua(w,t.cesdk.engine),h=x.width/x.height,I=Math.abs(p-h)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function Sv(e,t){throw new Error("Function not implemented.")}async function Mv(e,t){throw new Error("Function not implemented.")}var jv=Iv;function $v(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 Ev=$v,_v=class Sc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Sc),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=_v;function Tv(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Dn)),c=new tc(e.cesdk.engine,Ac),l=e.lock??!0?Ev({engine:e.cesdk.engine,editModeToLockTo:Pn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(Cc),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 jv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var _u=Tv;function Lv(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Pn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=xv({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=Ov(s).filter(h=>{if(h==="ly.img.separator")return!0;let I=h.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=h.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,I)=>{if(I.provider.kind!==e.kind)return h;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=dc.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(Dn);return S=hv(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||h.push({providerInitializationResult:I,quickActions:S}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(S=>{let A=S.definition.id;h.has(A)||h.set(A,S)});let I=Array.from(h.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Rr(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),x=async(h,I,S)=>{k.setValue(!0);try{return await S(h,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let I=g?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Rr(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:_u({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:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:_u({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function Ov(e){return e.map(t=>t==="ly.img.separator"?t:ha.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var Nv=Lv;async function Dv(e){let t=await Nv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await yv({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Pn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Pv=Dv,zv="@imgly/plugin-ai-image-generation",Uv=`
129
+ `,Z9=H9;function Q9(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 W9(t,e,r)):i(t,r)}async function W9(e,t,r){switch(t.kind){case"image":return K9(e,t,r);case"video":return J9(e,t,r);case"text":return X9(e,t,r);case"audio":return t3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function K9(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 Hv(s,r),l=await ua(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
+ `,"+")}`}}async function J9(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function X9(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 e3(a,r.abortSignal)}async function*e3(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 $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 t3(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:r3(220,i),duration:i,thumbnailUrl:void 0}}function r3(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 i3(i,44100)}function i3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Ac(e){return new Promise(t=>{setTimeout(t,e)})}var n3=Q9,Cc="USER_CANCEL";function o3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Qv([...e.provider.output.middleware??[],...r?.middlewares??[],Kv({enable:r?.debug}),n3({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,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:t9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return va(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Cc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var a3=o3;async function l3(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=ba.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=q9(a),s=Y9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=a3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await V9(a,c);r9(r.cesdk,"@imgly/plugin-ai-generation",Z9);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return pc.get().register(u),u}var Xo=l3;function s3(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 Q2(n,r,i);return r.engine.asset.addSource(a),a.id}var u3=s3;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 c3(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Xo(e,u,r,i)));o.push(...l),a=p3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Xo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Xo(e,d,r,i)));o.push(...u),a=d3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=u3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Dn)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function d3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Rr(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Rr(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&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"&&Eu(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"&&Eu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function p3({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:Rr(p),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 Eu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ka(r.id),!1).value)}var g3=c3,Pn="ly.img.ai.editMode",Sc="ly.img.ai.metadata";async function f3(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 rc(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 y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var y3=f3;function m3(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 h3=m3;function b3(e){return`ly.img.ai.${e}.canvasMenu`}var v3=b3;function w3(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function _u(e){let t=[];for(let r of e){let i=w3(r);i!=null&&t.push(i)}return t}function k3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=v3(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)?_u(o.children):n??[]}return _u(i.children)}var x3=k3;function I3(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 A3(e,t);case"image":return C3(e,t);case"video":return S3(e,t);case"audio":return M3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function A3(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 C3(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=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await ua(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),b=r.engine.block.getCropTranslationX(a),k=r.engine.block.getCropTranslationY(a),w=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,b),r.engine.block.setCropTranslationY(a,k),r.engine.block.setCropRotation(a,w),r.engine.block.setContentFillMode(a,d)};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 h=e.output.url,x=await ua(h,t.cesdk.engine),M=x.width/x.height,C=Math.abs(y-M)>.001,_=c?[{uri:h,width:x.width,height:x.height}]:void 0,$=h,E=()=>{_==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",_)),r.engine.block.setString(o,"fill/image/previewFileURI","")};E(),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):I();let v=()=>{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),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{E(),C?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:v,onAfter:j,onCancel:()=>{v()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function S3(e,t){throw new Error("Function not implemented.")}async function M3(e,t){throw new Error("Function not implemented.")}var j3=I3;function $3(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 E3=$3,_3=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)??{}}},_e=_3;function T3(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Dn)),c=new rc(e.cesdk.engine,Sc),l=e.lock??!0?E3({engine:e.cesdk.engine,editModeToLockTo:Pn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(Cc),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 j3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),ca(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),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 Tu=T3;function L3(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Pn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=x3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=O3(s).filter(h=>{if(h==="ly.img.separator")return!0;let x=h.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let C=h.scopes;if(C!=null&&C.length>0&&!n.every(_=>C.every($=>e.engine.block.isAllowedByScope(_,$))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,x)=>{if(x.provider.kind!==e.kind)return h;let M=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let _=pc.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[C.id]!=null);if(_!=null){let $={definition:C,providerInitializationResult:_};return l.push($),$}else return}}).filter(Dn);return M=h3(M),M.length===0||M.every(C=>C==="ly.img.separator")||M.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||h.push({providerInitializationResult:x,quickActions:M}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(M=>{let C=M.definition.id;h.has(C)||h.set(C,M)});let x=Array.from(h.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Rr(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),I=async(h,x,M)=>{k.setValue(!0);try{return await M(h,x)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===w.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(E=>E!=="ly.img.separator"&&E.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Rr($.provider)})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(C,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Tu({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{w.setValue(C.definition.id)},isExpanded:!1,generate:Tu({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function O3(e){return e.map(t=>t==="ly.img.separator"?t:ba.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var N3=L3;async function D3(e){let t=await N3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await y3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Pn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var P3=D3,BJ=5*60*1e3,z3="@imgly/plugin-ai-image-generation",U3=`
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
- `,Rv=Uv,Fv=typeof global=="object"&&global&&global.Object===Object&&global,Mc=Fv,Vv=typeof self=="object"&&self&&self.Object===Object&&self,Bv=Mc||Vv||Function("return this")(),ee=Bv,qv=ee.Symbol,st=qv,jc=Object.prototype,Gv=jc.hasOwnProperty,Yv=jc.toString,Er=st?st.toStringTag:void 0;function Hv(e){var t=Gv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=Yv.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var Zv=Hv,Qv=Object.prototype,Wv=Qv.toString;function Kv(e){return Wv.call(e)}var Jv=Kv,Xv="[object Null]",e7="[object Undefined]",Tu=st?st.toStringTag:void 0;function t7(e){return e==null?e===void 0?e7:Xv:Tu&&Tu in Object(e)?Zv(e):Jv(e)}var Zr=t7;function r7(e){return e!=null&&typeof e=="object"}var ka=r7,VJ=Array.isArray;function i7(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $c=i7,n7="[object AsyncFunction]",o7="[object Function]",a7="[object GeneratorFunction]",l7="[object Proxy]";function s7(e){if(!$c(e))return!1;var t=Zr(e);return t==o7||t==a7||t==n7||t==l7}var u7=s7,c7=ee["__core-js_shared__"],ea=c7,Lu=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function d7(e){return!!Lu&&Lu in e}var p7=d7,g7=Function.prototype,f7=g7.toString;function y7(e){if(e!=null){try{return f7.call(e)}catch{}try{return e+""}catch{}}return""}var Le=y7,m7=/[\\^$.*+?()[\]{}|]/g,h7=/^\[object .+?Constructor\]$/,b7=Function.prototype,v7=Object.prototype,w7=b7.toString,k7=v7.hasOwnProperty,x7=RegExp("^"+w7.call(k7).replace(m7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function I7(e){if(!$c(e)||p7(e))return!1;var t=u7(e)?x7:h7;return t.test(Le(e))}var C7=I7;function A7(e,t){return e?.[t]}var S7=A7;function M7(e,t){var r=S7(e,t);return C7(r)?r:void 0}var gt=M7,j7=gt(ee,"WeakMap"),da=j7;function $7(e,t){return e===t||e!==e&&t!==t}var E7=$7,_7=9007199254740991;function T7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_7}var L7=T7,BJ=Object.prototype,O7="[object Arguments]";function N7(e){return ka(e)&&Zr(e)==O7}var Ou=N7,Ec=Object.prototype,D7=Ec.hasOwnProperty,P7=Ec.propertyIsEnumerable,qJ=Ou(function(){return arguments}())?Ou:function(e){return ka(e)&&D7.call(e,"callee")&&!P7.call(e,"callee")},_c=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nu=_c&&typeof module=="object"&&module&&!module.nodeType&&module,z7=Nu&&Nu.exports===_c,Du=z7?ee.Buffer:void 0,GJ=Du?Du.isBuffer:void 0,U7="[object Arguments]",R7="[object Array]",F7="[object Boolean]",V7="[object Date]",B7="[object Error]",q7="[object Function]",G7="[object Map]",Y7="[object Number]",H7="[object Object]",Z7="[object RegExp]",Q7="[object Set]",W7="[object String]",K7="[object WeakMap]",J7="[object ArrayBuffer]",X7="[object DataView]",e8="[object Float32Array]",t8="[object Float64Array]",r8="[object Int8Array]",i8="[object Int16Array]",n8="[object Int32Array]",o8="[object Uint8Array]",a8="[object Uint8ClampedArray]",l8="[object Uint16Array]",s8="[object Uint32Array]",N={};N[e8]=N[t8]=N[r8]=N[i8]=N[n8]=N[o8]=N[a8]=N[l8]=N[s8]=!0;N[U7]=N[R7]=N[J7]=N[F7]=N[X7]=N[V7]=N[B7]=N[q7]=N[G7]=N[Y7]=N[H7]=N[Z7]=N[Q7]=N[W7]=N[K7]=!1;function u8(e){return ka(e)&&L7(e.length)&&!!N[Zr(e)]}var c8=u8;function d8(e){return function(t){return e(t)}}var p8=d8,Tc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Tc&&typeof module=="object"&&module&&!module.nodeType&&module,g8=Pr&&Pr.exports===Tc,ta=g8&&Mc.process,f8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ta&&ta.binding&&ta.binding("util")}catch{}}(),Pu=f8,zu=Pu&&Pu.isTypedArray,YJ=zu?p8(zu):c8,y8=Object.prototype,HJ=y8.hasOwnProperty;function m8(e,t){return function(r){return e(t(r))}}var h8=m8,ZJ=h8(Object.keys,Object),b8=Object.prototype,QJ=b8.hasOwnProperty,v8=gt(Object,"create"),Fr=v8;function w8(){this.__data__=Fr?Fr(null):{},this.size=0}var k8=w8;function x8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var I8=x8,C8="__lodash_hash_undefined__",A8=Object.prototype,S8=A8.hasOwnProperty;function M8(e){var t=this.__data__;if(Fr){var r=t[e];return r===C8?void 0:r}return S8.call(t,e)?t[e]:void 0}var j8=M8,$8=Object.prototype,E8=$8.hasOwnProperty;function _8(e){var t=this.__data__;return Fr?t[e]!==void 0:E8.call(t,e)}var T8=_8,L8="__lodash_hash_undefined__";function O8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?L8:t,this}var N8=O8;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=k8;ft.prototype.delete=I8;ft.prototype.get=j8;ft.prototype.has=T8;ft.prototype.set=N8;var Uu=ft;function D8(){this.__data__=[],this.size=0}var P8=D8;function z8(e,t){for(var r=e.length;r--;)if(E7(e[r][0],t))return r;return-1}var zn=z8,U8=Array.prototype,R8=U8.splice;function F8(e){var t=this.__data__,r=zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():R8.call(t,r,1),--this.size,!0}var V8=F8;function B8(e){var t=this.__data__,r=zn(t,e);return r<0?void 0:t[r][1]}var q8=B8;function G8(e){return zn(this.__data__,e)>-1}var Y8=G8;function H8(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 Z8=H8;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=P8;yt.prototype.delete=V8;yt.prototype.get=q8;yt.prototype.has=Y8;yt.prototype.set=Z8;var Un=yt,Q8=gt(ee,"Map"),Vr=Q8;function W8(){this.size=0,this.__data__={hash:new Uu,map:new(Vr||Un),string:new Uu}}var K8=W8;function J8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var X8=J8;function e6(e,t){var r=e.__data__;return X8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rn=e6;function t6(e){var t=Rn(this,e).delete(e);return this.size-=t?1:0,t}var r6=t6;function i6(e){return Rn(this,e).get(e)}var n6=i6;function o6(e){return Rn(this,e).has(e)}var a6=o6;function l6(e,t){var r=Rn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var s6=l6;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=K8;mt.prototype.delete=r6;mt.prototype.get=n6;mt.prototype.has=a6;mt.prototype.set=s6;var Lc=mt;function u6(){this.__data__=new Un,this.size=0}var c6=u6;function d6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var p6=d6;function g6(e){return this.__data__.get(e)}var f6=g6;function y6(e){return this.__data__.has(e)}var m6=y6,h6=200;function b6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<h6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Lc(i)}return r.set(e,t),this.size=r.size,this}var v6=b6;function Qr(e){var t=this.__data__=new Un(e);this.size=t.size}Qr.prototype.clear=c6;Qr.prototype.delete=p6;Qr.prototype.get=f6;Qr.prototype.has=m6;Qr.prototype.set=v6;var w6=Object.prototype,WJ=w6.propertyIsEnumerable,k6=gt(ee,"DataView"),pa=k6,x6=gt(ee,"Promise"),ga=x6,I6=gt(ee,"Set"),fa=I6,Ru="[object Map]",C6="[object Object]",Fu="[object Promise]",Vu="[object Set]",Bu="[object WeakMap]",qu="[object DataView]",A6=Le(pa),S6=Le(Vr),M6=Le(ga),j6=Le(fa),$6=Le(da),ot=Zr;(pa&&ot(new pa(new ArrayBuffer(1)))!=qu||Vr&&ot(new Vr)!=Ru||ga&&ot(ga.resolve())!=Fu||fa&&ot(new fa)!=Vu||da&&ot(new da)!=Bu)&&(ot=function(e){var t=Zr(e),r=t==C6?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case A6:return qu;case S6:return Ru;case M6:return Fu;case j6:return Vu;case $6:return Bu}return t});var KJ=ee.Uint8Array,E6="__lodash_hash_undefined__";function _6(e){return this.__data__.set(e,E6),this}var T6=_6;function L6(e){return this.__data__.has(e)}var O6=L6;function ya(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Lc;++t<r;)this.add(e[t])}ya.prototype.add=ya.prototype.push=T6;ya.prototype.has=O6;var Gu=st?st.prototype:void 0,JJ=Gu?Gu.valueOf:void 0,N6=Object.prototype,XJ=N6.hasOwnProperty,D6=Object.prototype,eX=D6.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 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 ht(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 z6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=z6;function U6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function R6(e){return typeof e?.translate=="function"}function F6(e,t,r){return e&&U6(e)&&R6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",V6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Fn="editImage",ue=`ly.img.${Fn}`,Hu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var B6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${An}`]:"Edit Image...",[`${An}.description`]:"Change image based on description",[`${An}.prompt`]:"Edit Image...",[`${Hu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${An}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Hu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(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:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),q6=B6,Vn="swapBackground",ce=`ly.img.${Vn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var G6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${Mn}`]:"Swap Background...",[`${Mn}.description`]:"Change the background of the image",[`${Mn}.prompt`]:"Swap Background...",[`${Zu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Mn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Zu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(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:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),Y6=G6,Bn="styleTransfer",_r=`ly.img.${Bn}`,H6=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Qu(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 Z6=[{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."}],Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${H6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Qu(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:()=>{Z6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(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"})}}})})}})}})}})}}),W6=Q6,qn="artistTransfer",Tr=`ly.img.${qn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Wu(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 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."}],X6=({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:Tr,type:"quick",kind:"image",label:`${K6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{J6.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(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"})}}})})}})}})}})}}),ew=X6,Gn="createVariant",de=`ly.img.${Gn}`,Ku=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,$n=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${$n}`]:"Create Variant...",[`${$n}.description`]:"Create a variation of the image",[`${$n}.prompt`]:"Create Variant...",[`${Ku}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${$n}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ku}`,enable:t=>{if(!Hr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(b,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await ht(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),rw=tw,Yn="combineImages",pe=`ly.img.${Yn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ra=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ra}.apply`]:"Combine",[`${ra}`]:"Combine Images...",[`${ra}.prompt`]:"Image Combination Instructions",[`${Ju}.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:`${Ju}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:_n(l,"prompt"),placeholder:_n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:_n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),b=o.block.getHeight(y),k=.02*Math.min(m,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(x=>ht(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),nw=iw,Hn="remixPage",Xu=`ly.img.${Hn}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Hn}`,aw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Hn}`;function lw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Hn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var sw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${aw}`]:"Turn Page into Image"}}),{id:Xu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ow}`,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(`${Xu}.button`,{label:lw(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),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),uw=sw,Zn="remixPageWithPrompt",ge=`ly.img.${Zn}`,ec=`ly.img.plugin-ai-image-generation-web.quickAction.${Zn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Zn}`;function Tn(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 cw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ia}`]:"Remix Page...",[`${ia}.prompt`]:"Remix Page Prompt",[`${ec}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ia}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ec}`,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:Tn(l,"prompt"),placeholder:Tn(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:Tn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),x=o.block.createShape("rect"),h=o.block.create("graphic");o.block.setShape(h,x),o.block.appendChild(f,h),o.block.setWidth(h,m),o.block.setHeight(h,b),o.block.setPositionX(h,k),o.block.setPositionY(h,w);let I=o.block.createFill("image");o.block.setFill(h,I),o.block.setString(I,"fill/image/imageFileURI",y),o.block.setSelected(h,!0),o.scene.zoomToBlock(h),await a({prompt:d,uri:y},{blockIds:[h]}),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:Tn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),dw=cw,fe="ly.img.ai.image-generation";function pw(e){return{async initialize({cesdk:t}){if(t==null)return;i3(t,Nr,"1.79.0"),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=ha.get(),i=`${Nr}.action.label`;t.ui.addIconSet(zv,Rv),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:F6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});gw(e),r.register(q6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(W6({cesdk:t})),r.register(ew({cesdk:t})),r.register(rw({cesdk:t})),r.register(nw({cesdk:t})),r.register(uw({cesdk:t})),r.register(dw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Yu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Yu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await gv("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:V6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Pn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),o3({cesdk:t,panelId:fe})):n()}}}function gw(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 fw=pw,yw=e=>({name:Nr,version:"1.79.0",...fw(e)}),Oc=yw;var mw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var hw=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")}},bw=typeof global=="object"&&global&&global.Object===Object&&global,kd=bw,vw=typeof self=="object"&&self&&self.Object===Object&&self,ww=kd||vw||Function("return this")(),te=ww,kw=te.Symbol,kt=kw,xd=Object.prototype,xw=xd.hasOwnProperty,Iw=xd.toString,Wr=kt?kt.toStringTag:void 0;function Cw(e){var t=xw.call(e,Wr),r=e[Wr];try{e[Wr]=void 0;var i=!0}catch{}var n=Iw.call(e);return i&&(t?e[Wr]=r:delete e[Wr]),n}var Aw=Cw,Sw=Object.prototype,Mw=Sw.toString;function jw(e){return Mw.call(e)}var $w=jw,Ew="[object Null]",_w="[object Undefined]",Nc=kt?kt.toStringTag:void 0;function Tw(e){return e==null?e===void 0?_w:Ew:Nc&&Nc in Object(e)?Aw(e):$w(e)}var si=Tw;function Lw(e){return e!=null&&typeof e=="object"}var Fa=Lw,sX=Array.isArray;function Ow(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Id=Ow,Nw="[object AsyncFunction]",Dw="[object Function]",Pw="[object GeneratorFunction]",zw="[object Proxy]";function Uw(e){if(!Id(e))return!1;var t=si(e);return t==Dw||t==Pw||t==Nw||t==zw}var Rw=Uw,Fw=te["__core-js_shared__"],xa=Fw,Dc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Vw(e){return!!Dc&&Dc in e}var Bw=Vw,qw=Function.prototype,Gw=qw.toString;function Yw(e){if(e!=null){try{return Gw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=Yw,Hw=/[\\^$.*+?()[\]{}|]/g,Zw=/^\[object .+?Constructor\]$/,Qw=Function.prototype,Ww=Object.prototype,Kw=Qw.toString,Jw=Ww.hasOwnProperty,Xw=RegExp("^"+Kw.call(Jw).replace(Hw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ek(e){if(!Id(e)||Bw(e))return!1;var t=Rw(e)?Xw:Zw;return t.test(Oe(e))}var tk=ek;function rk(e,t){return e?.[t]}var ik=rk;function nk(e,t){var r=ik(e,t);return tk(r)?r:void 0}var It=nk,ok=It(te,"WeakMap"),$a=ok;function ak(e,t){return e===t||e!==e&&t!==t}var lk=ak,sk=9007199254740991;function uk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sk}var ck=uk,uX=Object.prototype,dk="[object Arguments]";function pk(e){return Fa(e)&&si(e)==dk}var Pc=pk,Cd=Object.prototype,gk=Cd.hasOwnProperty,fk=Cd.propertyIsEnumerable,cX=Pc(function(){return arguments}())?Pc:function(e){return Fa(e)&&gk.call(e,"callee")&&!fk.call(e,"callee")},Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zc=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,yk=zc&&zc.exports===Ad,Uc=yk?te.Buffer:void 0,dX=Uc?Uc.isBuffer:void 0,mk="[object Arguments]",hk="[object Array]",bk="[object Boolean]",vk="[object Date]",wk="[object Error]",kk="[object Function]",xk="[object Map]",Ik="[object Number]",Ck="[object Object]",Ak="[object RegExp]",Sk="[object Set]",Mk="[object String]",jk="[object WeakMap]",$k="[object ArrayBuffer]",Ek="[object DataView]",_k="[object Float32Array]",Tk="[object Float64Array]",Lk="[object Int8Array]",Ok="[object Int16Array]",Nk="[object Int32Array]",Dk="[object Uint8Array]",Pk="[object Uint8ClampedArray]",zk="[object Uint16Array]",Uk="[object Uint32Array]",D={};D[_k]=D[Tk]=D[Lk]=D[Ok]=D[Nk]=D[Dk]=D[Pk]=D[zk]=D[Uk]=!0;D[mk]=D[hk]=D[$k]=D[bk]=D[Ek]=D[vk]=D[wk]=D[kk]=D[xk]=D[Ik]=D[Ck]=D[Ak]=D[Sk]=D[Mk]=D[jk]=!1;function Rk(e){return Fa(e)&&ck(e.length)&&!!D[si(e)]}var Fk=Rk;function Vk(e){return function(t){return e(t)}}var Bk=Vk,Sd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Sd&&typeof module=="object"&&module&&!module.nodeType&&module,qk=ri&&ri.exports===Sd,Ia=qk&&kd.process,Gk=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Rc=Gk,Fc=Rc&&Rc.isTypedArray,pX=Fc?Bk(Fc):Fk,Yk=Object.prototype,gX=Yk.hasOwnProperty;function Hk(e,t){return function(r){return e(t(r))}}var Zk=Hk,fX=Zk(Object.keys,Object),Qk=Object.prototype,yX=Qk.hasOwnProperty,Wk=It(Object,"create"),ni=Wk;function Kk(){this.__data__=ni?ni(null):{},this.size=0}var Jk=Kk;function Xk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ex=Xk,tx="__lodash_hash_undefined__",rx=Object.prototype,ix=rx.hasOwnProperty;function nx(e){var t=this.__data__;if(ni){var r=t[e];return r===tx?void 0:r}return ix.call(t,e)?t[e]:void 0}var ox=nx,ax=Object.prototype,lx=ax.hasOwnProperty;function sx(e){var t=this.__data__;return ni?t[e]!==void 0:lx.call(t,e)}var ux=sx,cx="__lodash_hash_undefined__";function dx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?cx:t,this}var px=dx;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=ex;Ct.prototype.get=ox;Ct.prototype.has=ux;Ct.prototype.set=px;var Vc=Ct;function gx(){this.__data__=[],this.size=0}var fx=gx;function yx(e,t){for(var r=e.length;r--;)if(lk(e[r][0],t))return r;return-1}var Wn=yx,mx=Array.prototype,hx=mx.splice;function bx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():hx.call(t,r,1),--this.size,!0}var vx=bx;function wx(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var kx=wx;function xx(e){return Wn(this.__data__,e)>-1}var Ix=xx;function Cx(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Ax=Cx;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=fx;At.prototype.delete=vx;At.prototype.get=kx;At.prototype.has=Ix;At.prototype.set=Ax;var Kn=At,Sx=It(te,"Map"),oi=Sx;function Mx(){this.size=0,this.__data__={hash:new Vc,map:new(oi||Kn),string:new Vc}}var jx=Mx;function $x(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ex=$x;function _x(e,t){var r=e.__data__;return Ex(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=_x;function Tx(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Lx=Tx;function Ox(e){return Jn(this,e).get(e)}var Nx=Ox;function Dx(e){return Jn(this,e).has(e)}var Px=Dx;function zx(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Ux=zx;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=jx;St.prototype.delete=Lx;St.prototype.get=Nx;St.prototype.has=Px;St.prototype.set=Ux;var Md=St;function Rx(){this.__data__=new Kn,this.size=0}var Fx=Rx;function Vx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Bx=Vx;function qx(e){return this.__data__.get(e)}var Gx=qx;function Yx(e){return this.__data__.has(e)}var Hx=Yx,Zx=200;function Qx(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!oi||i.length<Zx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Md(i)}return r.set(e,t),this.size=r.size,this}var Wx=Qx;function ui(e){var t=this.__data__=new Kn(e);this.size=t.size}ui.prototype.clear=Fx;ui.prototype.delete=Bx;ui.prototype.get=Gx;ui.prototype.has=Hx;ui.prototype.set=Wx;var Kx=Object.prototype,mX=Kx.propertyIsEnumerable,Jx=It(te,"DataView"),Ea=Jx,Xx=It(te,"Promise"),_a=Xx,eI=It(te,"Set"),Ta=eI,Bc="[object Map]",tI="[object Object]",qc="[object Promise]",Gc="[object Set]",Yc="[object WeakMap]",Hc="[object DataView]",rI=Oe(Ea),iI=Oe(oi),nI=Oe(_a),oI=Oe(Ta),aI=Oe($a),bt=si;(Ea&&bt(new Ea(new ArrayBuffer(1)))!=Hc||oi&&bt(new oi)!=Bc||_a&&bt(_a.resolve())!=qc||Ta&&bt(new Ta)!=Gc||$a&&bt(new $a)!=Yc)&&(bt=function(e){var t=si(e),r=t==tI?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case rI:return Hc;case iI:return Bc;case nI:return qc;case oI:return Gc;case aI:return Yc}return t});var hX=te.Uint8Array,lI="__lodash_hash_undefined__";function sI(e){return this.__data__.set(e,lI),this}var uI=sI;function cI(e){return this.__data__.has(e)}var dI=cI;function La(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Md;++t<r;)this.add(e[t])}La.prototype.add=La.prototype.push=uI;La.prototype.has=dI;var Zc=kt?kt.prototype:void 0,bX=Zc?Zc.valueOf:void 0,pI=Object.prototype,vX=pI.hasOwnProperty,gI=Object.prototype,wX=gI.hasOwnProperty,kX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),xX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),IX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jd(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 fI(e,t){let r=await jd(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 yI(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 jd(i,t)}function mI(e){return e!==void 0}var hI=mI;function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function di(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Qn=class $d{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 $d),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))}},bI=class Ed{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ed),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 vI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function wI({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 kI=wI,Ca="ly.img.ai.temp";async function xI(e,t){return e.engine.asset.findAllSources().includes(Ca)||e.engine.asset.addLocalSource(Ca),e.engine.asset.apply(Ca,t)}function II(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 _d(){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 CI(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 AI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Va(e){return e instanceof Error&&e.name==="AbortError"}function SI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MI(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
+ `,R3=U3,F3=typeof global=="object"&&global&&global.Object===Object&&global,jc=F3,V3=typeof self=="object"&&self&&self.Object===Object&&self,B3=jc||V3||Function("return this")(),ee=B3,q3=ee.Symbol,st=q3,$c=Object.prototype,G3=$c.hasOwnProperty,Y3=$c.toString,Er=st?st.toStringTag:void 0;function H3(e){var t=G3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=Y3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var Z3=H3,Q3=Object.prototype,W3=Q3.toString;function K3(e){return W3.call(e)}var J3=K3,X3="[object Null]",e8="[object Undefined]",Lu=st?st.toStringTag:void 0;function t8(e){return e==null?e===void 0?e8:X3:Lu&&Lu in Object(e)?Z3(e):J3(e)}var Zr=t8;function r8(e){return e!=null&&typeof e=="object"}var xa=r8,qJ=Array.isArray;function i8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ec=i8,n8="[object AsyncFunction]",o8="[object Function]",a8="[object GeneratorFunction]",l8="[object Proxy]";function s8(e){if(!Ec(e))return!1;var t=Zr(e);return t==o8||t==a8||t==n8||t==l8}var u8=s8,c8=ee["__core-js_shared__"],ea=c8,Ou=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function d8(e){return!!Ou&&Ou in e}var p8=d8,g8=Function.prototype,f8=g8.toString;function y8(e){if(e!=null){try{return f8.call(e)}catch{}try{return e+""}catch{}}return""}var Le=y8,m8=/[\\^$.*+?()[\]{}|]/g,h8=/^\[object .+?Constructor\]$/,b8=Function.prototype,v8=Object.prototype,w8=b8.toString,k8=v8.hasOwnProperty,x8=RegExp("^"+w8.call(k8).replace(m8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function I8(e){if(!Ec(e)||p8(e))return!1;var t=u8(e)?x8:h8;return t.test(Le(e))}var A8=I8;function C8(e,t){return e?.[t]}var S8=C8;function M8(e,t){var r=S8(e,t);return A8(r)?r:void 0}var gt=M8,j8=gt(ee,"WeakMap"),pa=j8;function $8(e,t){return e===t||e!==e&&t!==t}var E8=$8,_8=9007199254740991;function T8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_8}var L8=T8,GJ=Object.prototype,O8="[object Arguments]";function N8(e){return xa(e)&&Zr(e)==O8}var Nu=N8,_c=Object.prototype,D8=_c.hasOwnProperty,P8=_c.propertyIsEnumerable,YJ=Nu(function(){return arguments}())?Nu:function(e){return xa(e)&&D8.call(e,"callee")&&!P8.call(e,"callee")},Tc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Tc&&typeof module=="object"&&module&&!module.nodeType&&module,z8=Du&&Du.exports===Tc,Pu=z8?ee.Buffer:void 0,HJ=Pu?Pu.isBuffer:void 0,U8="[object Arguments]",R8="[object Array]",F8="[object Boolean]",V8="[object Date]",B8="[object Error]",q8="[object Function]",G8="[object Map]",Y8="[object Number]",H8="[object Object]",Z8="[object RegExp]",Q8="[object Set]",W8="[object String]",K8="[object WeakMap]",J8="[object ArrayBuffer]",X8="[object DataView]",e7="[object Float32Array]",t7="[object Float64Array]",r7="[object Int8Array]",i7="[object Int16Array]",n7="[object Int32Array]",o7="[object Uint8Array]",a7="[object Uint8ClampedArray]",l7="[object Uint16Array]",s7="[object Uint32Array]",N={};N[e7]=N[t7]=N[r7]=N[i7]=N[n7]=N[o7]=N[a7]=N[l7]=N[s7]=!0;N[U8]=N[R8]=N[J8]=N[F8]=N[X8]=N[V8]=N[B8]=N[q8]=N[G8]=N[Y8]=N[H8]=N[Z8]=N[Q8]=N[W8]=N[K8]=!1;function u7(e){return xa(e)&&L8(e.length)&&!!N[Zr(e)]}var c7=u7;function d7(e){return function(t){return e(t)}}var p7=d7,Lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Lc&&typeof module=="object"&&module&&!module.nodeType&&module,g7=Pr&&Pr.exports===Lc,ta=g7&&jc.process,f7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ta&&ta.binding&&ta.binding("util")}catch{}}(),zu=f7,Uu=zu&&zu.isTypedArray,ZJ=Uu?p7(Uu):c7,y7=Object.prototype,QJ=y7.hasOwnProperty;function m7(e,t){return function(r){return e(t(r))}}var h7=m7,WJ=h7(Object.keys,Object),b7=Object.prototype,KJ=b7.hasOwnProperty,v7=gt(Object,"create"),Fr=v7;function w7(){this.__data__=Fr?Fr(null):{},this.size=0}var k7=w7;function x7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var I7=x7,A7="__lodash_hash_undefined__",C7=Object.prototype,S7=C7.hasOwnProperty;function M7(e){var t=this.__data__;if(Fr){var r=t[e];return r===A7?void 0:r}return S7.call(t,e)?t[e]:void 0}var j7=M7,$7=Object.prototype,E7=$7.hasOwnProperty;function _7(e){var t=this.__data__;return Fr?t[e]!==void 0:E7.call(t,e)}var T7=_7,L7="__lodash_hash_undefined__";function O7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?L7:t,this}var N7=O7;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=k7;ft.prototype.delete=I7;ft.prototype.get=j7;ft.prototype.has=T7;ft.prototype.set=N7;var Ru=ft;function D7(){this.__data__=[],this.size=0}var P7=D7;function z7(e,t){for(var r=e.length;r--;)if(E8(e[r][0],t))return r;return-1}var zn=z7,U7=Array.prototype,R7=U7.splice;function F7(e){var t=this.__data__,r=zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():R7.call(t,r,1),--this.size,!0}var V7=F7;function B7(e){var t=this.__data__,r=zn(t,e);return r<0?void 0:t[r][1]}var q7=B7;function G7(e){return zn(this.__data__,e)>-1}var Y7=G7;function H7(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 Z7=H7;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=V7;yt.prototype.get=q7;yt.prototype.has=Y7;yt.prototype.set=Z7;var Un=yt,Q7=gt(ee,"Map"),Vr=Q7;function W7(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||Un),string:new Ru}}var K7=W7;function J7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var X7=J7;function e6(e,t){var r=e.__data__;return X7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rn=e6;function t6(e){var t=Rn(this,e).delete(e);return this.size-=t?1:0,t}var r6=t6;function i6(e){return Rn(this,e).get(e)}var n6=i6;function o6(e){return Rn(this,e).has(e)}var a6=o6;function l6(e,t){var r=Rn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var s6=l6;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=K7;mt.prototype.delete=r6;mt.prototype.get=n6;mt.prototype.has=a6;mt.prototype.set=s6;var Oc=mt;function u6(){this.__data__=new Un,this.size=0}var c6=u6;function d6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var p6=d6;function g6(e){return this.__data__.get(e)}var f6=g6;function y6(e){return this.__data__.has(e)}var m6=y6,h6=200;function b6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<h6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Oc(i)}return r.set(e,t),this.size=r.size,this}var v6=b6;function Qr(e){var t=this.__data__=new Un(e);this.size=t.size}Qr.prototype.clear=c6;Qr.prototype.delete=p6;Qr.prototype.get=f6;Qr.prototype.has=m6;Qr.prototype.set=v6;var w6=Object.prototype,JJ=w6.propertyIsEnumerable,k6=gt(ee,"DataView"),ga=k6,x6=gt(ee,"Promise"),fa=x6,I6=gt(ee,"Set"),ya=I6,Fu="[object Map]",A6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",C6=Le(ga),S6=Le(Vr),M6=Le(fa),j6=Le(ya),$6=Le(pa),ot=Zr;(ga&&ot(new ga(new ArrayBuffer(1)))!=Gu||Vr&&ot(new Vr)!=Fu||fa&&ot(fa.resolve())!=Vu||ya&&ot(new ya)!=Bu||pa&&ot(new pa)!=qu)&&(ot=function(e){var t=Zr(e),r=t==A6?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case C6:return Gu;case S6:return Fu;case M6:return Vu;case j6:return Bu;case $6:return qu}return t});var XJ=ee.Uint8Array,E6="__lodash_hash_undefined__";function _6(e){return this.__data__.set(e,E6),this}var T6=_6;function L6(e){return this.__data__.has(e)}var O6=L6;function ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Oc;++t<r;)this.add(e[t])}ma.prototype.add=ma.prototype.push=T6;ma.prototype.has=O6;var Yu=st?st.prototype:void 0,eX=Yu?Yu.valueOf:void 0,N6=Object.prototype,tX=N6.hasOwnProperty,D6=Object.prototype,rX=D6.hasOwnProperty,iX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),nX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),oX=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 ht(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 z6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Hu=z6;function U6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function R6(e){return typeof e?.translate=="function"}function F6(e,t,r){return e&&U6(e)&&R6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",V6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Fn="editImage",ue=`ly.img.${Fn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var B6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${Cn}`]:"Edit Image...",[`${Cn}.description`]:"Change image based on description",[`${Cn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${Cn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(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:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),q6=B6,Vn="swapBackground",ce=`ly.img.${Vn}`,Qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var G6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${Mn}`]:"Swap Background...",[`${Mn}.description`]:"Change the background of the image",[`${Mn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Mn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(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:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),Y6=G6,Bn="styleTransfer",_r=`ly.img.${Bn}`,H6=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Wu(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 Z6=[{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."}],Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${H6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Wu(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:()=>{Z6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(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"})}}})})}})}})}})}}),W6=Q6,qn="artistTransfer",Tr=`ly.img.${qn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Ku(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 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."}],X6=({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:Tr,type:"quick",kind:"image",label:`${K6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{J6.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(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"})}}})})}})}})}})}}),ew=X6,Gn="createVariant",de=`ly.img.${Gn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,$n=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${$n}`]:"Create Variant...",[`${$n}.description`]:"Create a variation of the image",[`${$n}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${$n}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!Hr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(b,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await ht(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),rw=tw,Yn="combineImages",pe=`ly.img.${Yn}`,Xu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ra=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ra}.apply`]:"Combine",[`${ra}`]:"Combine Images...",[`${ra}.prompt`]:"Image Combination Instructions",[`${Xu}.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:`${Xu}`,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(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),b=o.block.getHeight(y),k=.02*Math.min(m,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(I=>ht(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),nw=iw,Hn="remixPage",ec=`ly.img.${Hn}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Hn}`,aw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Hn}`;function lw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Hn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var sw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${aw}`]:"Turn Page into Image"}}),{id:ec,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ow}`,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(`${ec}.button`,{label:lw(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),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),uw=sw,Zn="remixPageWithPrompt",ge=`ly.img.${Zn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Zn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Zn}`;function Tn(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 cw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ia}`]:"Remix Page...",[`${ia}.prompt`]:"Remix Page Prompt",[`${tc}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ia}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tc}`,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:Tn(l,"prompt"),placeholder:Tn(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:Tn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),I=o.block.createShape("rect"),h=o.block.create("graphic");o.block.setShape(h,I),o.block.appendChild(f,h),o.block.setWidth(h,m),o.block.setHeight(h,b),o.block.setPositionX(h,k),o.block.setPositionY(h,w);let x=o.block.createFill("image");o.block.setFill(h,x),o.block.setString(x,"fill/image/imageFileURI",y),o.block.setSelected(h,!0),o.scene.zoomToBlock(h),await a({prompt:d,uri:y},{blockIds:[h]}),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:Tn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),dw=cw,fe="ly.img.ai.image-generation";function pw(e){return{async initialize({cesdk:t}){if(t==null)return;i9(t,Nr,"1.80.0-hotfix-mcp.0"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ba.get(),i=`${Nr}.action.label`;t.ui.addIconSet(z3,R3),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:F6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});gw(e),r.register(q6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(W6({cesdk:t})),r.register(ew({cesdk:t})),r.register(rw({cesdk:t})),r.register(nw({cesdk:t})),r.register(uw({cesdk:t})),r.register(dw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Hu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Hu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await g3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await P3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:V6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Pn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),o9({cesdk:t,panelId:fe})):n()}}}function gw(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 fw=pw,yw=e=>({name:Nr,version:"1.80.0-hotfix-mcp.0",...fw(e)}),Nc=yw;var mw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var hw=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")}},bw=typeof global=="object"&&global&&global.Object===Object&&global,xd=bw,vw=typeof self=="object"&&self&&self.Object===Object&&self,ww=xd||vw||Function("return this")(),te=ww,kw=te.Symbol,kt=kw,Id=Object.prototype,xw=Id.hasOwnProperty,Iw=Id.toString,Wr=kt?kt.toStringTag:void 0;function Aw(e){var t=xw.call(e,Wr),r=e[Wr];try{e[Wr]=void 0;var i=!0}catch{}var n=Iw.call(e);return i&&(t?e[Wr]=r:delete e[Wr]),n}var Cw=Aw,Sw=Object.prototype,Mw=Sw.toString;function jw(e){return Mw.call(e)}var $w=jw,Ew="[object Null]",_w="[object Undefined]",Dc=kt?kt.toStringTag:void 0;function Tw(e){return e==null?e===void 0?_w:Ew:Dc&&Dc in Object(e)?Cw(e):$w(e)}var si=Tw;function Lw(e){return e!=null&&typeof e=="object"}var Va=Lw,cX=Array.isArray;function Ow(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ad=Ow,Nw="[object AsyncFunction]",Dw="[object Function]",Pw="[object GeneratorFunction]",zw="[object Proxy]";function Uw(e){if(!Ad(e))return!1;var t=si(e);return t==Dw||t==Pw||t==Nw||t==zw}var Rw=Uw,Fw=te["__core-js_shared__"],Ia=Fw,Pc=function(){var e=/[^.]+$/.exec(Ia&&Ia.keys&&Ia.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Vw(e){return!!Pc&&Pc in e}var Bw=Vw,qw=Function.prototype,Gw=qw.toString;function Yw(e){if(e!=null){try{return Gw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=Yw,Hw=/[\\^$.*+?()[\]{}|]/g,Zw=/^\[object .+?Constructor\]$/,Qw=Function.prototype,Ww=Object.prototype,Kw=Qw.toString,Jw=Ww.hasOwnProperty,Xw=RegExp("^"+Kw.call(Jw).replace(Hw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ek(e){if(!Ad(e)||Bw(e))return!1;var t=Rw(e)?Xw:Zw;return t.test(Oe(e))}var tk=ek;function rk(e,t){return e?.[t]}var ik=rk;function nk(e,t){var r=ik(e,t);return tk(r)?r:void 0}var It=nk,ok=It(te,"WeakMap"),Ea=ok;function ak(e,t){return e===t||e!==e&&t!==t}var lk=ak,sk=9007199254740991;function uk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sk}var ck=uk,dX=Object.prototype,dk="[object Arguments]";function pk(e){return Va(e)&&si(e)==dk}var zc=pk,Cd=Object.prototype,gk=Cd.hasOwnProperty,fk=Cd.propertyIsEnumerable,pX=zc(function(){return arguments}())?zc:function(e){return Va(e)&&gk.call(e,"callee")&&!fk.call(e,"callee")},Sd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Uc=Sd&&typeof module=="object"&&module&&!module.nodeType&&module,yk=Uc&&Uc.exports===Sd,Rc=yk?te.Buffer:void 0,gX=Rc?Rc.isBuffer:void 0,mk="[object Arguments]",hk="[object Array]",bk="[object Boolean]",vk="[object Date]",wk="[object Error]",kk="[object Function]",xk="[object Map]",Ik="[object Number]",Ak="[object Object]",Ck="[object RegExp]",Sk="[object Set]",Mk="[object String]",jk="[object WeakMap]",$k="[object ArrayBuffer]",Ek="[object DataView]",_k="[object Float32Array]",Tk="[object Float64Array]",Lk="[object Int8Array]",Ok="[object Int16Array]",Nk="[object Int32Array]",Dk="[object Uint8Array]",Pk="[object Uint8ClampedArray]",zk="[object Uint16Array]",Uk="[object Uint32Array]",D={};D[_k]=D[Tk]=D[Lk]=D[Ok]=D[Nk]=D[Dk]=D[Pk]=D[zk]=D[Uk]=!0;D[mk]=D[hk]=D[$k]=D[bk]=D[Ek]=D[vk]=D[wk]=D[kk]=D[xk]=D[Ik]=D[Ak]=D[Ck]=D[Sk]=D[Mk]=D[jk]=!1;function Rk(e){return Va(e)&&ck(e.length)&&!!D[si(e)]}var Fk=Rk;function Vk(e){return function(t){return e(t)}}var Bk=Vk,Md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Md&&typeof module=="object"&&module&&!module.nodeType&&module,qk=ri&&ri.exports===Md,Aa=qk&&xd.process,Gk=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Aa&&Aa.binding&&Aa.binding("util")}catch{}}(),Fc=Gk,Vc=Fc&&Fc.isTypedArray,fX=Vc?Bk(Vc):Fk,Yk=Object.prototype,yX=Yk.hasOwnProperty;function Hk(e,t){return function(r){return e(t(r))}}var Zk=Hk,mX=Zk(Object.keys,Object),Qk=Object.prototype,hX=Qk.hasOwnProperty,Wk=It(Object,"create"),ni=Wk;function Kk(){this.__data__=ni?ni(null):{},this.size=0}var Jk=Kk;function Xk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ex=Xk,tx="__lodash_hash_undefined__",rx=Object.prototype,ix=rx.hasOwnProperty;function nx(e){var t=this.__data__;if(ni){var r=t[e];return r===tx?void 0:r}return ix.call(t,e)?t[e]:void 0}var ox=nx,ax=Object.prototype,lx=ax.hasOwnProperty;function sx(e){var t=this.__data__;return ni?t[e]!==void 0:lx.call(t,e)}var ux=sx,cx="__lodash_hash_undefined__";function dx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?cx:t,this}var px=dx;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=Jk;At.prototype.delete=ex;At.prototype.get=ox;At.prototype.has=ux;At.prototype.set=px;var Bc=At;function gx(){this.__data__=[],this.size=0}var fx=gx;function yx(e,t){for(var r=e.length;r--;)if(lk(e[r][0],t))return r;return-1}var Wn=yx,mx=Array.prototype,hx=mx.splice;function bx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():hx.call(t,r,1),--this.size,!0}var vx=bx;function wx(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var kx=wx;function xx(e){return Wn(this.__data__,e)>-1}var Ix=xx;function Ax(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Cx=Ax;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=fx;Ct.prototype.delete=vx;Ct.prototype.get=kx;Ct.prototype.has=Ix;Ct.prototype.set=Cx;var Kn=Ct,Sx=It(te,"Map"),oi=Sx;function Mx(){this.size=0,this.__data__={hash:new Bc,map:new(oi||Kn),string:new Bc}}var jx=Mx;function $x(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ex=$x;function _x(e,t){var r=e.__data__;return Ex(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=_x;function Tx(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Lx=Tx;function Ox(e){return Jn(this,e).get(e)}var Nx=Ox;function Dx(e){return Jn(this,e).has(e)}var Px=Dx;function zx(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Ux=zx;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=jx;St.prototype.delete=Lx;St.prototype.get=Nx;St.prototype.has=Px;St.prototype.set=Ux;var jd=St;function Rx(){this.__data__=new Kn,this.size=0}var Fx=Rx;function Vx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Bx=Vx;function qx(e){return this.__data__.get(e)}var Gx=qx;function Yx(e){return this.__data__.has(e)}var Hx=Yx,Zx=200;function Qx(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!oi||i.length<Zx-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 Wx=Qx;function ui(e){var t=this.__data__=new Kn(e);this.size=t.size}ui.prototype.clear=Fx;ui.prototype.delete=Bx;ui.prototype.get=Gx;ui.prototype.has=Hx;ui.prototype.set=Wx;var Kx=Object.prototype,bX=Kx.propertyIsEnumerable,Jx=It(te,"DataView"),_a=Jx,Xx=It(te,"Promise"),Ta=Xx,eI=It(te,"Set"),La=eI,qc="[object Map]",tI="[object Object]",Gc="[object Promise]",Yc="[object Set]",Hc="[object WeakMap]",Zc="[object DataView]",rI=Oe(_a),iI=Oe(oi),nI=Oe(Ta),oI=Oe(La),aI=Oe(Ea),bt=si;(_a&&bt(new _a(new ArrayBuffer(1)))!=Zc||oi&&bt(new oi)!=qc||Ta&&bt(Ta.resolve())!=Gc||La&&bt(new La)!=Yc||Ea&&bt(new Ea)!=Hc)&&(bt=function(e){var t=si(e),r=t==tI?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case rI:return Zc;case iI:return qc;case nI:return Gc;case oI:return Yc;case aI:return Hc}return t});var vX=te.Uint8Array,lI="__lodash_hash_undefined__";function sI(e){return this.__data__.set(e,lI),this}var uI=sI;function cI(e){return this.__data__.has(e)}var dI=cI;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=uI;Oa.prototype.has=dI;var Qc=kt?kt.prototype:void 0,wX=Qc?Qc.valueOf:void 0,pI=Object.prototype,kX=pI.hasOwnProperty,gI=Object.prototype,xX=gI.hasOwnProperty,IX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),AX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),CX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $d(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 fI(e,t){let r=await $d(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 yI(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 $d(i,t)}function mI(e){return e!==void 0}var hI=mI;function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function di(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Qn=class Ed{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 Ed),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))}},bI=class _d{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _d),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function vI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function wI({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 kI=wI,Ca="ly.img.ai.temp";async function xI(e,t){return e.engine.asset.findAllSources().includes(Ca)||e.engine.asset.addLocalSource(Ca),e.engine.asset.apply(Ca,t)}function II(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 Td(){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 AI(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 CI(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 Ba(e){return e instanceof Error&&e.name==="AbortError"}function SI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MI(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 jI(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 $I=jI;function EI(){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 _I=EI;function TI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:II(e)}))}function LI(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 Qc=TI,OI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ba=OI;function NI(e,t,r){switch(t){case"image":return DI(e,r[t]);case"video":return PI(e,r[t]);case"sticker":return zI(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:Ba,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:Ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function zI(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 UI=NI;async function RI(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 FI(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 VI(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 BI(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 qI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function FI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function VI(e,t,r){let i=t.width,n=t.height,a=await CI(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 BI(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 qI(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 Td=RI;function GI(e){switch(e.userFlow){case"placeholder":return HI(e);case"generation-only":return YI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function YI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(be(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(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(be(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=_d(),c=await Td(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 HI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(be(t,r))return{status:"aborted"};let s=_d(),c=UI(s,a,o);if(i=await xI(t,c),be(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(be(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 Td(s,a,o,l.output);if(be(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),be(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function be(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var ZI=GI;function qa(e){return`${e}.generating`}function QI(e){return`${e}.abort`}function WI(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(QI(d),()=>{}),y=c.global(qa(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.some(h=>!x.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await ZI({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(h.status==="aborted")return;if(h.status==="error"){Qc(h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let I=t.output.notification;KI(l,I,()=>({input:i().input,output:h.output}))}}catch(h){if(Va(h))return;Qc(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function KI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ld=WI;function Oa(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}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(qa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ld(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var XI=JI;function Od(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Od(e,t.$ref),n={...Xr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xr(e,t[n],r));return i}return t}function eC(e){return Xr(e,{...e})}function tC(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 rC(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return iC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function iC(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=nC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function nC(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 Nd=rC;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 Dd(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 Pd(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?oC(e,c,r,i,n,a,o,s):zd(e,c,r,i,n,a,o,s);case"boolean":return Ud(e,c,r,i,n,a,o,s);case"number":case"integer":return Rd(e,c,r,i,n,a,o,s);case"object":return Na(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return aC(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Na(e,t,r,i,n,a,o,s){let c=Nd(t.schema??{},i).reduce((l,u)=>{let d=Pd(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 zd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=pi(d,m,f,t.schema.default,""),k=l(p,b),w=lC(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.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=ve(t,r,o),{labels:y,icons:f}=Dd(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),b=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,b,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],h=l(p,x);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Rd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,b,m,k,k),x=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function aC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Dd(t.schema),x=di(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],I={string:zd,boolean:Ud,integer:Rd,object:Na},S=(v,$)=>v.$ref?v.$ref.split("/").pop():$.split(".").pop()??$,A=(v,$)=>({id:v,label:ve(t,r,o,$),icon:w[$]??w[v]});y.forEach((v,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(v.$ref||v.title){let M=v.$ref?v.$ref.split("/").pop():v.title;m[C]=()=>Na(e,{id:C,schema:{...v,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(v.type==="string"&&v.enum)v.enum.forEach(M=>{f.push(A(M,M))});else if(v.type&&I[v.type]){let M=I[v.type];m[C]=()=>M(e,{id:C,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=S(v,C);f.push(v.type==="string"&&!v.enum?{id:C,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:A(C,q))}});let _=pi(d,h,x,t.schema.default,null),j=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function lC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var sC=Pd,uC={"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 Wc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Kc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Wc(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Wc(g);n[a(l.id,g)]=y}})}});let c={...uC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function Jc(e){return typeof e.document=="function"?e.document():e.document}function Xc(e,t,r){let i=eC(e),n=Od(i,t.inputReference);if(!tC(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Nd(a,t);return{inputSchema:a,properties:o}}function ed(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=sC(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Ld(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function cC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Jc(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Xc(c,s,a.debug);return Kc(y,i,r,i.kind),ed(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Jc(s)).then(g=>{let{inputSchema:y,properties:f}=Xc(g,s,a.debug);Kc(f,i,r,i.kind),u=ed(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var dC=cC;async function pC(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return XI(e,t);case"schema":return dC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gC=pC;function fC(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 mw(o,r)),o}return i}var yC=fC;function mC(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 hC=mC,Aa="@imgly/plugin-ai-generation",bC=`
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 jI(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 $I=jI;function EI(){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 _I=EI;function TI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:II(e)}))}function LI(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,duration:i.duration}),!0}var Wc=TI,OI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",qa=OI;function NI(e,t,r){switch(t){case"image":return DI(e,r[t]);case"video":return PI(e,r[t]);case"sticker":return zI(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:qa,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:qa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function zI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:qa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var UI=NI;async function RI(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 FI(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 VI(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 BI(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 qI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function FI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function VI(e,t,r){let i=t.width,n=t.height,a=await AI(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 BI(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 qI(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 Ld=RI;function GI(e){switch(e.userFlow){case"placeholder":return HI(e);case"generation-only":return YI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function YI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(be(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(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(be(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Td(),c=await Ld(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),error:n}}}}function HI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(be(t,r))return{status:"aborted"};let s=Td(),c=UI(s,a,o);if(i=await xI(t,c),be(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(be(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?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 Ld(s,a,o,l.output);if(be(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),be(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)&&(Ba(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),error:a}}}}function be(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var ZI=GI;function Ga(e){return`${e}.generating`}function QI(e){return`${e}.abort`}function WI(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(QI(d),()=>{}),y=c.global(Ga(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await ZI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){Wc(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;KI(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(Ba(h))return;Wc(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function KI(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 Od=WI;function Na(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}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(Ga(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Od(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var XI=JI;function Nd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Nd(e,t.$ref),n={...Xr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xr(e,t[n],r));return i}return t}function eA(e){return Xr(e,{...e})}function tA(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 rA(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return iA(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function iA(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=nA(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function nA(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 Dd=rA;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 Pd(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 zd(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?oA(e,c,r,i,n,a,o,s):Ud(e,c,r,i,n,a,o,s);case"boolean":return Rd(e,c,r,i,n,a,o,s);case"number":case"integer":return Fd(e,c,r,i,n,a,o,s);case"object":return Da(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 aA(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Da(e,t,r,i,n,a,o,s){let c=Dd(t.schema??{},i).reduce((l,u)=>{let d=zd(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 Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=pi(d,m,f,t.schema.default,""),k=l(p,b),w=lA(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function oA(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:y,icons:f}=Pd(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:ve(t,r,o,x),icon:f[x]})),b=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Rd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Fd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function aA(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Pd(t.schema),I=di(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:Ud,boolean:Rd,integer:Fd,object:Da},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:ve(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>Da(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=pi(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function lA(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var sA=zd,uA={"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 Kc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Jc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Kc(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Kc(g);n[a(l.id,g)]=y}})}});let c={...uA,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function Xc(e){return typeof e.document=="function"?e.document():e.document}function ed(e,t,r){let i=eA(e),n=Nd(i,t.inputReference);if(!tA(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Dd(a,t);return{inputSchema:a,properties:o}}function td(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=sA(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Od(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function cA(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Xc(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=ed(c,s,a.debug);return Jc(y,i,r,i.kind),td(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Xc(s)).then(g=>{let{inputSchema:y,properties:f}=ed(g,s,a.debug);Jc(f,i,r,i.kind),u=td(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var dA=cA;async function pA(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return XI(e,t);case"schema":return dA(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gA=pA;function fA(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 mw(o,r)),o}return i}var yA=fA;function mA(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 hA=mA,Sa="@imgly/plugin-ai-generation",bA=`
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="${Aa}/image"
165
+ id="${Sa}/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="${Aa}/video"
177
+ id="${Sa}/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="${Aa}/audio"
188
+ id="${Sa}/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
- `,vC=bC;function wC(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 Fd(2e3),await kC(t,e,r)):i(t,r)}async function kC(e,t,r){switch(t.kind){case"image":return xC(e,t,r);case"video":return IC(e,t,r);case"text":return CC(e,t,r);case"audio":return SC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xC(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 yI(s,r),l=await fI(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 IC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function CC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Kr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Kr(n,o)}else"customPrompt"in e?a=Kr(n,"custom"):a=Kr(n,"improved");else a=Kr(n,"generated");return AC(a,r.abortSignal)}async function*AC(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 Fd(100)}return{kind:"text",text:e}}function Kr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function SC(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:MC(220,i),duration:i,thumbnailUrl:void 0}}function MC(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 jC(i,44100)}function jC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Fd(e){return new Promise(t=>{setTimeout(t,e)})}var $C=wC,EC="USER_CANCEL";function _C(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=vI([...e.provider.output.middleware??[],...r?.middlewares??[],kI({enable:r?.debug}),$C({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}:AI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Va(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===EC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var TC=_C;async function LC(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 y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=yC(a),s=hC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=TC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gC(a,c);SI(r.cesdk,"@imgly/plugin-ai-generation",vC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return bI.get().register(u),u}var Sa=LC;function OC(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 hw(n,r,i);return r.engine.asset.addSource(a),a.id}var NC=OC;function ei(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function DC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Sa(e,u,r,i)));o.push(...l),a=zC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Sa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Sa(e,d,r,i)));o.push(...u),a=PC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=NC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(hI)}),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 PC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(C=>C.id===w.value)??b[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?h:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,$=m.length>1&&j;if((v||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&td(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:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&td(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function zC({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:Oa(p),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:ei(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function td(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(qa(r.id),!1).value)}var UC=DC,RC=typeof global=="object"&&global&&global.Object===Object&&global,Vd=RC,FC=typeof self=="object"&&self&&self.Object===Object&&self,VC=Vd||FC||Function("return this")(),re=VC,BC=re.Symbol,xt=BC,Bd=Object.prototype,qC=Bd.hasOwnProperty,GC=Bd.toString,Jr=xt?xt.toStringTag:void 0;function YC(e){var t=qC.call(e,Jr),r=e[Jr];try{e[Jr]=void 0;var i=!0}catch{}var n=GC.call(e);return i&&(t?e[Jr]=r:delete e[Jr]),n}var HC=YC,ZC=Object.prototype,QC=ZC.toString;function WC(e){return QC.call(e)}var KC=WC,JC="[object Null]",XC="[object Undefined]",rd=xt?xt.toStringTag:void 0;function eA(e){return e==null?e===void 0?XC:JC:rd&&rd in Object(e)?HC(e):KC(e)}var gi=eA;function tA(e){return e!=null&&typeof e=="object"}var Ga=tA,CX=Array.isArray;function rA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var qd=rA,iA="[object AsyncFunction]",nA="[object Function]",oA="[object GeneratorFunction]",aA="[object Proxy]";function lA(e){if(!qd(e))return!1;var t=gi(e);return t==nA||t==oA||t==iA||t==aA}var sA=lA,uA=re["__core-js_shared__"],Ma=uA,id=function(){var e=/[^.]+$/.exec(Ma&&Ma.keys&&Ma.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cA(e){return!!id&&id in e}var dA=cA,pA=Function.prototype,gA=pA.toString;function fA(e){if(e!=null){try{return gA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=fA,yA=/[\\^$.*+?()[\]{}|]/g,mA=/^\[object .+?Constructor\]$/,hA=Function.prototype,bA=Object.prototype,vA=hA.toString,wA=bA.hasOwnProperty,kA=RegExp("^"+vA.call(wA).replace(yA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xA(e){if(!qd(e)||dA(e))return!1;var t=sA(e)?kA:mA;return t.test(Ne(e))}var IA=xA;function CA(e,t){return e?.[t]}var AA=CA;function SA(e,t){var r=AA(e,t);return IA(r)?r:void 0}var Mt=SA,MA=Mt(re,"WeakMap"),Da=MA;function jA(e,t){return e===t||e!==e&&t!==t}var $A=jA,EA=9007199254740991;function _A(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EA}var TA=_A,AX=Object.prototype,LA="[object Arguments]";function OA(e){return Ga(e)&&gi(e)==LA}var nd=OA,Gd=Object.prototype,NA=Gd.hasOwnProperty,DA=Gd.propertyIsEnumerable,SX=nd(function(){return arguments}())?nd:function(e){return Ga(e)&&NA.call(e,"callee")&&!DA.call(e,"callee")},Yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,od=Yd&&typeof module=="object"&&module&&!module.nodeType&&module,PA=od&&od.exports===Yd,ad=PA?re.Buffer:void 0,MX=ad?ad.isBuffer:void 0,zA="[object Arguments]",UA="[object Array]",RA="[object Boolean]",FA="[object Date]",VA="[object Error]",BA="[object Function]",qA="[object Map]",GA="[object Number]",YA="[object Object]",HA="[object RegExp]",ZA="[object Set]",QA="[object String]",WA="[object WeakMap]",KA="[object ArrayBuffer]",JA="[object DataView]",XA="[object Float32Array]",eS="[object Float64Array]",tS="[object Int8Array]",rS="[object Int16Array]",iS="[object Int32Array]",nS="[object Uint8Array]",oS="[object Uint8ClampedArray]",aS="[object Uint16Array]",lS="[object Uint32Array]",P={};P[XA]=P[eS]=P[tS]=P[rS]=P[iS]=P[nS]=P[oS]=P[aS]=P[lS]=!0;P[zA]=P[UA]=P[KA]=P[RA]=P[JA]=P[FA]=P[VA]=P[BA]=P[qA]=P[GA]=P[YA]=P[HA]=P[ZA]=P[QA]=P[WA]=!1;function sS(e){return Ga(e)&&TA(e.length)&&!!P[gi(e)]}var uS=sS;function cS(e){return function(t){return e(t)}}var dS=cS,Hd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ii=Hd&&typeof module=="object"&&module&&!module.nodeType&&module,pS=ii&&ii.exports===Hd,ja=pS&&Vd.process,gS=function(){try{var e=ii&&ii.require&&ii.require("util").types;return e||ja&&ja.binding&&ja.binding("util")}catch{}}(),ld=gS,sd=ld&&ld.isTypedArray,jX=sd?dS(sd):uS,fS=Object.prototype,$X=fS.hasOwnProperty;function yS(e,t){return function(r){return e(t(r))}}var mS=yS,EX=mS(Object.keys,Object),hS=Object.prototype,_X=hS.hasOwnProperty,bS=Mt(Object,"create"),ai=bS;function vS(){this.__data__=ai?ai(null):{},this.size=0}var wS=vS;function kS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var xS=kS,IS="__lodash_hash_undefined__",CS=Object.prototype,AS=CS.hasOwnProperty;function SS(e){var t=this.__data__;if(ai){var r=t[e];return r===IS?void 0:r}return AS.call(t,e)?t[e]:void 0}var MS=SS,jS=Object.prototype,$S=jS.hasOwnProperty;function ES(e){var t=this.__data__;return ai?t[e]!==void 0:$S.call(t,e)}var _S=ES,TS="__lodash_hash_undefined__";function LS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?TS:t,this}var OS=LS;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=wS;jt.prototype.delete=xS;jt.prototype.get=MS;jt.prototype.has=_S;jt.prototype.set=OS;var ud=jt;function NS(){this.__data__=[],this.size=0}var DS=NS;function PS(e,t){for(var r=e.length;r--;)if($A(e[r][0],t))return r;return-1}var Xn=PS,zS=Array.prototype,US=zS.splice;function RS(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():US.call(t,r,1),--this.size,!0}var FS=RS;function VS(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var BS=VS;function qS(e){return Xn(this.__data__,e)>-1}var GS=qS;function YS(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 HS=YS;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=DS;$t.prototype.delete=FS;$t.prototype.get=BS;$t.prototype.has=GS;$t.prototype.set=HS;var eo=$t,ZS=Mt(re,"Map"),li=ZS;function QS(){this.size=0,this.__data__={hash:new ud,map:new(li||eo),string:new ud}}var WS=QS;function KS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var JS=KS;function XS(e,t){var r=e.__data__;return JS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=XS;function eM(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var tM=eM;function rM(e){return to(this,e).get(e)}var iM=rM;function nM(e){return to(this,e).has(e)}var oM=nM;function aM(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var lM=aM;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=WS;Et.prototype.delete=tM;Et.prototype.get=iM;Et.prototype.has=oM;Et.prototype.set=lM;var Zd=Et;function sM(){this.__data__=new eo,this.size=0}var uM=sM;function cM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dM=cM;function pM(e){return this.__data__.get(e)}var gM=pM;function fM(e){return this.__data__.has(e)}var yM=fM,mM=200;function hM(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!li||i.length<mM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Zd(i)}return r.set(e,t),this.size=r.size,this}var bM=hM;function fi(e){var t=this.__data__=new eo(e);this.size=t.size}fi.prototype.clear=uM;fi.prototype.delete=dM;fi.prototype.get=gM;fi.prototype.has=yM;fi.prototype.set=bM;var vM=Object.prototype,TX=vM.propertyIsEnumerable,wM=Mt(re,"DataView"),Pa=wM,kM=Mt(re,"Promise"),za=kM,xM=Mt(re,"Set"),Ua=xM,cd="[object Map]",IM="[object Object]",dd="[object Promise]",pd="[object Set]",gd="[object WeakMap]",fd="[object DataView]",CM=Ne(Pa),AM=Ne(li),SM=Ne(za),MM=Ne(Ua),jM=Ne(Da),vt=gi;(Pa&&vt(new Pa(new ArrayBuffer(1)))!=fd||li&&vt(new li)!=cd||za&&vt(za.resolve())!=dd||Ua&&vt(new Ua)!=pd||Da&&vt(new Da)!=gd)&&(vt=function(e){var t=gi(e),r=t==IM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case CM:return fd;case AM:return cd;case SM:return dd;case MM:return pd;case jM:return gd}return t});var LX=re.Uint8Array,$M="__lodash_hash_undefined__";function EM(e){return this.__data__.set(e,$M),this}var _M=EM;function TM(e){return this.__data__.has(e)}var LM=TM;function Ra(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Zd;++t<r;)this.add(e[t])}Ra.prototype.add=Ra.prototype.push=_M;Ra.prototype.has=LM;var yd=xt?xt.prototype:void 0,OX=yd?yd.valueOf:void 0,OM=Object.prototype,NX=OM.hasOwnProperty,NM=Object.prototype,DX=NM.hasOwnProperty,PX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),zX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),UX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function DM(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 Qd(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 DM(i,t)}function PM(e){return e==null?[]:Array.isArray(e)?e:[e]}var md=PM;function zM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function UM(e){return typeof e?.translate=="function"}function RM(e,t,r){return e&&zM(e)&&UM(e.i18n)?e.i18n.translate(t):r}var ti="@imgly/plugin-ai-video-generation-web";var ro="createVideo",hd=`ly.img.${ro}`,FM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,bd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${ro}`;function VM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var BM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${bd}`]:"Create Video...",[`${bd}.description`]:"Create a video from the image"}}),{id:hd,type:"quick",kind:"image",label:`${FM}`,enable:_I(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${hd}.button`,{label:VM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Qd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),qM=BM,io="animateBetweenImages",vd=`ly.img.${io}`,GM=`ly.img.plugin-ai-video-generation-web.quickAction.${io}`,wd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${io}`;function YM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var HM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${wd}`]:"Animate Between Images...",[`${wd}.description`]:"Create a video transitioning between two images"}}),{id:vd,type:"quick",kind:"image",label:`${GM}`,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(`${vd}.button`,{label:YM(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=>Qd(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"})}}})}}),ZM=HM,he="ly.img.ai.video-generation";function QM(e){return{async initialize({cesdk:t}){if(t==null)return;MI(t,ti,"1.79.0"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${he}`]:"Video Generation",[`${he}.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."}}),WM(e);let i=Qn.get().register({type:"plugin",sceneMode:"Video",id:ti,pluginId:ti,label:RM(t,r,"Generate Video"),labelKey:r,meta:{panelId:he},execute:()=>{t.ui.isPanelOpen(he)?t.ui.closePanel(he):t.ui.openPanel(he)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(md(n).map(l=>l({cesdk:t}))),s=await Promise.all(md(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await UC("video",{fromText:o,fromImage:s},{cesdk:t},e);Qn.get().register(qM({cesdk:t})),Qn.get().register(ZM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(he,c.panel.builderRenderFunction),$I({cesdk:t,panelId:he})):i()}}}function WM(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 KM=QM,JM=e=>({name:ti,version:"1.79.0",...KM(e)}),Wd=JM;var XM=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;Lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Lt(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 Lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Lt(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 Lt(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]=Lt(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]=Lt(n,t,a)}return e}var ej=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")}},tj=typeof global=="object"&&global&&global.Object===Object&&global,Dp=tj,rj=typeof self=="object"&&self&&self.Object===Object&&self,ij=Dp||rj||Function("return this")(),ie=ij,nj=ie.Symbol,Ot=nj,Pp=Object.prototype,oj=Pp.hasOwnProperty,aj=Pp.toString,yi=Ot?Ot.toStringTag:void 0;function lj(e){var t=oj.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=aj.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var sj=lj,uj=Object.prototype,cj=uj.toString;function dj(e){return cj.call(e)}var pj=dj,gj="[object Null]",fj="[object Undefined]",Kd=Ot?Ot.toStringTag:void 0;function yj(e){return e==null?e===void 0?fj:gj:Kd&&Kd in Object(e)?sj(e):pj(e)}var Si=yj;function mj(e){return e!=null&&typeof e=="object"}var dl=mj,BX=Array.isArray;function hj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zp=hj,bj="[object AsyncFunction]",vj="[object Function]",wj="[object GeneratorFunction]",kj="[object Proxy]";function xj(e){if(!zp(e))return!1;var t=Si(e);return t==vj||t==wj||t==bj||t==kj}var Ij=xj,Cj=ie["__core-js_shared__"],Ya=Cj,Jd=function(){var e=/[^.]+$/.exec(Ya&&Ya.keys&&Ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Aj(e){return!!Jd&&Jd in e}var Sj=Aj,Mj=Function.prototype,jj=Mj.toString;function $j(e){if(e!=null){try{return jj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=$j,Ej=/[\\^$.*+?()[\]{}|]/g,_j=/^\[object .+?Constructor\]$/,Tj=Function.prototype,Lj=Object.prototype,Oj=Tj.toString,Nj=Lj.hasOwnProperty,Dj=RegExp("^"+Oj.call(Nj).replace(Ej,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pj(e){if(!zp(e)||Sj(e))return!1;var t=Ij(e)?Dj:_j;return t.test(ze(e))}var zj=Pj;function Uj(e,t){return e?.[t]}var Rj=Uj;function Fj(e,t){var r=Rj(e,t);return zj(r)?r:void 0}var Dt=Fj,Vj=Dt(ie,"WeakMap"),Xa=Vj;function Bj(e,t){return e===t||e!==e&&t!==t}var qj=Bj,Gj=9007199254740991;function Yj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gj}var Hj=Yj,qX=Object.prototype,Zj="[object Arguments]";function Qj(e){return dl(e)&&Si(e)==Zj}var Xd=Qj,Up=Object.prototype,Wj=Up.hasOwnProperty,Kj=Up.propertyIsEnumerable,GX=Xd(function(){return arguments}())?Xd:function(e){return dl(e)&&Wj.call(e,"callee")&&!Kj.call(e,"callee")},Rp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ep=Rp&&typeof module=="object"&&module&&!module.nodeType&&module,Jj=ep&&ep.exports===Rp,tp=Jj?ie.Buffer:void 0,YX=tp?tp.isBuffer:void 0,Xj="[object Arguments]",e$="[object Array]",t$="[object Boolean]",r$="[object Date]",i$="[object Error]",n$="[object Function]",o$="[object Map]",a$="[object Number]",l$="[object Object]",s$="[object RegExp]",u$="[object Set]",c$="[object String]",d$="[object WeakMap]",p$="[object ArrayBuffer]",g$="[object DataView]",f$="[object Float32Array]",y$="[object Float64Array]",m$="[object Int8Array]",h$="[object Int16Array]",b$="[object Int32Array]",v$="[object Uint8Array]",w$="[object Uint8ClampedArray]",k$="[object Uint16Array]",x$="[object Uint32Array]",z={};z[f$]=z[y$]=z[m$]=z[h$]=z[b$]=z[v$]=z[w$]=z[k$]=z[x$]=!0;z[Xj]=z[e$]=z[p$]=z[t$]=z[g$]=z[r$]=z[i$]=z[n$]=z[o$]=z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=!1;function I$(e){return dl(e)&&Hj(e.length)&&!!z[Si(e)]}var C$=I$;function A$(e){return function(t){return e(t)}}var S$=A$,Fp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Fp&&typeof module=="object"&&module&&!module.nodeType&&module,M$=wi&&wi.exports===Fp,Ha=M$&&Dp.process,j$=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),rp=j$,ip=rp&&rp.isTypedArray,HX=ip?S$(ip):C$,$$=Object.prototype,ZX=$$.hasOwnProperty;function E$(e,t){return function(r){return e(t(r))}}var _$=E$,QX=_$(Object.keys,Object),T$=Object.prototype,WX=T$.hasOwnProperty,L$=Dt(Object,"create"),xi=L$;function O$(){this.__data__=xi?xi(null):{},this.size=0}var N$=O$;function D$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var P$=D$,z$="__lodash_hash_undefined__",U$=Object.prototype,R$=U$.hasOwnProperty;function F$(e){var t=this.__data__;if(xi){var r=t[e];return r===z$?void 0:r}return R$.call(t,e)?t[e]:void 0}var V$=F$,B$=Object.prototype,q$=B$.hasOwnProperty;function G$(e){var t=this.__data__;return xi?t[e]!==void 0:q$.call(t,e)}var Y$=G$,H$="__lodash_hash_undefined__";function Z$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xi&&t===void 0?H$:t,this}var Q$=Z$;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=N$;Pt.prototype.delete=P$;Pt.prototype.get=V$;Pt.prototype.has=Y$;Pt.prototype.set=Q$;var np=Pt;function W$(){this.__data__=[],this.size=0}var K$=W$;function J$(e,t){for(var r=e.length;r--;)if(qj(e[r][0],t))return r;return-1}var no=J$,X$=Array.prototype,eE=X$.splice;function tE(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eE.call(t,r,1),--this.size,!0}var rE=tE;function iE(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var nE=iE;function oE(e){return no(this.__data__,e)>-1}var aE=oE;function lE(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sE=lE;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=K$;zt.prototype.delete=rE;zt.prototype.get=nE;zt.prototype.has=aE;zt.prototype.set=sE;var oo=zt,uE=Dt(ie,"Map"),Ii=uE;function cE(){this.size=0,this.__data__={hash:new np,map:new(Ii||oo),string:new np}}var dE=cE;function pE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gE=pE;function fE(e,t){var r=e.__data__;return gE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=fE;function yE(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var mE=yE;function hE(e){return ao(this,e).get(e)}var bE=hE;function vE(e){return ao(this,e).has(e)}var wE=vE;function kE(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xE=kE;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=dE;Ut.prototype.delete=mE;Ut.prototype.get=bE;Ut.prototype.has=wE;Ut.prototype.set=xE;var Vp=Ut;function IE(){this.__data__=new oo,this.size=0}var CE=IE;function AE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SE=AE;function ME(e){return this.__data__.get(e)}var jE=ME;function $E(e){return this.__data__.has(e)}var EE=$E,_E=200;function TE(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Ii||i.length<_E-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vp(i)}return r.set(e,t),this.size=r.size,this}var LE=TE;function Mi(e){var t=this.__data__=new oo(e);this.size=t.size}Mi.prototype.clear=CE;Mi.prototype.delete=SE;Mi.prototype.get=jE;Mi.prototype.has=EE;Mi.prototype.set=LE;var OE=Object.prototype,KX=OE.propertyIsEnumerable,NE=Dt(ie,"DataView"),el=NE,DE=Dt(ie,"Promise"),tl=DE,PE=Dt(ie,"Set"),rl=PE,op="[object Map]",zE="[object Object]",ap="[object Promise]",lp="[object Set]",sp="[object WeakMap]",up="[object DataView]",UE=ze(el),RE=ze(Ii),FE=ze(tl),VE=ze(rl),BE=ze(Xa),_t=Si;(el&&_t(new el(new ArrayBuffer(1)))!=up||Ii&&_t(new Ii)!=op||tl&&_t(tl.resolve())!=ap||rl&&_t(new rl)!=lp||Xa&&_t(new Xa)!=sp)&&(_t=function(e){var t=Si(e),r=t==zE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case UE:return up;case RE:return op;case FE:return ap;case VE:return lp;case BE:return sp}return t});var JX=ie.Uint8Array,qE="__lodash_hash_undefined__";function GE(e){return this.__data__.set(e,qE),this}var YE=GE;function HE(e){return this.__data__.has(e)}var ZE=HE;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vp;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=YE;il.prototype.has=ZE;var cp=Ot?Ot.prototype:void 0,XX=cp?cp.valueOf:void 0,QE=Object.prototype,eee=QE.hasOwnProperty,WE=Object.prototype,tee=WE.hasOwnProperty,ree=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),iee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),nee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Bp(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 KE(e,t){let r=await Bp(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 JE(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 Bp(i,t)}function XE(e){return e!==void 0}var e_=XE;function pl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function $i(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var qp=class Gp{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 Gp),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))}},t_=class Yp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Yp),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 r_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i_({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 n_=i_,Za="ly.img.ai.temp";async function o_(e,t){return e.engine.asset.findAllSources().includes(Za)||e.engine.asset.addLocalSource(Za),e.engine.asset.apply(Za,t)}function a_(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 Hp(){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 l_(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 s_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gl(e){return e instanceof Error&&e.name==="AbortError"}function 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 c_(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
+ `,vA=bA;function wA(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 Vd(2e3),await kA(t,e,r)):i(t,r)}async function kA(e,t,r){switch(t.kind){case"image":return xA(e,t,r);case"video":return IA(e,t,r);case"text":return AA(e,t,r);case"audio":return SA(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xA(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 yI(s,r),l=await fI(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 IA(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function AA(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Kr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Kr(n,o)}else"customPrompt"in e?a=Kr(n,"custom"):a=Kr(n,"improved");else a=Kr(n,"generated");return CA(a,r.abortSignal)}async function*CA(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 Vd(100)}return{kind:"text",text:e}}function Kr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function SA(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:MA(220,i),duration:i,thumbnailUrl:void 0}}function MA(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 jA(i,44100)}function jA(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vd(e){return new Promise(t=>{setTimeout(t,e)})}var $A=wA,EA="USER_CANCEL";function _A(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=vI([...e.provider.output.middleware??[],...r?.middlewares??[],kI({enable:r?.debug}),$A({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,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:CI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ba(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===EA?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var TA=_A;async function LA(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 y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=yA(a),s=hA(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=TA({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gA(a,c);SI(r.cesdk,"@imgly/plugin-ai-generation",vA);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return bI.get().register(u),u}var Ma=LA;function OA(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 hw(n,r,i);return r.engine.asset.addSource(a),a.id}var NA=OA;function ei(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function DA(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ma(e,u,r,i)));o.push(...l),a=zA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ma(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ma(e,d,r,i)));o.push(...u),a=PA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=NA({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(hI)}),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 PA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Na(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Na(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&rd(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:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&rd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function zA({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:Na(p),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:ei(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ga(r.id),!1).value)}var UA=DA,SX=5*60*1e3,RA=typeof global=="object"&&global&&global.Object===Object&&global,Bd=RA,FA=typeof self=="object"&&self&&self.Object===Object&&self,VA=Bd||FA||Function("return this")(),re=VA,BA=re.Symbol,xt=BA,qd=Object.prototype,qA=qd.hasOwnProperty,GA=qd.toString,Jr=xt?xt.toStringTag:void 0;function YA(e){var t=qA.call(e,Jr),r=e[Jr];try{e[Jr]=void 0;var i=!0}catch{}var n=GA.call(e);return i&&(t?e[Jr]=r:delete e[Jr]),n}var HA=YA,ZA=Object.prototype,QA=ZA.toString;function WA(e){return QA.call(e)}var KA=WA,JA="[object Null]",XA="[object Undefined]",id=xt?xt.toStringTag:void 0;function eC(e){return e==null?e===void 0?XA:JA:id&&id in Object(e)?HA(e):KA(e)}var gi=eC;function tC(e){return e!=null&&typeof e=="object"}var Ya=tC,MX=Array.isArray;function rC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gd=rC,iC="[object AsyncFunction]",nC="[object Function]",oC="[object GeneratorFunction]",aC="[object Proxy]";function lC(e){if(!Gd(e))return!1;var t=gi(e);return t==nC||t==oC||t==iC||t==aC}var sC=lC,uC=re["__core-js_shared__"],ja=uC,nd=function(){var e=/[^.]+$/.exec(ja&&ja.keys&&ja.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cC(e){return!!nd&&nd in e}var dC=cC,pC=Function.prototype,gC=pC.toString;function fC(e){if(e!=null){try{return gC.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=fC,yC=/[\\^$.*+?()[\]{}|]/g,mC=/^\[object .+?Constructor\]$/,hC=Function.prototype,bC=Object.prototype,vC=hC.toString,wC=bC.hasOwnProperty,kC=RegExp("^"+vC.call(wC).replace(yC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xC(e){if(!Gd(e)||dC(e))return!1;var t=sC(e)?kC:mC;return t.test(Ne(e))}var IC=xC;function AC(e,t){return e?.[t]}var CC=AC;function SC(e,t){var r=CC(e,t);return IC(r)?r:void 0}var Mt=SC,MC=Mt(re,"WeakMap"),Pa=MC;function jC(e,t){return e===t||e!==e&&t!==t}var $C=jC,EC=9007199254740991;function _C(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EC}var TC=_C,jX=Object.prototype,LC="[object Arguments]";function OC(e){return Ya(e)&&gi(e)==LC}var od=OC,Yd=Object.prototype,NC=Yd.hasOwnProperty,DC=Yd.propertyIsEnumerable,$X=od(function(){return arguments}())?od:function(e){return Ya(e)&&NC.call(e,"callee")&&!DC.call(e,"callee")},Hd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ad=Hd&&typeof module=="object"&&module&&!module.nodeType&&module,PC=ad&&ad.exports===Hd,ld=PC?re.Buffer:void 0,EX=ld?ld.isBuffer:void 0,zC="[object Arguments]",UC="[object Array]",RC="[object Boolean]",FC="[object Date]",VC="[object Error]",BC="[object Function]",qC="[object Map]",GC="[object Number]",YC="[object Object]",HC="[object RegExp]",ZC="[object Set]",QC="[object String]",WC="[object WeakMap]",KC="[object ArrayBuffer]",JC="[object DataView]",XC="[object Float32Array]",eS="[object Float64Array]",tS="[object Int8Array]",rS="[object Int16Array]",iS="[object Int32Array]",nS="[object Uint8Array]",oS="[object Uint8ClampedArray]",aS="[object Uint16Array]",lS="[object Uint32Array]",P={};P[XC]=P[eS]=P[tS]=P[rS]=P[iS]=P[nS]=P[oS]=P[aS]=P[lS]=!0;P[zC]=P[UC]=P[KC]=P[RC]=P[JC]=P[FC]=P[VC]=P[BC]=P[qC]=P[GC]=P[YC]=P[HC]=P[ZC]=P[QC]=P[WC]=!1;function sS(e){return Ya(e)&&TC(e.length)&&!!P[gi(e)]}var uS=sS;function cS(e){return function(t){return e(t)}}var dS=cS,Zd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ii=Zd&&typeof module=="object"&&module&&!module.nodeType&&module,pS=ii&&ii.exports===Zd,$a=pS&&Bd.process,gS=function(){try{var e=ii&&ii.require&&ii.require("util").types;return e||$a&&$a.binding&&$a.binding("util")}catch{}}(),sd=gS,ud=sd&&sd.isTypedArray,_X=ud?dS(ud):uS,fS=Object.prototype,TX=fS.hasOwnProperty;function yS(e,t){return function(r){return e(t(r))}}var mS=yS,LX=mS(Object.keys,Object),hS=Object.prototype,OX=hS.hasOwnProperty,bS=Mt(Object,"create"),ai=bS;function vS(){this.__data__=ai?ai(null):{},this.size=0}var wS=vS;function kS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var xS=kS,IS="__lodash_hash_undefined__",AS=Object.prototype,CS=AS.hasOwnProperty;function SS(e){var t=this.__data__;if(ai){var r=t[e];return r===IS?void 0:r}return CS.call(t,e)?t[e]:void 0}var MS=SS,jS=Object.prototype,$S=jS.hasOwnProperty;function ES(e){var t=this.__data__;return ai?t[e]!==void 0:$S.call(t,e)}var _S=ES,TS="__lodash_hash_undefined__";function LS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?TS:t,this}var OS=LS;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=wS;jt.prototype.delete=xS;jt.prototype.get=MS;jt.prototype.has=_S;jt.prototype.set=OS;var cd=jt;function NS(){this.__data__=[],this.size=0}var DS=NS;function PS(e,t){for(var r=e.length;r--;)if($C(e[r][0],t))return r;return-1}var Xn=PS,zS=Array.prototype,US=zS.splice;function RS(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():US.call(t,r,1),--this.size,!0}var FS=RS;function VS(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var BS=VS;function qS(e){return Xn(this.__data__,e)>-1}var GS=qS;function YS(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 HS=YS;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=DS;$t.prototype.delete=FS;$t.prototype.get=BS;$t.prototype.has=GS;$t.prototype.set=HS;var eo=$t,ZS=Mt(re,"Map"),li=ZS;function QS(){this.size=0,this.__data__={hash:new cd,map:new(li||eo),string:new cd}}var WS=QS;function KS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var JS=KS;function XS(e,t){var r=e.__data__;return JS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=XS;function eM(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var tM=eM;function rM(e){return to(this,e).get(e)}var iM=rM;function nM(e){return to(this,e).has(e)}var oM=nM;function aM(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var lM=aM;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=WS;Et.prototype.delete=tM;Et.prototype.get=iM;Et.prototype.has=oM;Et.prototype.set=lM;var Qd=Et;function sM(){this.__data__=new eo,this.size=0}var uM=sM;function cM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dM=cM;function pM(e){return this.__data__.get(e)}var gM=pM;function fM(e){return this.__data__.has(e)}var yM=fM,mM=200;function hM(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!li||i.length<mM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qd(i)}return r.set(e,t),this.size=r.size,this}var bM=hM;function fi(e){var t=this.__data__=new eo(e);this.size=t.size}fi.prototype.clear=uM;fi.prototype.delete=dM;fi.prototype.get=gM;fi.prototype.has=yM;fi.prototype.set=bM;var vM=Object.prototype,NX=vM.propertyIsEnumerable,wM=Mt(re,"DataView"),za=wM,kM=Mt(re,"Promise"),Ua=kM,xM=Mt(re,"Set"),Ra=xM,dd="[object Map]",IM="[object Object]",pd="[object Promise]",gd="[object Set]",fd="[object WeakMap]",yd="[object DataView]",AM=Ne(za),CM=Ne(li),SM=Ne(Ua),MM=Ne(Ra),jM=Ne(Pa),vt=gi;(za&&vt(new za(new ArrayBuffer(1)))!=yd||li&&vt(new li)!=dd||Ua&&vt(Ua.resolve())!=pd||Ra&&vt(new Ra)!=gd||Pa&&vt(new Pa)!=fd)&&(vt=function(e){var t=gi(e),r=t==IM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case AM:return yd;case CM:return dd;case SM:return pd;case MM:return gd;case jM:return fd}return t});var DX=re.Uint8Array,$M="__lodash_hash_undefined__";function EM(e){return this.__data__.set(e,$M),this}var _M=EM;function TM(e){return this.__data__.has(e)}var LM=TM;function Fa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qd;++t<r;)this.add(e[t])}Fa.prototype.add=Fa.prototype.push=_M;Fa.prototype.has=LM;var md=xt?xt.prototype:void 0,PX=md?md.valueOf:void 0,OM=Object.prototype,zX=OM.hasOwnProperty,NM=Object.prototype,UX=NM.hasOwnProperty,RX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),FX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),VX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function DM(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 Wd(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 DM(i,t)}function PM(e){return e==null?[]:Array.isArray(e)?e:[e]}var hd=PM;function zM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function UM(e){return typeof e?.translate=="function"}function RM(e,t,r){return e&&zM(e)&&UM(e.i18n)?e.i18n.translate(t):r}var ti="@imgly/plugin-ai-video-generation-web";var ro="createVideo",bd=`ly.img.${ro}`,FM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,vd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${ro}`;function VM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var BM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${vd}`]:"Create Video...",[`${vd}.description`]:"Create a video from the image"}}),{id:bd,type:"quick",kind:"image",label:`${FM}`,enable:_I(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${bd}.button`,{label:VM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Wd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),qM=BM,io="animateBetweenImages",wd=`ly.img.${io}`,GM=`ly.img.plugin-ai-video-generation-web.quickAction.${io}`,kd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${io}`;function YM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var HM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${kd}`]:"Animate Between Images...",[`${kd}.description`]:"Create a video transitioning between two images"}}),{id:wd,type:"quick",kind:"image",label:`${GM}`,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(`${wd}.button`,{label:YM(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=>Wd(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"})}}})}}),ZM=HM,he="ly.img.ai.video-generation";function QM(e){return{async initialize({cesdk:t}){if(t==null)return;MI(t,ti,"1.79.0"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${he}`]:"Video Generation",[`${he}.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."}}),WM(e);let i=Qn.get().register({type:"plugin",sceneMode:"Video",id:ti,pluginId:ti,label:RM(t,r,"Generate Video"),labelKey:r,meta:{panelId:he},execute:()=>{t.ui.isPanelOpen(he)?t.ui.closePanel(he):t.ui.openPanel(he)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(hd(n).map(l=>l({cesdk:t}))),s=await Promise.all(hd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await UA("video",{fromText:o,fromImage:s},{cesdk:t},e);Qn.get().register(qM({cesdk:t})),Qn.get().register(ZM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(he,c.panel.builderRenderFunction),$I({cesdk:t,panelId:he})):i()}}}function WM(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 KM=QM,JM=e=>({name:ti,version:"1.79.0",...KM(e)}),Kd=JM;var XM=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;Lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Lt(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 Lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Lt(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 Lt(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]=Lt(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]=Lt(n,t,a)}return e}var ej=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")}},tj=typeof global=="object"&&global&&global.Object===Object&&global,Pp=tj,rj=typeof self=="object"&&self&&self.Object===Object&&self,ij=Pp||rj||Function("return this")(),ie=ij,nj=ie.Symbol,Ot=nj,zp=Object.prototype,oj=zp.hasOwnProperty,aj=zp.toString,yi=Ot?Ot.toStringTag:void 0;function lj(e){var t=oj.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=aj.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var sj=lj,uj=Object.prototype,cj=uj.toString;function dj(e){return cj.call(e)}var pj=dj,gj="[object Null]",fj="[object Undefined]",Jd=Ot?Ot.toStringTag:void 0;function yj(e){return e==null?e===void 0?fj:gj:Jd&&Jd in Object(e)?sj(e):pj(e)}var Si=yj;function mj(e){return e!=null&&typeof e=="object"}var pl=mj,YX=Array.isArray;function hj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Up=hj,bj="[object AsyncFunction]",vj="[object Function]",wj="[object GeneratorFunction]",kj="[object Proxy]";function xj(e){if(!Up(e))return!1;var t=Si(e);return t==vj||t==wj||t==bj||t==kj}var Ij=xj,Aj=ie["__core-js_shared__"],Ha=Aj,Xd=function(){var e=/[^.]+$/.exec(Ha&&Ha.keys&&Ha.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Cj(e){return!!Xd&&Xd in e}var Sj=Cj,Mj=Function.prototype,jj=Mj.toString;function $j(e){if(e!=null){try{return jj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=$j,Ej=/[\\^$.*+?()[\]{}|]/g,_j=/^\[object .+?Constructor\]$/,Tj=Function.prototype,Lj=Object.prototype,Oj=Tj.toString,Nj=Lj.hasOwnProperty,Dj=RegExp("^"+Oj.call(Nj).replace(Ej,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pj(e){if(!Up(e)||Sj(e))return!1;var t=Ij(e)?Dj:_j;return t.test(ze(e))}var zj=Pj;function Uj(e,t){return e?.[t]}var Rj=Uj;function Fj(e,t){var r=Rj(e,t);return zj(r)?r:void 0}var Dt=Fj,Vj=Dt(ie,"WeakMap"),el=Vj;function Bj(e,t){return e===t||e!==e&&t!==t}var qj=Bj,Gj=9007199254740991;function Yj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gj}var Hj=Yj,HX=Object.prototype,Zj="[object Arguments]";function Qj(e){return pl(e)&&Si(e)==Zj}var ep=Qj,Rp=Object.prototype,Wj=Rp.hasOwnProperty,Kj=Rp.propertyIsEnumerable,ZX=ep(function(){return arguments}())?ep:function(e){return pl(e)&&Wj.call(e,"callee")&&!Kj.call(e,"callee")},Fp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tp=Fp&&typeof module=="object"&&module&&!module.nodeType&&module,Jj=tp&&tp.exports===Fp,rp=Jj?ie.Buffer:void 0,QX=rp?rp.isBuffer:void 0,Xj="[object Arguments]",e$="[object Array]",t$="[object Boolean]",r$="[object Date]",i$="[object Error]",n$="[object Function]",o$="[object Map]",a$="[object Number]",l$="[object Object]",s$="[object RegExp]",u$="[object Set]",c$="[object String]",d$="[object WeakMap]",p$="[object ArrayBuffer]",g$="[object DataView]",f$="[object Float32Array]",y$="[object Float64Array]",m$="[object Int8Array]",h$="[object Int16Array]",b$="[object Int32Array]",v$="[object Uint8Array]",w$="[object Uint8ClampedArray]",k$="[object Uint16Array]",x$="[object Uint32Array]",z={};z[f$]=z[y$]=z[m$]=z[h$]=z[b$]=z[v$]=z[w$]=z[k$]=z[x$]=!0;z[Xj]=z[e$]=z[p$]=z[t$]=z[g$]=z[r$]=z[i$]=z[n$]=z[o$]=z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=!1;function I$(e){return pl(e)&&Hj(e.length)&&!!z[Si(e)]}var A$=I$;function C$(e){return function(t){return e(t)}}var S$=C$,Vp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Vp&&typeof module=="object"&&module&&!module.nodeType&&module,M$=wi&&wi.exports===Vp,Za=M$&&Pp.process,j$=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Za&&Za.binding&&Za.binding("util")}catch{}}(),ip=j$,np=ip&&ip.isTypedArray,WX=np?S$(np):A$,$$=Object.prototype,KX=$$.hasOwnProperty;function E$(e,t){return function(r){return e(t(r))}}var _$=E$,JX=_$(Object.keys,Object),T$=Object.prototype,XX=T$.hasOwnProperty,L$=Dt(Object,"create"),xi=L$;function O$(){this.__data__=xi?xi(null):{},this.size=0}var N$=O$;function D$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var P$=D$,z$="__lodash_hash_undefined__",U$=Object.prototype,R$=U$.hasOwnProperty;function F$(e){var t=this.__data__;if(xi){var r=t[e];return r===z$?void 0:r}return R$.call(t,e)?t[e]:void 0}var V$=F$,B$=Object.prototype,q$=B$.hasOwnProperty;function G$(e){var t=this.__data__;return xi?t[e]!==void 0:q$.call(t,e)}var Y$=G$,H$="__lodash_hash_undefined__";function Z$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xi&&t===void 0?H$:t,this}var Q$=Z$;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=N$;Pt.prototype.delete=P$;Pt.prototype.get=V$;Pt.prototype.has=Y$;Pt.prototype.set=Q$;var op=Pt;function W$(){this.__data__=[],this.size=0}var K$=W$;function J$(e,t){for(var r=e.length;r--;)if(qj(e[r][0],t))return r;return-1}var no=J$,X$=Array.prototype,eE=X$.splice;function tE(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eE.call(t,r,1),--this.size,!0}var rE=tE;function iE(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var nE=iE;function oE(e){return no(this.__data__,e)>-1}var aE=oE;function lE(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sE=lE;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=K$;zt.prototype.delete=rE;zt.prototype.get=nE;zt.prototype.has=aE;zt.prototype.set=sE;var oo=zt,uE=Dt(ie,"Map"),Ii=uE;function cE(){this.size=0,this.__data__={hash:new op,map:new(Ii||oo),string:new op}}var dE=cE;function pE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gE=pE;function fE(e,t){var r=e.__data__;return gE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=fE;function yE(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var mE=yE;function hE(e){return ao(this,e).get(e)}var bE=hE;function vE(e){return ao(this,e).has(e)}var wE=vE;function kE(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xE=kE;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=dE;Ut.prototype.delete=mE;Ut.prototype.get=bE;Ut.prototype.has=wE;Ut.prototype.set=xE;var Bp=Ut;function IE(){this.__data__=new oo,this.size=0}var AE=IE;function CE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SE=CE;function ME(e){return this.__data__.get(e)}var jE=ME;function $E(e){return this.__data__.has(e)}var EE=$E,_E=200;function TE(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Ii||i.length<_E-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 LE=TE;function Mi(e){var t=this.__data__=new oo(e);this.size=t.size}Mi.prototype.clear=AE;Mi.prototype.delete=SE;Mi.prototype.get=jE;Mi.prototype.has=EE;Mi.prototype.set=LE;var OE=Object.prototype,eee=OE.propertyIsEnumerable,NE=Dt(ie,"DataView"),tl=NE,DE=Dt(ie,"Promise"),rl=DE,PE=Dt(ie,"Set"),il=PE,ap="[object Map]",zE="[object Object]",lp="[object Promise]",sp="[object Set]",up="[object WeakMap]",cp="[object DataView]",UE=ze(tl),RE=ze(Ii),FE=ze(rl),VE=ze(il),BE=ze(el),_t=Si;(tl&&_t(new tl(new ArrayBuffer(1)))!=cp||Ii&&_t(new Ii)!=ap||rl&&_t(rl.resolve())!=lp||il&&_t(new il)!=sp||el&&_t(new el)!=up)&&(_t=function(e){var t=Si(e),r=t==zE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case UE:return cp;case RE:return ap;case FE:return lp;case VE:return sp;case BE:return up}return t});var tee=ie.Uint8Array,qE="__lodash_hash_undefined__";function GE(e){return this.__data__.set(e,qE),this}var YE=GE;function HE(e){return this.__data__.has(e)}var ZE=HE;function nl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Bp;++t<r;)this.add(e[t])}nl.prototype.add=nl.prototype.push=YE;nl.prototype.has=ZE;var dp=Ot?Ot.prototype:void 0,ree=dp?dp.valueOf:void 0,QE=Object.prototype,iee=QE.hasOwnProperty,WE=Object.prototype,nee=WE.hasOwnProperty,oee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),aee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),lee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function qp(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 KE(e,t){let r=await qp(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 JE(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 qp(i,t)}function XE(e){return e!==void 0}var e_=XE;function gl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function $i(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Gp=class Yp{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 Yp),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))}},t_=class Hp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Hp),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 r_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i_({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 n_=i_,Qa="ly.img.ai.temp";async function o_(e,t){return e.engine.asset.findAllSources().includes(Qa)||e.engine.asset.addLocalSource(Qa),e.engine.asset.apply(Qa,t)}function a_(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 Zp(){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 l_(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 s_(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 fl(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 c_(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 d_(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 dp=d_;function p_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),g_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a_(e)}))}function g_(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 pp=p_,f_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fl=f_;function y_(e,t,r){switch(t){case"image":return m_(e,r[t]);case"video":return h_(e,r[t]);case"sticker":return b_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function h_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function b_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var v_=y_;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 x_(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 I_(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 C_(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 x_(e,t,r){let i=t.width,n=t.height,a=await l_(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 I_(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 C_(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 Zp=w_;function A_(e){switch(e.userFlow){case"placeholder":return M_(e);case"generation-only":return S_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function S_(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=Hp(),c=await Zp(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 M_(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=Hp(),c=v_(s,a,o);if(i=await o_(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 Zp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var j_=A_;function yl(e){return`${e}.generating`}function $_(e){return`${e}.abort`}function E_(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($_(d),()=>{}),y=c.global(yl(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.some(h=>!x.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await j_({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(h.status==="aborted")return;if(h.status==="error"){pp(h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let I=t.output.notification;__(l,I,()=>({input:i().input,output:h.output}))}}catch(h){if(gl(h))return;pp(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function __(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 Qp=E_;function nl(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function T_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Qp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var L_=T_;function Wp(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=Wp(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 O_(e){return bi(e,{...e})}function N_(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 D_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return P_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function P_(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=z_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function z_(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 Kp=D_;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 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 Xp(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?U_(e,c,r,i,n,a,o,s):eg(e,c,r,i,n,a,o,s);case"boolean":return tg(e,c,r,i,n,a,o,s);case"number":case"integer":return rg(e,c,r,i,n,a,o,s);case"object":return ol(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return R_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ol(e,t,r,i,n,a,o,s){let c=Kp(t.schema??{},i).reduce((l,u)=>{let d=Xp(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 eg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=$i(d,m,f,t.schema.default,""),k=l(p,b),w=F_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function U_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:y,icons:f}=Jp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),b=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,b,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],h=l(p,x);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function rg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,b,m,k,k),x=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function R_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Jp(t.schema),x=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],I={string:eg,boolean:tg,integer:rg,object:ol},S=(v,$)=>v.$ref?v.$ref.split("/").pop():$.split(".").pop()??$,A=(v,$)=>({id:v,label:xe(t,r,o,$),icon:w[$]??w[v]});y.forEach((v,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(v.$ref||v.title){let M=v.$ref?v.$ref.split("/").pop():v.title;m[C]=()=>ol(e,{id:C,schema:{...v,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(v.type==="string"&&v.enum)v.enum.forEach(M=>{f.push(A(M,M))});else if(v.type&&I[v.type]){let M=I[v.type];m[C]=()=>M(e,{id:C,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=S(v,C);f.push(v.type==="string"&&!v.enum?{id:C,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:A(C,q))}});let _=$i(d,h,x,t.schema.default,null),j=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function F_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var V_=Xp,B_={"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 gp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function fp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||gp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||gp(g);n[a(l.id,g)]=y}})}});let c={...B_,...n};Object.keys(c).length>0&&pl(r.cesdk,{en:c})}function yp(e){return typeof e.document=="function"?e.document():e.document}function mp(e,t,r){let i=O_(e),n=Wp(i,t.inputReference);if(!N_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Kp(a,t);return{inputSchema:a,properties:o}}function hp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=V_(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Qp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function q_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=yp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=mp(c,s,a.debug);return fp(y,i,r,i.kind),hp(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(yp(s)).then(g=>{let{inputSchema:y,properties:f}=mp(g,s,a.debug);fp(f,i,r,i.kind),u=hp(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var G_=q_;async function Y_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return L_(e,t);case"schema":return G_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var H_=Y_;function Z_(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 XM(o,r)),o}return i}var Q_=Z_;function W_(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 K_=W_,Qa="@imgly/plugin-ai-generation",J_=`
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 d_(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 pp=d_;function p_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),g_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a_(e)}))}function g_(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,duration:i.duration}),!0}var gp=p_,f_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yl=f_;function y_(e,t,r){switch(t){case"image":return m_(e,r[t]);case"video":return h_(e,r[t]);case"sticker":return b_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:yl,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:yl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function b_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:yl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var v_=y_;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 x_(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 I_(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 A_(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 x_(e,t,r){let i=t.width,n=t.height,a=await l_(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 I_(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 A_(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 Qp=w_;function C_(e){switch(e.userFlow){case"placeholder":return M_(e);case"generation-only":return S_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function S_(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=Zp(),c=await Qp(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),error:n}}}}function M_(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=Zp(),c=v_(s,a,o);if(i=await o_(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 i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?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 Qp(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)&&(fl(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),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var j_=C_;function ml(e){return`${e}.generating`}function $_(e){return`${e}.abort`}function E_(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($_(d),()=>{}),y=c.global(ml(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await j_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){gp(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;__(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(fl(h))return;gp(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function __(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 Wp=E_;function ol(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function T_({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(ml(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Wp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var L_=T_;function Kp(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=Kp(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 O_(e){return bi(e,{...e})}function N_(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 D_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return P_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function P_(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=z_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function z_(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 Jp=D_;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 Xp(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 eg(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?U_(e,c,r,i,n,a,o,s):tg(e,c,r,i,n,a,o,s);case"boolean":return rg(e,c,r,i,n,a,o,s);case"number":case"integer":return ig(e,c,r,i,n,a,o,s);case"object":return al(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 R_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function al(e,t,r,i,n,a,o,s){let c=Jp(t.schema??{},i).reduce((l,u)=>{let d=eg(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 tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=$i(d,m,f,t.schema.default,""),k=l(p,b),w=F_(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function U_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:y,icons:f}=Xp(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:xe(t,r,o,x),icon:f[x]})),b=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function rg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function ig(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function R_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Xp(t.schema),I=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:tg,boolean:rg,integer:ig,object:al},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:xe(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>al(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=$i(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function F_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var V_=eg,B_={"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 fp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function yp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||fp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||fp(g);n[a(l.id,g)]=y}})}});let c={...B_,...n};Object.keys(c).length>0&&gl(r.cesdk,{en:c})}function mp(e){return typeof e.document=="function"?e.document():e.document}function hp(e,t,r){let i=O_(e),n=Kp(i,t.inputReference);if(!N_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Jp(a,t);return{inputSchema:a,properties:o}}function bp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=V_(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Wp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function q_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=mp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=hp(c,s,a.debug);return yp(y,i,r,i.kind),bp(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(mp(s)).then(g=>{let{inputSchema:y,properties:f}=hp(g,s,a.debug);yp(f,i,r,i.kind),u=bp(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var G_=q_;async function Y_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return L_(e,t);case"schema":return G_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var H_=Y_;function Z_(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 XM(o,r)),o}return i}var Q_=Z_;function W_(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 K_=W_,Wa="@imgly/plugin-ai-generation",J_=`
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="${Qa}/image"
230
+ id="${Wa}/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="${Qa}/video"
242
+ id="${Wa}/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="${Qa}/audio"
253
+ id="${Wa}/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
- `,X_=J_;function eT(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 ig(2e3),await tT(t,e,r)):i(t,r)}async function tT(e,t,r){switch(t.kind){case"image":return rT(e,t,r);case"video":return iT(e,t,r);case"text":return nT(e,t,r);case"audio":return aT(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function rT(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 JE(s,r),l=await KE(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 iT(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nT(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=mi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=mi(n,o)}else"customPrompt"in e?a=mi(n,"custom"):a=mi(n,"improved");else a=mi(n,"generated");return oT(a,r.abortSignal)}async function*oT(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 ig(100)}return{kind:"text",text:e}}function mi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function aT(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:lT(220,i),duration:i,thumbnailUrl:void 0}}function lT(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 sT(i,44100)}function sT(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function ig(e){return new Promise(t=>{setTimeout(t,e)})}var uT=eT,cT="USER_CANCEL";function dT(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r_([...e.provider.output.middleware??[],...r?.middlewares??[],n_({enable:r?.debug}),uT({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}:s_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===cT?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var pT=dT;async function gT(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=qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=Q_(a),s=K_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=pT({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await H_(a,c);u_(r.cesdk,"@imgly/plugin-ai-generation",X_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return t_.get().register(u),u}var Wa=gT;function fT(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 ej(n,r,i);return r.engine.asset.addSource(a),a.id}var yT=fT;function vi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function mT(e,t,r,i){let{cesdk:n}=r;pl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Wa(e,u,r,i)));o.push(...l),a=bT({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Wa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Wa(e,d,r,i)));o.push(...u),a=hT({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=yT({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(e_)}),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 hT({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(C=>C.id===w.value)??b[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?h:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,$=m.length>1&&j;if((v||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&bp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&bp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function bT({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:nl(p),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:vi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function bp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var vp=mT,vT=typeof global=="object"&&global&&global.Object===Object&&global,ng=vT,wT=typeof self=="object"&&self&&self.Object===Object&&self,kT=ng||wT||Function("return this")(),ne=kT,xT=ne.Symbol,Nt=xT,og=Object.prototype,IT=og.hasOwnProperty,CT=og.toString,hi=Nt?Nt.toStringTag:void 0;function AT(e){var t=IT.call(e,hi),r=e[hi];try{e[hi]=void 0;var i=!0}catch{}var n=CT.call(e);return i&&(t?e[hi]=r:delete e[hi]),n}var ST=AT,MT=Object.prototype,jT=MT.toString;function $T(e){return jT.call(e)}var ET=$T,_T="[object Null]",TT="[object Undefined]",wp=Nt?Nt.toStringTag:void 0;function LT(e){return e==null?e===void 0?TT:_T:wp&&wp in Object(e)?ST(e):ET(e)}var Ei=LT;function OT(e){return e!=null&&typeof e=="object"}var ml=OT,oee=Array.isArray;function NT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ag=NT,DT="[object AsyncFunction]",PT="[object Function]",zT="[object GeneratorFunction]",UT="[object Proxy]";function RT(e){if(!ag(e))return!1;var t=Ei(e);return t==PT||t==zT||t==DT||t==UT}var FT=RT,VT=ne["__core-js_shared__"],Ka=VT,kp=function(){var e=/[^.]+$/.exec(Ka&&Ka.keys&&Ka.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function BT(e){return!!kp&&kp in e}var qT=BT,GT=Function.prototype,YT=GT.toString;function HT(e){if(e!=null){try{return YT.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=HT,ZT=/[\\^$.*+?()[\]{}|]/g,QT=/^\[object .+?Constructor\]$/,WT=Function.prototype,KT=Object.prototype,JT=WT.toString,XT=KT.hasOwnProperty,eL=RegExp("^"+JT.call(XT).replace(ZT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tL(e){if(!ag(e)||qT(e))return!1;var t=FT(e)?eL:QT;return t.test(Ue(e))}var rL=tL;function iL(e,t){return e?.[t]}var nL=iL;function oL(e,t){var r=nL(e,t);return rL(r)?r:void 0}var Rt=oL,aL=Rt(ne,"WeakMap"),al=aL;function lL(e,t){return e===t||e!==e&&t!==t}var sL=lL,uL=9007199254740991;function cL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=uL}var dL=cL,aee=Object.prototype,pL="[object Arguments]";function gL(e){return ml(e)&&Ei(e)==pL}var xp=gL,lg=Object.prototype,fL=lg.hasOwnProperty,yL=lg.propertyIsEnumerable,lee=xp(function(){return arguments}())?xp:function(e){return ml(e)&&fL.call(e,"callee")&&!yL.call(e,"callee")},sg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ip=sg&&typeof module=="object"&&module&&!module.nodeType&&module,mL=Ip&&Ip.exports===sg,Cp=mL?ne.Buffer:void 0,see=Cp?Cp.isBuffer:void 0,hL="[object Arguments]",bL="[object Array]",vL="[object Boolean]",wL="[object Date]",kL="[object Error]",xL="[object Function]",IL="[object Map]",CL="[object Number]",AL="[object Object]",SL="[object RegExp]",ML="[object Set]",jL="[object String]",$L="[object WeakMap]",EL="[object ArrayBuffer]",_L="[object DataView]",TL="[object Float32Array]",LL="[object Float64Array]",OL="[object Int8Array]",NL="[object Int16Array]",DL="[object Int32Array]",PL="[object Uint8Array]",zL="[object Uint8ClampedArray]",UL="[object Uint16Array]",RL="[object Uint32Array]",U={};U[TL]=U[LL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=U[UL]=U[RL]=!0;U[hL]=U[bL]=U[EL]=U[vL]=U[_L]=U[wL]=U[kL]=U[xL]=U[IL]=U[CL]=U[AL]=U[SL]=U[ML]=U[jL]=U[$L]=!1;function FL(e){return ml(e)&&dL(e.length)&&!!U[Ei(e)]}var VL=FL;function BL(e){return function(t){return e(t)}}var qL=BL,ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=ug&&typeof module=="object"&&module&&!module.nodeType&&module,GL=ki&&ki.exports===ug,Ja=GL&&ng.process,YL=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Ja&&Ja.binding&&Ja.binding("util")}catch{}}(),Ap=YL,Sp=Ap&&Ap.isTypedArray,uee=Sp?qL(Sp):VL,HL=Object.prototype,cee=HL.hasOwnProperty;function ZL(e,t){return function(r){return e(t(r))}}var QL=ZL,dee=QL(Object.keys,Object),WL=Object.prototype,pee=WL.hasOwnProperty,KL=Rt(Object,"create"),Ci=KL;function JL(){this.__data__=Ci?Ci(null):{},this.size=0}var XL=JL;function eO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tO=eO,rO="__lodash_hash_undefined__",iO=Object.prototype,nO=iO.hasOwnProperty;function oO(e){var t=this.__data__;if(Ci){var r=t[e];return r===rO?void 0:r}return nO.call(t,e)?t[e]:void 0}var aO=oO,lO=Object.prototype,sO=lO.hasOwnProperty;function uO(e){var t=this.__data__;return Ci?t[e]!==void 0:sO.call(t,e)}var cO=uO,dO="__lodash_hash_undefined__";function pO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ci&&t===void 0?dO:t,this}var gO=pO;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=XL;Ft.prototype.delete=tO;Ft.prototype.get=aO;Ft.prototype.has=cO;Ft.prototype.set=gO;var Mp=Ft;function fO(){this.__data__=[],this.size=0}var yO=fO;function mO(e,t){for(var r=e.length;r--;)if(sL(e[r][0],t))return r;return-1}var lo=mO,hO=Array.prototype,bO=hO.splice;function vO(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():bO.call(t,r,1),--this.size,!0}var wO=vO;function kO(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var xO=kO;function IO(e){return lo(this.__data__,e)>-1}var CO=IO;function AO(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var SO=AO;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=yO;Vt.prototype.delete=wO;Vt.prototype.get=xO;Vt.prototype.has=CO;Vt.prototype.set=SO;var so=Vt,MO=Rt(ne,"Map"),Ai=MO;function jO(){this.size=0,this.__data__={hash:new Mp,map:new(Ai||so),string:new Mp}}var $O=jO;function EO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _O=EO;function TO(e,t){var r=e.__data__;return _O(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=TO;function LO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var OO=LO;function NO(e){return uo(this,e).get(e)}var DO=NO;function PO(e){return uo(this,e).has(e)}var zO=PO;function UO(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var RO=UO;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=$O;Bt.prototype.delete=OO;Bt.prototype.get=DO;Bt.prototype.has=zO;Bt.prototype.set=RO;var cg=Bt;function FO(){this.__data__=new so,this.size=0}var VO=FO;function BO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var qO=BO;function GO(e){return this.__data__.get(e)}var YO=GO;function HO(e){return this.__data__.has(e)}var ZO=HO,QO=200;function WO(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Ai||i.length<QO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cg(i)}return r.set(e,t),this.size=r.size,this}var KO=WO;function _i(e){var t=this.__data__=new so(e);this.size=t.size}_i.prototype.clear=VO;_i.prototype.delete=qO;_i.prototype.get=YO;_i.prototype.has=ZO;_i.prototype.set=KO;var JO=Object.prototype,gee=JO.propertyIsEnumerable,XO=Rt(ne,"DataView"),ll=XO,eN=Rt(ne,"Promise"),sl=eN,tN=Rt(ne,"Set"),ul=tN,jp="[object Map]",rN="[object Object]",$p="[object Promise]",Ep="[object Set]",_p="[object WeakMap]",Tp="[object DataView]",iN=Ue(ll),nN=Ue(Ai),oN=Ue(sl),aN=Ue(ul),lN=Ue(al),Tt=Ei;(ll&&Tt(new ll(new ArrayBuffer(1)))!=Tp||Ai&&Tt(new Ai)!=jp||sl&&Tt(sl.resolve())!=$p||ul&&Tt(new ul)!=Ep||al&&Tt(new al)!=_p)&&(Tt=function(e){var t=Ei(e),r=t==rN?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case iN:return Tp;case nN:return jp;case oN:return $p;case aN:return Ep;case lN:return _p}return t});var fee=ne.Uint8Array,sN="__lodash_hash_undefined__";function uN(e){return this.__data__.set(e,sN),this}var cN=uN;function dN(e){return this.__data__.has(e)}var pN=dN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cg;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=cN;cl.prototype.has=pN;var Lp=Nt?Nt.prototype:void 0,yee=Lp?Lp.valueOf:void 0,gN=Object.prototype,mee=gN.hasOwnProperty,fN=Object.prototype,hee=fN.hasOwnProperty,bee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),wee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function yN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Op=yN;function mN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function hN(e){return typeof e?.translate=="function"}function Np(e,t,r){return e&&mN(e)&&hN(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 bN(e){return{async initialize({cesdk:t}){if(t==null)return;c_(t,we,"1.79.0"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),vN(e);let n=qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Np(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:Np(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(Op(s).map(f=>f({cesdk:t}))),u=await Promise.all(Op(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 vp("audio",l,{cesdk:t},e),y=await vp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),dp({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),dp({cesdk:t,panelId:De})):o()}}}function vN(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 wN=bN,kN=e=>({name:we,version:"1.79.0",...wN(e)}),dg=kN;var xN="@imgly/plugin-ai-text-generation",IN=`
273
+ `,X_=J_;function eT(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 ng(2e3),await tT(t,e,r)):i(t,r)}async function tT(e,t,r){switch(t.kind){case"image":return rT(e,t,r);case"video":return iT(e,t,r);case"text":return nT(e,t,r);case"audio":return aT(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function rT(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 JE(s,r),l=await KE(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 iT(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nT(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=mi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=mi(n,o)}else"customPrompt"in e?a=mi(n,"custom"):a=mi(n,"improved");else a=mi(n,"generated");return oT(a,r.abortSignal)}async function*oT(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 ng(100)}return{kind:"text",text:e}}function mi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function aT(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:lT(220,i),duration:i,thumbnailUrl:void 0}}function lT(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 sT(i,44100)}function sT(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function ng(e){return new Promise(t=>{setTimeout(t,e)})}var uT=eT,cT="USER_CANCEL";function dT(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r_([...e.provider.output.middleware??[],...r?.middlewares??[],n_({enable:r?.debug}),uT({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,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:s_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return fl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===cT?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var pT=dT;async function gT(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=Gp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=Q_(a),s=K_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=pT({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await H_(a,c);u_(r.cesdk,"@imgly/plugin-ai-generation",X_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return t_.get().register(u),u}var Ka=gT;function fT(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 ej(n,r,i);return r.engine.asset.addSource(a),a.id}var yT=fT;function vi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function mT(e,t,r,i){let{cesdk:n}=r;gl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});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=bT({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=hT({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=yT({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(e_)}),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 hT({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:ol(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:ol(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&vp(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:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&vp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function bT({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:ol(p),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:vi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function vp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ml(r.id),!1).value)}var wp=mT,see=5*60*1e3,vT=typeof global=="object"&&global&&global.Object===Object&&global,og=vT,wT=typeof self=="object"&&self&&self.Object===Object&&self,kT=og||wT||Function("return this")(),ne=kT,xT=ne.Symbol,Nt=xT,ag=Object.prototype,IT=ag.hasOwnProperty,AT=ag.toString,hi=Nt?Nt.toStringTag:void 0;function CT(e){var t=IT.call(e,hi),r=e[hi];try{e[hi]=void 0;var i=!0}catch{}var n=AT.call(e);return i&&(t?e[hi]=r:delete e[hi]),n}var ST=CT,MT=Object.prototype,jT=MT.toString;function $T(e){return jT.call(e)}var ET=$T,_T="[object Null]",TT="[object Undefined]",kp=Nt?Nt.toStringTag:void 0;function LT(e){return e==null?e===void 0?TT:_T:kp&&kp in Object(e)?ST(e):ET(e)}var Ei=LT;function OT(e){return e!=null&&typeof e=="object"}var hl=OT,uee=Array.isArray;function NT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var lg=NT,DT="[object AsyncFunction]",PT="[object Function]",zT="[object GeneratorFunction]",UT="[object Proxy]";function RT(e){if(!lg(e))return!1;var t=Ei(e);return t==PT||t==zT||t==DT||t==UT}var FT=RT,VT=ne["__core-js_shared__"],Ja=VT,xp=function(){var e=/[^.]+$/.exec(Ja&&Ja.keys&&Ja.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function BT(e){return!!xp&&xp in e}var qT=BT,GT=Function.prototype,YT=GT.toString;function HT(e){if(e!=null){try{return YT.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=HT,ZT=/[\\^$.*+?()[\]{}|]/g,QT=/^\[object .+?Constructor\]$/,WT=Function.prototype,KT=Object.prototype,JT=WT.toString,XT=KT.hasOwnProperty,eL=RegExp("^"+JT.call(XT).replace(ZT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tL(e){if(!lg(e)||qT(e))return!1;var t=FT(e)?eL:QT;return t.test(Ue(e))}var rL=tL;function iL(e,t){return e?.[t]}var nL=iL;function oL(e,t){var r=nL(e,t);return rL(r)?r:void 0}var Rt=oL,aL=Rt(ne,"WeakMap"),ll=aL;function lL(e,t){return e===t||e!==e&&t!==t}var sL=lL,uL=9007199254740991;function cL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=uL}var dL=cL,cee=Object.prototype,pL="[object Arguments]";function gL(e){return hl(e)&&Ei(e)==pL}var Ip=gL,sg=Object.prototype,fL=sg.hasOwnProperty,yL=sg.propertyIsEnumerable,dee=Ip(function(){return arguments}())?Ip:function(e){return hl(e)&&fL.call(e,"callee")&&!yL.call(e,"callee")},ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ap=ug&&typeof module=="object"&&module&&!module.nodeType&&module,mL=Ap&&Ap.exports===ug,Cp=mL?ne.Buffer:void 0,pee=Cp?Cp.isBuffer:void 0,hL="[object Arguments]",bL="[object Array]",vL="[object Boolean]",wL="[object Date]",kL="[object Error]",xL="[object Function]",IL="[object Map]",AL="[object Number]",CL="[object Object]",SL="[object RegExp]",ML="[object Set]",jL="[object String]",$L="[object WeakMap]",EL="[object ArrayBuffer]",_L="[object DataView]",TL="[object Float32Array]",LL="[object Float64Array]",OL="[object Int8Array]",NL="[object Int16Array]",DL="[object Int32Array]",PL="[object Uint8Array]",zL="[object Uint8ClampedArray]",UL="[object Uint16Array]",RL="[object Uint32Array]",U={};U[TL]=U[LL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=U[UL]=U[RL]=!0;U[hL]=U[bL]=U[EL]=U[vL]=U[_L]=U[wL]=U[kL]=U[xL]=U[IL]=U[AL]=U[CL]=U[SL]=U[ML]=U[jL]=U[$L]=!1;function FL(e){return hl(e)&&dL(e.length)&&!!U[Ei(e)]}var VL=FL;function BL(e){return function(t){return e(t)}}var qL=BL,cg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=cg&&typeof module=="object"&&module&&!module.nodeType&&module,GL=ki&&ki.exports===cg,Xa=GL&&og.process,YL=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Xa&&Xa.binding&&Xa.binding("util")}catch{}}(),Sp=YL,Mp=Sp&&Sp.isTypedArray,gee=Mp?qL(Mp):VL,HL=Object.prototype,fee=HL.hasOwnProperty;function ZL(e,t){return function(r){return e(t(r))}}var QL=ZL,yee=QL(Object.keys,Object),WL=Object.prototype,mee=WL.hasOwnProperty,KL=Rt(Object,"create"),Ai=KL;function JL(){this.__data__=Ai?Ai(null):{},this.size=0}var XL=JL;function eO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tO=eO,rO="__lodash_hash_undefined__",iO=Object.prototype,nO=iO.hasOwnProperty;function oO(e){var t=this.__data__;if(Ai){var r=t[e];return r===rO?void 0:r}return nO.call(t,e)?t[e]:void 0}var aO=oO,lO=Object.prototype,sO=lO.hasOwnProperty;function uO(e){var t=this.__data__;return Ai?t[e]!==void 0:sO.call(t,e)}var cO=uO,dO="__lodash_hash_undefined__";function pO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ai&&t===void 0?dO:t,this}var gO=pO;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=XL;Ft.prototype.delete=tO;Ft.prototype.get=aO;Ft.prototype.has=cO;Ft.prototype.set=gO;var jp=Ft;function fO(){this.__data__=[],this.size=0}var yO=fO;function mO(e,t){for(var r=e.length;r--;)if(sL(e[r][0],t))return r;return-1}var lo=mO,hO=Array.prototype,bO=hO.splice;function vO(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():bO.call(t,r,1),--this.size,!0}var wO=vO;function kO(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var xO=kO;function IO(e){return lo(this.__data__,e)>-1}var AO=IO;function CO(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var SO=CO;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=yO;Vt.prototype.delete=wO;Vt.prototype.get=xO;Vt.prototype.has=AO;Vt.prototype.set=SO;var so=Vt,MO=Rt(ne,"Map"),Ci=MO;function jO(){this.size=0,this.__data__={hash:new jp,map:new(Ci||so),string:new jp}}var $O=jO;function EO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _O=EO;function TO(e,t){var r=e.__data__;return _O(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=TO;function LO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var OO=LO;function NO(e){return uo(this,e).get(e)}var DO=NO;function PO(e){return uo(this,e).has(e)}var zO=PO;function UO(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var RO=UO;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=$O;Bt.prototype.delete=OO;Bt.prototype.get=DO;Bt.prototype.has=zO;Bt.prototype.set=RO;var dg=Bt;function FO(){this.__data__=new so,this.size=0}var VO=FO;function BO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var qO=BO;function GO(e){return this.__data__.get(e)}var YO=GO;function HO(e){return this.__data__.has(e)}var ZO=HO,QO=200;function WO(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Ci||i.length<QO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new dg(i)}return r.set(e,t),this.size=r.size,this}var KO=WO;function _i(e){var t=this.__data__=new so(e);this.size=t.size}_i.prototype.clear=VO;_i.prototype.delete=qO;_i.prototype.get=YO;_i.prototype.has=ZO;_i.prototype.set=KO;var JO=Object.prototype,hee=JO.propertyIsEnumerable,XO=Rt(ne,"DataView"),sl=XO,eN=Rt(ne,"Promise"),ul=eN,tN=Rt(ne,"Set"),cl=tN,$p="[object Map]",rN="[object Object]",Ep="[object Promise]",_p="[object Set]",Tp="[object WeakMap]",Lp="[object DataView]",iN=Ue(sl),nN=Ue(Ci),oN=Ue(ul),aN=Ue(cl),lN=Ue(ll),Tt=Ei;(sl&&Tt(new sl(new ArrayBuffer(1)))!=Lp||Ci&&Tt(new Ci)!=$p||ul&&Tt(ul.resolve())!=Ep||cl&&Tt(new cl)!=_p||ll&&Tt(new ll)!=Tp)&&(Tt=function(e){var t=Ei(e),r=t==rN?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case iN:return Lp;case nN:return $p;case oN:return Ep;case aN:return _p;case lN:return Tp}return t});var bee=ne.Uint8Array,sN="__lodash_hash_undefined__";function uN(e){return this.__data__.set(e,sN),this}var cN=uN;function dN(e){return this.__data__.has(e)}var pN=dN;function dl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new dg;++t<r;)this.add(e[t])}dl.prototype.add=dl.prototype.push=cN;dl.prototype.has=pN;var Op=Nt?Nt.prototype:void 0,vee=Op?Op.valueOf:void 0,gN=Object.prototype,wee=gN.hasOwnProperty,fN=Object.prototype,kee=fN.hasOwnProperty,xee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Iee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Aee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function yN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Np=yN;function mN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function hN(e){return typeof e?.translate=="function"}function Dp(e,t,r){return e&&mN(e)&&hN(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 bN(e){return{async initialize({cesdk:t}){if(t==null)return;c_(t,we,"1.79.0"),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`;gl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),vN(e);let n=Gp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Dp(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:Dp(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(Np(s).map(f=>f({cesdk:t}))),u=await Promise.all(Np(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 wp("audio",l,{cesdk:t},e),y=await wp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),pp({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),pp({cesdk:t,panelId:De})):o()}}}function vN(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 wN=bN,kN=e=>({name:we,version:"1.79.0",...wN(e)}),pg=kN;var xN="@imgly/plugin-ai-text-generation",IN=`
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
- `,CN=IN,AN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var SN=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")}},MN=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)}},i1=MN,jN=typeof global=="object"&&global&&global.Object===Object&&global,n1=jN,$N=typeof self=="object"&&self&&self.Object===Object&&self,EN=n1||$N||Function("return this")(),oe=EN,_N=oe.Symbol,Ht=_N,o1=Object.prototype,TN=o1.hasOwnProperty,LN=o1.toString,Ti=Ht?Ht.toStringTag:void 0;function ON(e){var t=TN.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=LN.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var NN=ON,DN=Object.prototype,PN=DN.toString;function zN(e){return PN.call(e)}var UN=zN,RN="[object Null]",FN="[object Undefined]",pg=Ht?Ht.toStringTag:void 0;function VN(e){return e==null?e===void 0?FN:RN:pg&&pg in Object(e)?NN(e):UN(e)}var Yi=VN;function BN(e){return e!=null&&typeof e=="object"}var Pl=BN,Cee=Array.isArray;function qN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var a1=qN,GN="[object AsyncFunction]",YN="[object Function]",HN="[object GeneratorFunction]",ZN="[object Proxy]";function QN(e){if(!a1(e))return!1;var t=Yi(e);return t==YN||t==HN||t==GN||t==ZN}var WN=QN,KN=oe["__core-js_shared__"],hl=KN,gg=function(){var e=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JN(e){return!!gg&&gg in e}var XN=JN,eD=Function.prototype,tD=eD.toString;function rD(e){if(e!=null){try{return tD.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=rD,iD=/[\\^$.*+?()[\]{}|]/g,nD=/^\[object .+?Constructor\]$/,oD=Function.prototype,aD=Object.prototype,lD=oD.toString,sD=aD.hasOwnProperty,uD=RegExp("^"+lD.call(sD).replace(iD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cD(e){if(!a1(e)||XN(e))return!1;var t=WN(e)?uD:nD;return t.test(Ve(e))}var dD=cD;function pD(e,t){return e?.[t]}var gD=pD;function fD(e,t){var r=gD(e,t);return dD(r)?r:void 0}var Qt=fD,yD=Qt(oe,"WeakMap"),Al=yD;function mD(e,t){return e===t||e!==e&&t!==t}var hD=mD,bD=9007199254740991;function vD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bD}var wD=vD,Aee=Object.prototype,kD="[object Arguments]";function xD(e){return Pl(e)&&Yi(e)==kD}var fg=xD,l1=Object.prototype,ID=l1.hasOwnProperty,CD=l1.propertyIsEnumerable,See=fg(function(){return arguments}())?fg:function(e){return Pl(e)&&ID.call(e,"callee")&&!CD.call(e,"callee")},s1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yg=s1&&typeof module=="object"&&module&&!module.nodeType&&module,AD=yg&&yg.exports===s1,mg=AD?oe.Buffer:void 0,Mee=mg?mg.isBuffer:void 0,SD="[object Arguments]",MD="[object Array]",jD="[object Boolean]",$D="[object Date]",ED="[object Error]",_D="[object Function]",TD="[object Map]",LD="[object Number]",OD="[object Object]",ND="[object RegExp]",DD="[object Set]",PD="[object String]",zD="[object WeakMap]",UD="[object ArrayBuffer]",RD="[object DataView]",FD="[object Float32Array]",VD="[object Float64Array]",BD="[object Int8Array]",qD="[object Int16Array]",GD="[object Int32Array]",YD="[object Uint8Array]",HD="[object Uint8ClampedArray]",ZD="[object Uint16Array]",QD="[object Uint32Array]",R={};R[FD]=R[VD]=R[BD]=R[qD]=R[GD]=R[YD]=R[HD]=R[ZD]=R[QD]=!0;R[SD]=R[MD]=R[UD]=R[jD]=R[RD]=R[$D]=R[ED]=R[_D]=R[TD]=R[LD]=R[OD]=R[ND]=R[DD]=R[PD]=R[zD]=!1;function WD(e){return Pl(e)&&wD(e.length)&&!!R[Yi(e)]}var KD=WD;function JD(e){return function(t){return e(t)}}var XD=JD,u1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=u1&&typeof module=="object"&&module&&!module.nodeType&&module,eP=Ui&&Ui.exports===u1,bl=eP&&n1.process,tP=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||bl&&bl.binding&&bl.binding("util")}catch{}}(),hg=tP,bg=hg&&hg.isTypedArray,jee=bg?XD(bg):KD,rP=Object.prototype,$ee=rP.hasOwnProperty;function iP(e,t){return function(r){return e(t(r))}}var nP=iP,Eee=nP(Object.keys,Object),oP=Object.prototype,_ee=oP.hasOwnProperty,aP=Qt(Object,"create"),Fi=aP;function lP(){this.__data__=Fi?Fi(null):{},this.size=0}var sP=lP;function uP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cP=uP,dP="__lodash_hash_undefined__",pP=Object.prototype,gP=pP.hasOwnProperty;function fP(e){var t=this.__data__;if(Fi){var r=t[e];return r===dP?void 0:r}return gP.call(t,e)?t[e]:void 0}var yP=fP,mP=Object.prototype,hP=mP.hasOwnProperty;function bP(e){var t=this.__data__;return Fi?t[e]!==void 0:hP.call(t,e)}var vP=bP,wP="__lodash_hash_undefined__";function kP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fi&&t===void 0?wP:t,this}var xP=kP;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=sP;Wt.prototype.delete=cP;Wt.prototype.get=yP;Wt.prototype.has=vP;Wt.prototype.set=xP;var vg=Wt;function IP(){this.__data__=[],this.size=0}var CP=IP;function AP(e,t){for(var r=e.length;r--;)if(hD(e[r][0],t))return r;return-1}var co=AP,SP=Array.prototype,MP=SP.splice;function jP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():MP.call(t,r,1),--this.size,!0}var $P=jP;function EP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var _P=EP;function TP(e){return co(this.__data__,e)>-1}var LP=TP;function OP(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 NP=OP;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=CP;Kt.prototype.delete=$P;Kt.prototype.get=_P;Kt.prototype.has=LP;Kt.prototype.set=NP;var po=Kt,DP=Qt(oe,"Map"),Vi=DP;function PP(){this.size=0,this.__data__={hash:new vg,map:new(Vi||po),string:new vg}}var zP=PP;function UP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RP=UP;function FP(e,t){var r=e.__data__;return RP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=FP;function VP(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var BP=VP;function qP(e){return go(this,e).get(e)}var GP=qP;function YP(e){return go(this,e).has(e)}var HP=YP;function ZP(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QP=ZP;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=zP;Jt.prototype.delete=BP;Jt.prototype.get=GP;Jt.prototype.has=HP;Jt.prototype.set=QP;var c1=Jt;function WP(){this.__data__=new po,this.size=0}var KP=WP;function JP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XP=JP;function ez(e){return this.__data__.get(e)}var tz=ez;function rz(e){return this.__data__.has(e)}var iz=rz,nz=200;function oz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Vi||i.length<nz-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new c1(i)}return r.set(e,t),this.size=r.size,this}var az=oz;function Hi(e){var t=this.__data__=new po(e);this.size=t.size}Hi.prototype.clear=KP;Hi.prototype.delete=XP;Hi.prototype.get=tz;Hi.prototype.has=iz;Hi.prototype.set=az;var lz=Object.prototype,Tee=lz.propertyIsEnumerable,sz=Qt(oe,"DataView"),Sl=sz,uz=Qt(oe,"Promise"),Ml=uz,cz=Qt(oe,"Set"),jl=cz,wg="[object Map]",dz="[object Object]",kg="[object Promise]",xg="[object Set]",Ig="[object WeakMap]",Cg="[object DataView]",pz=Ve(Sl),gz=Ve(Vi),fz=Ve(Ml),yz=Ve(jl),mz=Ve(Al),qt=Yi;(Sl&&qt(new Sl(new ArrayBuffer(1)))!=Cg||Vi&&qt(new Vi)!=wg||Ml&&qt(Ml.resolve())!=kg||jl&&qt(new jl)!=xg||Al&&qt(new Al)!=Ig)&&(qt=function(e){var t=Yi(e),r=t==dz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case pz:return Cg;case gz:return wg;case fz:return kg;case yz:return xg;case mz:return Ig}return t});var Lee=oe.Uint8Array,hz="__lodash_hash_undefined__";function bz(e){return this.__data__.set(e,hz),this}var vz=bz;function wz(e){return this.__data__.has(e)}var kz=wz;function $l(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new c1;++t<r;)this.add(e[t])}$l.prototype.add=$l.prototype.push=vz;$l.prototype.has=kz;var Ag=Ht?Ht.prototype:void 0,Oee=Ag?Ag.valueOf:void 0,xz=Object.prototype,Nee=xz.hasOwnProperty,Iz=Object.prototype,Dee=Iz.hasOwnProperty,Pee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),zee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Uee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function d1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function El(e,t){let r=await d1(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 Cz(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 d1(i,t)}function Az(e){return e!==void 0}var fo=Az;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Zi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Qi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zl=class p1{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 p1),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))}},g1=class f1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new f1),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 Sz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Mz({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 jz=Mz,vl="ly.img.ai.temp";async function $z(e,t){return e.engine.asset.findAllSources().includes(vl)||e.engine.asset.addLocalSource(vl),e.engine.asset.apply(vl,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 y1(){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 _z(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 Tz(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 Lz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Oz(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
+ `,AN=IN,CN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var SN=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")}},MN=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)}},i1=MN,jN=typeof global=="object"&&global&&global.Object===Object&&global,n1=jN,$N=typeof self=="object"&&self&&self.Object===Object&&self,EN=n1||$N||Function("return this")(),oe=EN,_N=oe.Symbol,Ht=_N,o1=Object.prototype,TN=o1.hasOwnProperty,LN=o1.toString,Ti=Ht?Ht.toStringTag:void 0;function ON(e){var t=TN.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=LN.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var NN=ON,DN=Object.prototype,PN=DN.toString;function zN(e){return PN.call(e)}var UN=zN,RN="[object Null]",FN="[object Undefined]",gg=Ht?Ht.toStringTag:void 0;function VN(e){return e==null?e===void 0?FN:RN:gg&&gg in Object(e)?NN(e):UN(e)}var Yi=VN;function BN(e){return e!=null&&typeof e=="object"}var Ul=BN,jee=Array.isArray;function qN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var a1=qN,GN="[object AsyncFunction]",YN="[object Function]",HN="[object GeneratorFunction]",ZN="[object Proxy]";function QN(e){if(!a1(e))return!1;var t=Yi(e);return t==YN||t==HN||t==GN||t==ZN}var WN=QN,KN=oe["__core-js_shared__"],bl=KN,fg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JN(e){return!!fg&&fg in e}var XN=JN,eD=Function.prototype,tD=eD.toString;function rD(e){if(e!=null){try{return tD.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=rD,iD=/[\\^$.*+?()[\]{}|]/g,nD=/^\[object .+?Constructor\]$/,oD=Function.prototype,aD=Object.prototype,lD=oD.toString,sD=aD.hasOwnProperty,uD=RegExp("^"+lD.call(sD).replace(iD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cD(e){if(!a1(e)||XN(e))return!1;var t=WN(e)?uD:nD;return t.test(Ve(e))}var dD=cD;function pD(e,t){return e?.[t]}var gD=pD;function fD(e,t){var r=gD(e,t);return dD(r)?r:void 0}var Qt=fD,yD=Qt(oe,"WeakMap"),Sl=yD;function mD(e,t){return e===t||e!==e&&t!==t}var hD=mD,bD=9007199254740991;function vD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bD}var wD=vD,$ee=Object.prototype,kD="[object Arguments]";function xD(e){return Ul(e)&&Yi(e)==kD}var yg=xD,l1=Object.prototype,ID=l1.hasOwnProperty,AD=l1.propertyIsEnumerable,Eee=yg(function(){return arguments}())?yg:function(e){return Ul(e)&&ID.call(e,"callee")&&!AD.call(e,"callee")},s1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mg=s1&&typeof module=="object"&&module&&!module.nodeType&&module,CD=mg&&mg.exports===s1,hg=CD?oe.Buffer:void 0,_ee=hg?hg.isBuffer:void 0,SD="[object Arguments]",MD="[object Array]",jD="[object Boolean]",$D="[object Date]",ED="[object Error]",_D="[object Function]",TD="[object Map]",LD="[object Number]",OD="[object Object]",ND="[object RegExp]",DD="[object Set]",PD="[object String]",zD="[object WeakMap]",UD="[object ArrayBuffer]",RD="[object DataView]",FD="[object Float32Array]",VD="[object Float64Array]",BD="[object Int8Array]",qD="[object Int16Array]",GD="[object Int32Array]",YD="[object Uint8Array]",HD="[object Uint8ClampedArray]",ZD="[object Uint16Array]",QD="[object Uint32Array]",R={};R[FD]=R[VD]=R[BD]=R[qD]=R[GD]=R[YD]=R[HD]=R[ZD]=R[QD]=!0;R[SD]=R[MD]=R[UD]=R[jD]=R[RD]=R[$D]=R[ED]=R[_D]=R[TD]=R[LD]=R[OD]=R[ND]=R[DD]=R[PD]=R[zD]=!1;function WD(e){return Ul(e)&&wD(e.length)&&!!R[Yi(e)]}var KD=WD;function JD(e){return function(t){return e(t)}}var XD=JD,u1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=u1&&typeof module=="object"&&module&&!module.nodeType&&module,eP=Ui&&Ui.exports===u1,vl=eP&&n1.process,tP=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),bg=tP,vg=bg&&bg.isTypedArray,Tee=vg?XD(vg):KD,rP=Object.prototype,Lee=rP.hasOwnProperty;function iP(e,t){return function(r){return e(t(r))}}var nP=iP,Oee=nP(Object.keys,Object),oP=Object.prototype,Nee=oP.hasOwnProperty,aP=Qt(Object,"create"),Fi=aP;function lP(){this.__data__=Fi?Fi(null):{},this.size=0}var sP=lP;function uP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cP=uP,dP="__lodash_hash_undefined__",pP=Object.prototype,gP=pP.hasOwnProperty;function fP(e){var t=this.__data__;if(Fi){var r=t[e];return r===dP?void 0:r}return gP.call(t,e)?t[e]:void 0}var yP=fP,mP=Object.prototype,hP=mP.hasOwnProperty;function bP(e){var t=this.__data__;return Fi?t[e]!==void 0:hP.call(t,e)}var vP=bP,wP="__lodash_hash_undefined__";function kP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fi&&t===void 0?wP:t,this}var xP=kP;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=sP;Wt.prototype.delete=cP;Wt.prototype.get=yP;Wt.prototype.has=vP;Wt.prototype.set=xP;var wg=Wt;function IP(){this.__data__=[],this.size=0}var AP=IP;function CP(e,t){for(var r=e.length;r--;)if(hD(e[r][0],t))return r;return-1}var co=CP,SP=Array.prototype,MP=SP.splice;function jP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():MP.call(t,r,1),--this.size,!0}var $P=jP;function EP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var _P=EP;function TP(e){return co(this.__data__,e)>-1}var LP=TP;function OP(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 NP=OP;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=AP;Kt.prototype.delete=$P;Kt.prototype.get=_P;Kt.prototype.has=LP;Kt.prototype.set=NP;var po=Kt,DP=Qt(oe,"Map"),Vi=DP;function PP(){this.size=0,this.__data__={hash:new wg,map:new(Vi||po),string:new wg}}var zP=PP;function UP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RP=UP;function FP(e,t){var r=e.__data__;return RP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=FP;function VP(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var BP=VP;function qP(e){return go(this,e).get(e)}var GP=qP;function YP(e){return go(this,e).has(e)}var HP=YP;function ZP(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QP=ZP;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=zP;Jt.prototype.delete=BP;Jt.prototype.get=GP;Jt.prototype.has=HP;Jt.prototype.set=QP;var c1=Jt;function WP(){this.__data__=new po,this.size=0}var KP=WP;function JP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XP=JP;function ez(e){return this.__data__.get(e)}var tz=ez;function rz(e){return this.__data__.has(e)}var iz=rz,nz=200;function oz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Vi||i.length<nz-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new c1(i)}return r.set(e,t),this.size=r.size,this}var az=oz;function Hi(e){var t=this.__data__=new po(e);this.size=t.size}Hi.prototype.clear=KP;Hi.prototype.delete=XP;Hi.prototype.get=tz;Hi.prototype.has=iz;Hi.prototype.set=az;var lz=Object.prototype,Dee=lz.propertyIsEnumerable,sz=Qt(oe,"DataView"),Ml=sz,uz=Qt(oe,"Promise"),jl=uz,cz=Qt(oe,"Set"),$l=cz,kg="[object Map]",dz="[object Object]",xg="[object Promise]",Ig="[object Set]",Ag="[object WeakMap]",Cg="[object DataView]",pz=Ve(Ml),gz=Ve(Vi),fz=Ve(jl),yz=Ve($l),mz=Ve(Sl),qt=Yi;(Ml&&qt(new Ml(new ArrayBuffer(1)))!=Cg||Vi&&qt(new Vi)!=kg||jl&&qt(jl.resolve())!=xg||$l&&qt(new $l)!=Ig||Sl&&qt(new Sl)!=Ag)&&(qt=function(e){var t=Yi(e),r=t==dz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case pz:return Cg;case gz:return kg;case fz:return xg;case yz:return Ig;case mz:return Ag}return t});var Pee=oe.Uint8Array,hz="__lodash_hash_undefined__";function bz(e){return this.__data__.set(e,hz),this}var vz=bz;function wz(e){return this.__data__.has(e)}var kz=wz;function El(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new c1;++t<r;)this.add(e[t])}El.prototype.add=El.prototype.push=vz;El.prototype.has=kz;var Sg=Ht?Ht.prototype:void 0,zee=Sg?Sg.valueOf:void 0,xz=Object.prototype,Uee=xz.hasOwnProperty,Iz=Object.prototype,Ree=Iz.hasOwnProperty,Fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function d1(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 _l(e,t){let r=await d1(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 Az(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 d1(i,t)}function Cz(e){return e!==void 0}var fo=Cz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Zi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Qi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Rl=class p1{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 p1),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))}},g1=class f1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new f1),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 Sz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Mz({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 jz=Mz,wl="ly.img.ai.temp";async function $z(e,t){return e.engine.asset.findAllSources().includes(wl)||e.engine.asset.addLocalSource(wl),e.engine.asset.apply(wl,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 y1(){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 _z(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 Tz(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 Fl(e){return e instanceof Error&&e.name==="AbortError"}function Lz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Oz(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 Nz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),Dz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Ez(e)}))}function Dz(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=Nz,Pz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Rl=Pz;function zz(e,t,r){switch(t){case"image":return Uz(e,r[t]);case"video":return Rz(e,r[t]);case"sticker":return Fz(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:Rl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Rz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Rl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Fz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Vz=zz;async function Bz(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 qz(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 Gz(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 Yz(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 Hz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Gz(e,t,r){let i=t.width,n=t.height,a=await _z(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 Yz(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 Hz(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 m1=Bz;function Zz(e){switch(e.userFlow){case"placeholder":return Wz(e);case"generation-only":return Qz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Qz(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=y1(),c=await m1(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(Ce(t,r))return{status:"aborted"};let s=y1(),c=Vz(s,a,o);if(i=await $z(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 m1(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Kz=Zz;function Fl(e){return`${e}.generating`}function Jz(e){return`${e}.abort`}function Xz(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(Jz(d),()=>{}),y=c.global(Fl(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.some(h=>!x.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=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(h.status==="aborted")return;if(h.status==="error"){Sg(h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let I=t.output.notification;eU(l,I,()=>({input:i().input,output:h.output}))}}catch(h){if(Ul(h))return;Sg(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function eU(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 h1=Xz;function Bi(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function tU({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return h1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var rU=tU;function b1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=b1(e,t.$ref),n={...Pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Pi(e,t[n],r));return i}return t}function iU(e){return Pi(e,{...e})}function nU(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 oU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return aU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function aU(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=lU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function lU(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 v1=oU;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 w1(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 k1(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?sU(e,c,r,i,n,a,o,s):x1(e,c,r,i,n,a,o,s);case"boolean":return I1(e,c,r,i,n,a,o,s);case"number":case"integer":return C1(e,c,r,i,n,a,o,s);case"object":return _l(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return uU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function _l(e,t,r,i,n,a,o,s){let c=v1(t.schema??{},i).reduce((l,u)=>{let d=k1(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 x1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=Ae(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Qi(d,m,f,t.schema.default,""),k=l(p,b),w=cU(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function sU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),{labels:y,icons:f}=w1(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),b=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,b,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],h=l(p,x);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function I1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function C1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,b,m,k,k),x=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function uU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=w1(t.schema),x=Zi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],I={string:x1,boolean:I1,integer:C1,object:_l},S=(v,$)=>v.$ref?v.$ref.split("/").pop():$.split(".").pop()??$,A=(v,$)=>({id:v,label:Ae(t,r,o,$),icon:w[$]??w[v]});y.forEach((v,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(v.$ref||v.title){let M=v.$ref?v.$ref.split("/").pop():v.title;m[C]=()=>_l(e,{id:C,schema:{...v,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(v.type==="string"&&v.enum)v.enum.forEach(M=>{f.push(A(M,M))});else if(v.type&&I[v.type]){let M=I[v.type];m[C]=()=>M(e,{id:C,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=S(v,C);f.push(v.type==="string"&&!v.enum?{id:C,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:A(C,q))}});let _=Qi(d,h,x,t.schema.default,null),j=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function cU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var dU=k1,pU={"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 Mg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function jg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Mg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Mg(g);n[a(l.id,g)]=y}})}});let c={...pU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function $g(e){return typeof e.document=="function"?e.document():e.document}function Eg(e,t,r){let i=iU(e),n=b1(i,t.inputReference);if(!nU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=v1(a,t);return{inputSchema:a,properties:o}}function _g(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=dU(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];h1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function gU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=$g(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Eg(c,s,a.debug);return jg(y,i,r,i.kind),_g(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve($g(s)).then(g=>{let{inputSchema:y,properties:f}=Eg(g,s,a.debug);jg(f,i,r,i.kind),u=_g(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var fU=gU;async function yU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return rU(e,t);case"schema":return fU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var mU=yU;function hU(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 AN(o,r)),o}return i}var bU=hU;function vU(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 wU=vU,wl="@imgly/plugin-ai-generation",kU=`
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 Nz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),Dz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Ez(e)}))}function Dz(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,duration:i.duration}),!0}var Tl=Nz,Pz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Vl=Pz;function zz(e,t,r){switch(t){case"image":return Uz(e,r[t]);case"video":return Rz(e,r[t]);case"sticker":return Fz(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:Vl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Rz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Vl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Fz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Vl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Vz=zz;async function Bz(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 qz(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 Gz(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 Yz(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 Hz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Gz(e,t,r){let i=t.width,n=t.height,a=await _z(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 Yz(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 Hz(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 m1=Bz;function Zz(e){switch(e.userFlow){case"placeholder":return Wz(e);case"generation-only":return Qz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Qz(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=y1(),c=await m1(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),error: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(Ae(t,r))return{status:"aborted"};let s=y1(),c=Vz(s,a,o);if(i=await $z(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 i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?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 m1(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)&&(Fl(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),error:a}}}}function Ae(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Kz=Zz;function Bl(e){return`${e}.generating`}function Jz(e){return`${e}.abort`}function Xz(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(Jz(d),()=>{}),y=c.global(Bl(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await Kz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){Tl(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;eU(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(Fl(h))return;Tl(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function eU(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 h1=Xz;function Bi(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function tU({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(Bl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return h1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var rU=tU;function b1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=b1(e,t.$ref),n={...Pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Pi(e,t[n],r));return i}return t}function iU(e){return Pi(e,{...e})}function nU(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 oU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return aU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function aU(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=lU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function lU(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 v1=oU;function Ce(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 w1(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 k1(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?sU(e,c,r,i,n,a,o,s):x1(e,c,r,i,n,a,o,s);case"boolean":return I1(e,c,r,i,n,a,o,s);case"number":case"integer":return A1(e,c,r,i,n,a,o,s);case"object":return Ll(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 uU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ll(e,t,r,i,n,a,o,s){let c=v1(t.schema??{},i).reduce((l,u)=>{let d=k1(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 x1(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=Ce(t,r,o),y=Ce(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Qi(d,m,f,t.schema.default,""),k=l(p,b),w=cU(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function sU(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=Ce(t,r,o),{labels:y,icons:f}=w1(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:Ce(t,r,o,x),icon:f[x]})),b=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function I1(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=Ce(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function A1(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=Ce(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function uU(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=Ce(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=w1(t.schema),I=Zi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:x1,boolean:I1,integer:A1,object:Ll},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:Ce(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>Ll(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=Qi(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function cU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var dU=k1,pU={"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 Mg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function jg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Mg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Mg(g);n[a(l.id,g)]=y}})}});let c={...pU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function $g(e){return typeof e.document=="function"?e.document():e.document}function Eg(e,t,r){let i=iU(e),n=b1(i,t.inputReference);if(!nU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=v1(a,t);return{inputSchema:a,properties:o}}function _g(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=dU(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];h1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function gU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=$g(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Eg(c,s,a.debug);return jg(y,i,r,i.kind),_g(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve($g(s)).then(g=>{let{inputSchema:y,properties:f}=Eg(g,s,a.debug);jg(f,i,r,i.kind),u=_g(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var fU=gU;async function yU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return rU(e,t);case"schema":return fU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var mU=yU;function hU(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 CN(o,r)),o}return i}var bU=hU;function vU(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 wU=vU,kl="@imgly/plugin-ai-generation",kU=`
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="${wl}/image"
371
+ id="${kl}/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="${wl}/video"
383
+ id="${kl}/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="${wl}/audio"
394
+ id="${kl}/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
- `,xU=kU;function IU(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 A1(2e3),await CU(t,e,r)):i(t,r)}async function CU(e,t,r){switch(t.kind){case"image":return AU(e,t,r);case"video":return SU(e,t,r);case"text":return MU(e,t,r);case"audio":return $U(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function AU(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 Cz(s,r),l=await El(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
- `,"+")}`}}async function SU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function MU(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 jU(a,r.abortSignal)}async function*jU(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 A1(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 $U(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:EU(220,i),duration:i,thumbnailUrl:void 0}}function EU(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 _U(i,44100)}function _U(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function A1(e){return new Promise(t=>{setTimeout(t,e)})}var TU=IU,S1="USER_CANCEL";function LU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Sz([...e.provider.output.middleware??[],...r?.middlewares??[],jz({enable:r?.debug}),TU({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}:Tz(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===S1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var OU=LU;async function NU(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=zl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=bU(a),s=wU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=OU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mU(a,c);Lz(r.cesdk,"@imgly/plugin-ai-generation",xU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return g1.get().register(u),u}var kl=NU;function DU(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 SN(n,r,i);return r.engine.asset.addSource(a),a.id}var PU=DU;function zi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function zU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>kl(e,u,r,i)));o.push(...l),a=RU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>kl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>kl(e,d,r,i)));o.push(...u),a=UU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=PU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function UU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(C=>C.id===w.value)??b[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?h:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,$=m.length>1&&j;if((v||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&Tg(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:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function RU({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:Bi(p),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:zi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Tg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fl(r.id),!1).value)}var FU=zU,yo="ly.img.ai.editMode",M1="ly.img.ai.metadata";async function VU(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 i1(n,M1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var BU=VU;function qU(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 GU=qU;function YU(e){return`ly.img.ai.${e}.canvasMenu`}var HU=YU;function ZU(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Lg(e){let t=[];for(let r of e){let i=ZU(r);i!=null&&t.push(i)}return t}function QU(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)?Lg(o.children):n??[]}return Lg(i.children)}var WU=QU;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 JU(e,t);case"image":return XU(e,t);case"video":return eR(e,t);case"audio":return tR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function JU(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 XU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await El(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,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 w=e.output.url,x=await El(w,t.cesdk.engine),h=x.width/x.height,I=Math.abs(p-h)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function eR(e,t){throw new Error("Function not implemented.")}async function tR(e,t){throw new Error("Function not implemented.")}var rR=KU;function iR(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 nR=iR,oR=class j1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new j1),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=oR;function aR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new i1(e.cesdk.engine,M1),l=e.lock??!0?nR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(S1),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 rR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Og=aR;function lR(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=WU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=sR(s).filter(h=>{if(h==="ly.img.separator")return!0;let I=h.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=h.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,I)=>{if(I.provider.kind!==e.kind)return h;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=g1.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(fo);return S=GU(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||h.push({providerInitializationResult:I,quickActions:S}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(S=>{let A=S.definition.id;h.has(A)||h.set(A,S)});let I=Array.from(h.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Bi(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),x=async(h,I,S)=>{k.setValue(!0);try{return await S(h,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let I=g?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Bi(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Og({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:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Og({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function sR(e){return e.map(t=>t==="ly.img.separator"?t:zl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var uR=lR;async function cR(e){let t=await uR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await BU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var dR=cR,pR=typeof global=="object"&&global&&global.Object===Object&&global,$1=pR,gR=typeof self=="object"&&self&&self.Object===Object&&self,fR=$1||gR||Function("return this")(),ae=fR,yR=ae.Symbol,Zt=yR,E1=Object.prototype,mR=E1.hasOwnProperty,hR=E1.toString,Oi=Zt?Zt.toStringTag:void 0;function bR(e){var t=mR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=hR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var vR=bR,wR=Object.prototype,kR=wR.toString;function xR(e){return kR.call(e)}var IR=xR,CR="[object Null]",AR="[object Undefined]",Ng=Zt?Zt.toStringTag:void 0;function SR(e){return e==null?e===void 0?AR:CR:Ng&&Ng in Object(e)?vR(e):IR(e)}var Wi=SR;function MR(e){return e!=null&&typeof e=="object"}var Vl=MR,Ree=Array.isArray;function jR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _1=jR,$R="[object AsyncFunction]",ER="[object Function]",_R="[object GeneratorFunction]",TR="[object Proxy]";function LR(e){if(!_1(e))return!1;var t=Wi(e);return t==ER||t==_R||t==$R||t==TR}var OR=LR,NR=ae["__core-js_shared__"],xl=NR,Dg=function(){var e=/[^.]+$/.exec(xl&&xl.keys&&xl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function DR(e){return!!Dg&&Dg in e}var PR=DR,zR=Function.prototype,UR=zR.toString;function RR(e){if(e!=null){try{return UR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=RR,FR=/[\\^$.*+?()[\]{}|]/g,VR=/^\[object .+?Constructor\]$/,BR=Function.prototype,qR=Object.prototype,GR=BR.toString,YR=qR.hasOwnProperty,HR=RegExp("^"+GR.call(YR).replace(FR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZR(e){if(!_1(e)||PR(e))return!1;var t=OR(e)?HR:VR;return t.test(Be(e))}var QR=ZR;function WR(e,t){return e?.[t]}var KR=WR;function JR(e,t){var r=KR(e,t);return QR(r)?r:void 0}var Xt=JR,XR=Xt(ae,"WeakMap"),Tl=XR;function eF(e,t){return e===t||e!==e&&t!==t}var tF=eF,rF=9007199254740991;function iF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rF}var nF=iF,Fee=Object.prototype,oF="[object Arguments]";function aF(e){return Vl(e)&&Wi(e)==oF}var Pg=aF,T1=Object.prototype,lF=T1.hasOwnProperty,sF=T1.propertyIsEnumerable,Vee=Pg(function(){return arguments}())?Pg:function(e){return Vl(e)&&lF.call(e,"callee")&&!sF.call(e,"callee")},L1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zg=L1&&typeof module=="object"&&module&&!module.nodeType&&module,uF=zg&&zg.exports===L1,Ug=uF?ae.Buffer:void 0,Bee=Ug?Ug.isBuffer:void 0,cF="[object Arguments]",dF="[object Array]",pF="[object Boolean]",gF="[object Date]",fF="[object Error]",yF="[object Function]",mF="[object Map]",hF="[object Number]",bF="[object Object]",vF="[object RegExp]",wF="[object Set]",kF="[object String]",xF="[object WeakMap]",IF="[object ArrayBuffer]",CF="[object DataView]",AF="[object Float32Array]",SF="[object Float64Array]",MF="[object Int8Array]",jF="[object Int16Array]",$F="[object Int32Array]",EF="[object Uint8Array]",_F="[object Uint8ClampedArray]",TF="[object Uint16Array]",LF="[object Uint32Array]",F={};F[AF]=F[SF]=F[MF]=F[jF]=F[$F]=F[EF]=F[_F]=F[TF]=F[LF]=!0;F[cF]=F[dF]=F[IF]=F[pF]=F[CF]=F[gF]=F[fF]=F[yF]=F[mF]=F[hF]=F[bF]=F[vF]=F[wF]=F[kF]=F[xF]=!1;function OF(e){return Vl(e)&&nF(e.length)&&!!F[Wi(e)]}var NF=OF;function DF(e){return function(t){return e(t)}}var PF=DF,O1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=O1&&typeof module=="object"&&module&&!module.nodeType&&module,zF=Ri&&Ri.exports===O1,Il=zF&&$1.process,UF=function(){try{var e=Ri&&Ri.require&&Ri.require("util").types;return e||Il&&Il.binding&&Il.binding("util")}catch{}}(),Rg=UF,Fg=Rg&&Rg.isTypedArray,qee=Fg?PF(Fg):NF,RF=Object.prototype,Gee=RF.hasOwnProperty;function FF(e,t){return function(r){return e(t(r))}}var VF=FF,Yee=VF(Object.keys,Object),BF=Object.prototype,Hee=BF.hasOwnProperty,qF=Xt(Object,"create"),qi=qF;function GF(){this.__data__=qi?qi(null):{},this.size=0}var YF=GF;function HF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ZF=HF,QF="__lodash_hash_undefined__",WF=Object.prototype,KF=WF.hasOwnProperty;function JF(e){var t=this.__data__;if(qi){var r=t[e];return r===QF?void 0:r}return KF.call(t,e)?t[e]:void 0}var XF=JF,eV=Object.prototype,tV=eV.hasOwnProperty;function rV(e){var t=this.__data__;return qi?t[e]!==void 0:tV.call(t,e)}var iV=rV,nV="__lodash_hash_undefined__";function oV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qi&&t===void 0?nV:t,this}var aV=oV;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=YF;er.prototype.delete=ZF;er.prototype.get=XF;er.prototype.has=iV;er.prototype.set=aV;var Vg=er;function lV(){this.__data__=[],this.size=0}var sV=lV;function uV(e,t){for(var r=e.length;r--;)if(tF(e[r][0],t))return r;return-1}var mo=uV,cV=Array.prototype,dV=cV.splice;function pV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():dV.call(t,r,1),--this.size,!0}var gV=pV;function fV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var yV=fV;function mV(e){return mo(this.__data__,e)>-1}var hV=mV;function bV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var vV=bV;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=sV;tr.prototype.delete=gV;tr.prototype.get=yV;tr.prototype.has=hV;tr.prototype.set=vV;var ho=tr,wV=Xt(ae,"Map"),Gi=wV;function kV(){this.size=0,this.__data__={hash:new Vg,map:new(Gi||ho),string:new Vg}}var xV=kV;function IV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var CV=IV;function AV(e,t){var r=e.__data__;return CV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var bo=AV;function SV(e){var t=bo(this,e).delete(e);return this.size-=t?1:0,t}var MV=SV;function jV(e){return bo(this,e).get(e)}var $V=jV;function EV(e){return bo(this,e).has(e)}var _V=EV;function TV(e,t){var r=bo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LV=TV;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=xV;rr.prototype.delete=MV;rr.prototype.get=$V;rr.prototype.has=_V;rr.prototype.set=LV;var N1=rr;function OV(){this.__data__=new ho,this.size=0}var NV=OV;function DV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var PV=DV;function zV(e){return this.__data__.get(e)}var UV=zV;function RV(e){return this.__data__.has(e)}var FV=RV,VV=200;function BV(e,t){var r=this.__data__;if(r instanceof ho){var i=r.__data__;if(!Gi||i.length<VV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new N1(i)}return r.set(e,t),this.size=r.size,this}var qV=BV;function Ki(e){var t=this.__data__=new ho(e);this.size=t.size}Ki.prototype.clear=NV;Ki.prototype.delete=PV;Ki.prototype.get=UV;Ki.prototype.has=FV;Ki.prototype.set=qV;var GV=Object.prototype,Zee=GV.propertyIsEnumerable,YV=Xt(ae,"DataView"),Ll=YV,HV=Xt(ae,"Promise"),Ol=HV,ZV=Xt(ae,"Set"),Nl=ZV,Bg="[object Map]",QV="[object Object]",qg="[object Promise]",Gg="[object Set]",Yg="[object WeakMap]",Hg="[object DataView]",WV=Be(Ll),KV=Be(Gi),JV=Be(Ol),XV=Be(Nl),eB=Be(Tl),Gt=Wi;(Ll&&Gt(new Ll(new ArrayBuffer(1)))!=Hg||Gi&&Gt(new Gi)!=Bg||Ol&&Gt(Ol.resolve())!=qg||Nl&&Gt(new Nl)!=Gg||Tl&&Gt(new Tl)!=Yg)&&(Gt=function(e){var t=Wi(e),r=t==QV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case WV:return Hg;case KV:return Bg;case JV:return qg;case XV:return Gg;case eB:return Yg}return t});var Qee=ae.Uint8Array,tB="__lodash_hash_undefined__";function rB(e){return this.__data__.set(e,tB),this}var iB=rB;function nB(e){return this.__data__.has(e)}var oB=nB;function Dl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new N1;++t<r;)this.add(e[t])}Dl.prototype.add=Dl.prototype.push=iB;Dl.prototype.has=oB;var Zg=Zt?Zt.prototype:void 0,Wee=Zg?Zg.valueOf:void 0,aB=Object.prototype,Kee=aB.hasOwnProperty,lB=Object.prototype,Jee=lB.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");function sB(e){return e==null?[]:Array.isArray(e)?e:[e]}var uB=sB;function cB(e){return`
414
+ `,xU=kU;function IU(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 C1(2e3),await AU(t,e,r)):i(t,r)}async function AU(e,t,r){switch(t.kind){case"image":return CU(e,t,r);case"video":return SU(e,t,r);case"text":return MU(e,t,r);case"audio":return $U(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function CU(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 Az(s,r),l=await _l(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 SU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function MU(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 jU(a,r.abortSignal)}async function*jU(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 C1(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 $U(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:EU(220,i),duration:i,thumbnailUrl:void 0}}function EU(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 _U(i,44100)}function _U(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function C1(e){return new Promise(t=>{setTimeout(t,e)})}var TU=IU,S1="USER_CANCEL";function LU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Sz([...e.provider.output.middleware??[],...r?.middlewares??[],jz({enable:r?.debug}),TU({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,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Tz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===S1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var OU=LU;async function NU(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=Rl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=bU(a),s=wU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=OU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mU(a,c);Lz(r.cesdk,"@imgly/plugin-ai-generation",xU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return g1.get().register(u),u}var xl=NU;function DU(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 SN(n,r,i);return r.engine.asset.addSource(a),a.id}var PU=DU;function zi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function zU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>xl(e,u,r,i)));o.push(...l),a=RU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>xl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>xl(e,d,r,i)));o.push(...u),a=UU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=PU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function UU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Bi(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Bi(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&Tg(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:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function RU({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:Bi(p),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:zi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Tg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Bl(r.id),!1).value)}var FU=zU,yo="ly.img.ai.editMode",M1="ly.img.ai.metadata";async function VU(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 i1(n,M1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var BU=VU;function qU(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 GU=qU;function YU(e){return`ly.img.ai.${e}.canvasMenu`}var HU=YU;function ZU(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Lg(e){let t=[];for(let r of e){let i=ZU(r);i!=null&&t.push(i)}return t}function QU(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)?Lg(o.children):n??[]}return Lg(i.children)}var WU=QU;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 JU(e,t);case"image":return XU(e,t);case"video":return eR(e,t);case"audio":return tR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function JU(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 XU(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=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await _l(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),b=r.engine.block.getCropTranslationX(a),k=r.engine.block.getCropTranslationY(a),w=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,b),r.engine.block.setCropTranslationY(a,k),r.engine.block.setCropRotation(a,w),r.engine.block.setContentFillMode(a,d)};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 h=e.output.url,x=await _l(h,t.cesdk.engine),M=x.width/x.height,C=Math.abs(y-M)>.001,_=c?[{uri:h,width:x.width,height:x.height}]:void 0,$=h,E=()=>{_==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",_)),r.engine.block.setString(o,"fill/image/previewFileURI","")};E(),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):I();let v=()=>{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),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{E(),C?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:v,onAfter:j,onCancel:()=>{v()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function eR(e,t){throw new Error("Function not implemented.")}async function tR(e,t){throw new Error("Function not implemented.")}var rR=KU;function iR(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 nR=iR,oR=class j1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new j1),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=oR;function aR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new i1(e.cesdk.engine,M1),l=e.lock??!0?nR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(S1),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 rR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),Tl(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),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 Og=aR;function lR(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=WU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=sR(s).filter(h=>{if(h==="ly.img.separator")return!0;let x=h.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let C=h.scopes;if(C!=null&&C.length>0&&!n.every(_=>C.every($=>e.engine.block.isAllowedByScope(_,$))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,x)=>{if(x.provider.kind!==e.kind)return h;let M=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let _=g1.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[C.id]!=null);if(_!=null){let $={definition:C,providerInitializationResult:_};return l.push($),$}else return}}).filter(fo);return M=GU(M),M.length===0||M.every(C=>C==="ly.img.separator")||M.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||h.push({providerInitializationResult:x,quickActions:M}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(M=>{let C=M.definition.id;h.has(C)||h.set(C,M)});let x=Array.from(h.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Bi(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),I=async(h,x,M)=>{k.setValue(!0);try{return await M(h,x)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===w.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(E=>E!=="ly.img.separator"&&E.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Bi($.provider)})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(C,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Og({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{w.setValue(C.definition.id)},isExpanded:!1,generate:Og({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function sR(e){return e.map(t=>t==="ly.img.separator"?t:Rl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var uR=lR;async function cR(e){let t=await uR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await BU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var dR=cR,qee=5*60*1e3,pR=typeof global=="object"&&global&&global.Object===Object&&global,$1=pR,gR=typeof self=="object"&&self&&self.Object===Object&&self,fR=$1||gR||Function("return this")(),ae=fR,yR=ae.Symbol,Zt=yR,E1=Object.prototype,mR=E1.hasOwnProperty,hR=E1.toString,Oi=Zt?Zt.toStringTag:void 0;function bR(e){var t=mR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=hR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var vR=bR,wR=Object.prototype,kR=wR.toString;function xR(e){return kR.call(e)}var IR=xR,AR="[object Null]",CR="[object Undefined]",Ng=Zt?Zt.toStringTag:void 0;function SR(e){return e==null?e===void 0?CR:AR:Ng&&Ng in Object(e)?vR(e):IR(e)}var Wi=SR;function MR(e){return e!=null&&typeof e=="object"}var ql=MR,Gee=Array.isArray;function jR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _1=jR,$R="[object AsyncFunction]",ER="[object Function]",_R="[object GeneratorFunction]",TR="[object Proxy]";function LR(e){if(!_1(e))return!1;var t=Wi(e);return t==ER||t==_R||t==$R||t==TR}var OR=LR,NR=ae["__core-js_shared__"],Il=NR,Dg=function(){var e=/[^.]+$/.exec(Il&&Il.keys&&Il.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function DR(e){return!!Dg&&Dg in e}var PR=DR,zR=Function.prototype,UR=zR.toString;function RR(e){if(e!=null){try{return UR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=RR,FR=/[\\^$.*+?()[\]{}|]/g,VR=/^\[object .+?Constructor\]$/,BR=Function.prototype,qR=Object.prototype,GR=BR.toString,YR=qR.hasOwnProperty,HR=RegExp("^"+GR.call(YR).replace(FR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZR(e){if(!_1(e)||PR(e))return!1;var t=OR(e)?HR:VR;return t.test(Be(e))}var QR=ZR;function WR(e,t){return e?.[t]}var KR=WR;function JR(e,t){var r=KR(e,t);return QR(r)?r:void 0}var Xt=JR,XR=Xt(ae,"WeakMap"),Ol=XR;function eF(e,t){return e===t||e!==e&&t!==t}var tF=eF,rF=9007199254740991;function iF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rF}var nF=iF,Yee=Object.prototype,oF="[object Arguments]";function aF(e){return ql(e)&&Wi(e)==oF}var Pg=aF,T1=Object.prototype,lF=T1.hasOwnProperty,sF=T1.propertyIsEnumerable,Hee=Pg(function(){return arguments}())?Pg:function(e){return ql(e)&&lF.call(e,"callee")&&!sF.call(e,"callee")},L1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zg=L1&&typeof module=="object"&&module&&!module.nodeType&&module,uF=zg&&zg.exports===L1,Ug=uF?ae.Buffer:void 0,Zee=Ug?Ug.isBuffer:void 0,cF="[object Arguments]",dF="[object Array]",pF="[object Boolean]",gF="[object Date]",fF="[object Error]",yF="[object Function]",mF="[object Map]",hF="[object Number]",bF="[object Object]",vF="[object RegExp]",wF="[object Set]",kF="[object String]",xF="[object WeakMap]",IF="[object ArrayBuffer]",AF="[object DataView]",CF="[object Float32Array]",SF="[object Float64Array]",MF="[object Int8Array]",jF="[object Int16Array]",$F="[object Int32Array]",EF="[object Uint8Array]",_F="[object Uint8ClampedArray]",TF="[object Uint16Array]",LF="[object Uint32Array]",F={};F[CF]=F[SF]=F[MF]=F[jF]=F[$F]=F[EF]=F[_F]=F[TF]=F[LF]=!0;F[cF]=F[dF]=F[IF]=F[pF]=F[AF]=F[gF]=F[fF]=F[yF]=F[mF]=F[hF]=F[bF]=F[vF]=F[wF]=F[kF]=F[xF]=!1;function OF(e){return ql(e)&&nF(e.length)&&!!F[Wi(e)]}var NF=OF;function DF(e){return function(t){return e(t)}}var PF=DF,O1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=O1&&typeof module=="object"&&module&&!module.nodeType&&module,zF=Ri&&Ri.exports===O1,Al=zF&&$1.process,UF=function(){try{var e=Ri&&Ri.require&&Ri.require("util").types;return e||Al&&Al.binding&&Al.binding("util")}catch{}}(),Rg=UF,Fg=Rg&&Rg.isTypedArray,Qee=Fg?PF(Fg):NF,RF=Object.prototype,Wee=RF.hasOwnProperty;function FF(e,t){return function(r){return e(t(r))}}var VF=FF,Kee=VF(Object.keys,Object),BF=Object.prototype,Jee=BF.hasOwnProperty,qF=Xt(Object,"create"),qi=qF;function GF(){this.__data__=qi?qi(null):{},this.size=0}var YF=GF;function HF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ZF=HF,QF="__lodash_hash_undefined__",WF=Object.prototype,KF=WF.hasOwnProperty;function JF(e){var t=this.__data__;if(qi){var r=t[e];return r===QF?void 0:r}return KF.call(t,e)?t[e]:void 0}var XF=JF,eV=Object.prototype,tV=eV.hasOwnProperty;function rV(e){var t=this.__data__;return qi?t[e]!==void 0:tV.call(t,e)}var iV=rV,nV="__lodash_hash_undefined__";function oV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qi&&t===void 0?nV:t,this}var aV=oV;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=YF;er.prototype.delete=ZF;er.prototype.get=XF;er.prototype.has=iV;er.prototype.set=aV;var Vg=er;function lV(){this.__data__=[],this.size=0}var sV=lV;function uV(e,t){for(var r=e.length;r--;)if(tF(e[r][0],t))return r;return-1}var mo=uV,cV=Array.prototype,dV=cV.splice;function pV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():dV.call(t,r,1),--this.size,!0}var gV=pV;function fV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var yV=fV;function mV(e){return mo(this.__data__,e)>-1}var hV=mV;function bV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var vV=bV;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=sV;tr.prototype.delete=gV;tr.prototype.get=yV;tr.prototype.has=hV;tr.prototype.set=vV;var ho=tr,wV=Xt(ae,"Map"),Gi=wV;function kV(){this.size=0,this.__data__={hash:new Vg,map:new(Gi||ho),string:new Vg}}var xV=kV;function IV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var AV=IV;function CV(e,t){var r=e.__data__;return AV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var bo=CV;function SV(e){var t=bo(this,e).delete(e);return this.size-=t?1:0,t}var MV=SV;function jV(e){return bo(this,e).get(e)}var $V=jV;function EV(e){return bo(this,e).has(e)}var _V=EV;function TV(e,t){var r=bo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LV=TV;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=xV;rr.prototype.delete=MV;rr.prototype.get=$V;rr.prototype.has=_V;rr.prototype.set=LV;var N1=rr;function OV(){this.__data__=new ho,this.size=0}var NV=OV;function DV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var PV=DV;function zV(e){return this.__data__.get(e)}var UV=zV;function RV(e){return this.__data__.has(e)}var FV=RV,VV=200;function BV(e,t){var r=this.__data__;if(r instanceof ho){var i=r.__data__;if(!Gi||i.length<VV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new N1(i)}return r.set(e,t),this.size=r.size,this}var qV=BV;function Ki(e){var t=this.__data__=new ho(e);this.size=t.size}Ki.prototype.clear=NV;Ki.prototype.delete=PV;Ki.prototype.get=UV;Ki.prototype.has=FV;Ki.prototype.set=qV;var GV=Object.prototype,Xee=GV.propertyIsEnumerable,YV=Xt(ae,"DataView"),Nl=YV,HV=Xt(ae,"Promise"),Dl=HV,ZV=Xt(ae,"Set"),Pl=ZV,Bg="[object Map]",QV="[object Object]",qg="[object Promise]",Gg="[object Set]",Yg="[object WeakMap]",Hg="[object DataView]",WV=Be(Nl),KV=Be(Gi),JV=Be(Dl),XV=Be(Pl),eB=Be(Ol),Gt=Wi;(Nl&&Gt(new Nl(new ArrayBuffer(1)))!=Hg||Gi&&Gt(new Gi)!=Bg||Dl&&Gt(Dl.resolve())!=qg||Pl&&Gt(new Pl)!=Gg||Ol&&Gt(new Ol)!=Yg)&&(Gt=function(e){var t=Wi(e),r=t==QV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case WV:return Hg;case KV:return Bg;case JV:return qg;case XV:return Gg;case eB:return Yg}return t});var ete=ae.Uint8Array,tB="__lodash_hash_undefined__";function rB(e){return this.__data__.set(e,tB),this}var iB=rB;function nB(e){return this.__data__.has(e)}var oB=nB;function zl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new N1;++t<r;)this.add(e[t])}zl.prototype.add=zl.prototype.push=iB;zl.prototype.has=oB;var Zg=Zt?Zt.prototype:void 0,tte=Zg?Zg.valueOf:void 0,aB=Object.prototype,rte=aB.hasOwnProperty,lB=Object.prototype,ite=lB.hasOwnProperty,nte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ote=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ate=new RegExp(/[A-Fa-f0-9]{2}/,"g");function sB(e){return e==null?[]:Array.isArray(e)?e:[e]}var uB=sB;function cB(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:
@@ -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 bB=hB,wo="fix",Wg=`ly.img.${wo}`,vB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,wB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function kB(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 xB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${wB}`]:"Fix Spelling & Grammar"}}),{id:Wg,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,providerId:a})=>{t.Button(`${Wg}.button`,{label:kB(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:bB(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"})}}})}}),IB=xB;function CB(e){return`
469
+ `}var bB=hB,wo="fix",Wg=`ly.img.${wo}`,vB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,wB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function kB(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 xB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${wB}`]:"Fix Spelling & Grammar"}}),{id:Wg,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,providerId:a})=>{t.Button(`${Wg}.button`,{label:kB(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:bB(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"})}}})}}),IB=xB;function AB(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 AB=CB,ko="shorter",Kg=`ly.img.${ko}`,SB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,MB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function jB(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 $B=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${MB}`]:"Make Shorter"}}),{id:Kg,type:"quick",kind:"text",scopes:["text/edit"],label:`${SB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Kg}.button`,{label:jB(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:AB(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"})}}})}}),EB=$B;function _B(e){return`
500
+ `}var CB=AB,ko="shorter",Kg=`ly.img.${ko}`,SB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,MB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function jB(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 $B=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${MB}`]:"Make Shorter"}}),{id:Kg,type:"quick",kind:"text",scopes:["text/edit"],label:`${SB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Kg}.button`,{label:jB(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:CB(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"})}}})}}),EB=$B;function _B(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:
@@ -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 YB=GB,Co="translate",Di=`ly.img.${Co}`,HB=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function e1(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ZB=qB.map(e=>({id:e})),QB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Di,type:"quick",kind:"text",scopes:["text/edit"],label:`${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(`${Di}.popover`,{label:e1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Di}.popover.section`,{children:()=>{a.builder.Menu(`${Di}.popover.menu`,{children:()=>{ZB.forEach(s=>{t.Button(`${Di}.popover.menu.${s.id}`,{label:e1(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:YB(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"})}}})})}})}})}})}}),WB=QB;function KB(e,t){return`
572
+ `}var YB=GB,Ao="translate",Di=`ly.img.${Ao}`,HB=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function e1(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ZB=qB.map(e=>({id:e})),QB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Di,type:"quick",kind:"text",scopes:["text/edit"],label:`${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(`${Di}.popover`,{label:e1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Di}.popover.section`,{children:()=>{a.builder.Menu(`${Di}.popover.menu`,{children:()=>{ZB.forEach(s=>{t.Button(`${Di}.popover.menu.${s.id}`,{label:e1(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:YB(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"})}}})})}})}})}})}}),WB=QB;function KB(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 JB=KB,Ao="changeTextTo",Ie=`ly.img.${Ao}`,t1=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,r1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var XB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${r1}`]:"Change Text to...",[`${r1}.prompt`]:"Change Text to...",[`${t1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${t1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:JB(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:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),eq=XB,P1="@imgly/plugin-ai-text-generation-web",tq=["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 rq(e){return{async initialize({cesdk:t}){if(t==null)return;Oz(t,P1,"1.79.0"),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(xN,CN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),iq(e);let r=zl.get();r.register(mB({cesdk:t})),r.register(IB({cesdk:t})),r.register(EB({cesdk:t})),r.register(PB({cesdk:t})),r.register(BB({cesdk:t})),r.register(WB({cesdk:t})),r.register(eq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(uB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await FU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await dR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:tq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function iq(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 nq=rq,oq=e=>({name:P1,version:"1.79.0",...nq(e)}),z1=oq;var aq=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var lq=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")}},sq=typeof global=="object"&&global&&global.Object===Object&&global,kf=sq,uq=typeof self=="object"&&self&&self.Object===Object&&self,cq=kf||uq||Function("return this")(),le=cq,dq=le.Symbol,ar=dq,xf=Object.prototype,pq=xf.hasOwnProperty,gq=xf.toString,Ji=ar?ar.toStringTag:void 0;function fq(e){var t=pq.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=gq.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var yq=fq,mq=Object.prototype,hq=mq.toString;function bq(e){return hq.call(e)}var vq=bq,wq="[object Null]",kq="[object Undefined]",U1=ar?ar.toStringTag:void 0;function xq(e){return e==null?e===void 0?kq:wq:U1&&U1 in Object(e)?yq(e):vq(e)}var dn=xq;function Iq(e){return e!=null&&typeof e=="object"}var ss=Iq,ate=Array.isArray;function Cq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var If=Cq,Aq="[object AsyncFunction]",Sq="[object Function]",Mq="[object GeneratorFunction]",jq="[object Proxy]";function $q(e){if(!If(e))return!1;var t=dn(e);return t==Sq||t==Mq||t==Aq||t==jq}var Eq=$q,_q=le["__core-js_shared__"],Bl=_q,R1=function(){var e=/[^.]+$/.exec(Bl&&Bl.keys&&Bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tq(e){return!!R1&&R1 in e}var Lq=Tq,Oq=Function.prototype,Nq=Oq.toString;function Dq(e){if(e!=null){try{return Nq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Dq,Pq=/[\\^$.*+?()[\]{}|]/g,zq=/^\[object .+?Constructor\]$/,Uq=Function.prototype,Rq=Object.prototype,Fq=Uq.toString,Vq=Rq.hasOwnProperty,Bq=RegExp("^"+Fq.call(Vq).replace(Pq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qq(e){if(!If(e)||Lq(e))return!1;var t=Eq(e)?Bq:zq;return t.test(qe(e))}var Gq=qq;function Yq(e,t){return e?.[t]}var Hq=Yq;function Zq(e,t){var r=Hq(e,t);return Gq(r)?r:void 0}var sr=Zq,Qq=sr(le,"WeakMap"),Wl=Qq;function Wq(e,t){return e===t||e!==e&&t!==t}var Kq=Wq,Jq=9007199254740991;function Xq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jq}var eG=Xq,lte=Object.prototype,tG="[object Arguments]";function rG(e){return ss(e)&&dn(e)==tG}var F1=rG,Cf=Object.prototype,iG=Cf.hasOwnProperty,nG=Cf.propertyIsEnumerable,ste=F1(function(){return arguments}())?F1:function(e){return ss(e)&&iG.call(e,"callee")&&!nG.call(e,"callee")},Af=typeof exports=="object"&&exports&&!exports.nodeType&&exports,V1=Af&&typeof module=="object"&&module&&!module.nodeType&&module,oG=V1&&V1.exports===Af,B1=oG?le.Buffer:void 0,ute=B1?B1.isBuffer:void 0,aG="[object Arguments]",lG="[object Array]",sG="[object Boolean]",uG="[object Date]",cG="[object Error]",dG="[object Function]",pG="[object Map]",gG="[object Number]",fG="[object Object]",yG="[object RegExp]",mG="[object Set]",hG="[object String]",bG="[object WeakMap]",vG="[object ArrayBuffer]",wG="[object DataView]",kG="[object Float32Array]",xG="[object Float64Array]",IG="[object Int8Array]",CG="[object Int16Array]",AG="[object Int32Array]",SG="[object Uint8Array]",MG="[object Uint8ClampedArray]",jG="[object Uint16Array]",$G="[object Uint32Array]",V={};V[kG]=V[xG]=V[IG]=V[CG]=V[AG]=V[SG]=V[MG]=V[jG]=V[$G]=!0;V[aG]=V[lG]=V[vG]=V[sG]=V[wG]=V[uG]=V[cG]=V[dG]=V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[hG]=V[bG]=!1;function EG(e){return ss(e)&&eG(e.length)&&!!V[dn(e)]}var _G=EG;function TG(e){return function(t){return e(t)}}var LG=TG,Sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Sf&&typeof module=="object"&&module&&!module.nodeType&&module,OG=on&&on.exports===Sf,ql=OG&&kf.process,NG=function(){try{var e=on&&on.require&&on.require("util").types;return e||ql&&ql.binding&&ql.binding("util")}catch{}}(),q1=NG,G1=q1&&q1.isTypedArray,cte=G1?LG(G1):_G,DG=Object.prototype,dte=DG.hasOwnProperty;function PG(e,t){return function(r){return e(t(r))}}var zG=PG,pte=zG(Object.keys,Object),UG=Object.prototype,gte=UG.hasOwnProperty,RG=sr(Object,"create"),ln=RG;function FG(){this.__data__=ln?ln(null):{},this.size=0}var VG=FG;function BG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qG=BG,GG="__lodash_hash_undefined__",YG=Object.prototype,HG=YG.hasOwnProperty;function ZG(e){var t=this.__data__;if(ln){var r=t[e];return r===GG?void 0:r}return HG.call(t,e)?t[e]:void 0}var QG=ZG,WG=Object.prototype,KG=WG.hasOwnProperty;function JG(e){var t=this.__data__;return ln?t[e]!==void 0:KG.call(t,e)}var XG=JG,eY="__lodash_hash_undefined__";function tY(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?eY:t,this}var rY=tY;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=VG;ur.prototype.delete=qG;ur.prototype.get=QG;ur.prototype.has=XG;ur.prototype.set=rY;var Y1=ur;function iY(){this.__data__=[],this.size=0}var nY=iY;function oY(e,t){for(var r=e.length;r--;)if(Kq(e[r][0],t))return r;return-1}var So=oY,aY=Array.prototype,lY=aY.splice;function sY(e){var t=this.__data__,r=So(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lY.call(t,r,1),--this.size,!0}var uY=sY;function cY(e){var t=this.__data__,r=So(t,e);return r<0?void 0:t[r][1]}var dY=cY;function pY(e){return So(this.__data__,e)>-1}var gY=pY;function fY(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 yY=fY;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=nY;cr.prototype.delete=uY;cr.prototype.get=dY;cr.prototype.has=gY;cr.prototype.set=yY;var Mo=cr,mY=sr(le,"Map"),sn=mY;function hY(){this.size=0,this.__data__={hash:new Y1,map:new(sn||Mo),string:new Y1}}var bY=hY;function vY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wY=vY;function kY(e,t){var r=e.__data__;return wY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jo=kY;function xY(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t}var IY=xY;function CY(e){return jo(this,e).get(e)}var AY=CY;function SY(e){return jo(this,e).has(e)}var MY=SY;function jY(e,t){var r=jo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $Y=jY;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=bY;dr.prototype.delete=IY;dr.prototype.get=AY;dr.prototype.has=MY;dr.prototype.set=$Y;var Mf=dr;function EY(){this.__data__=new Mo,this.size=0}var _Y=EY;function TY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LY=TY;function OY(e){return this.__data__.get(e)}var NY=OY;function DY(e){return this.__data__.has(e)}var PY=DY,zY=200;function UY(e,t){var r=this.__data__;if(r instanceof Mo){var i=r.__data__;if(!sn||i.length<zY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mf(i)}return r.set(e,t),this.size=r.size,this}var RY=UY;function pn(e){var t=this.__data__=new Mo(e);this.size=t.size}pn.prototype.clear=_Y;pn.prototype.delete=LY;pn.prototype.get=NY;pn.prototype.has=PY;pn.prototype.set=RY;var FY=Object.prototype,fte=FY.propertyIsEnumerable,VY=sr(le,"DataView"),Kl=VY,BY=sr(le,"Promise"),Jl=BY,qY=sr(le,"Set"),Xl=qY,H1="[object Map]",GY="[object Object]",Z1="[object Promise]",Q1="[object Set]",W1="[object WeakMap]",K1="[object DataView]",YY=qe(Kl),HY=qe(sn),ZY=qe(Jl),QY=qe(Xl),WY=qe(Wl),ir=dn;(Kl&&ir(new Kl(new ArrayBuffer(1)))!=K1||sn&&ir(new sn)!=H1||Jl&&ir(Jl.resolve())!=Z1||Xl&&ir(new Xl)!=Q1||Wl&&ir(new Wl)!=W1)&&(ir=function(e){var t=dn(e),r=t==GY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case YY:return K1;case HY:return H1;case ZY:return Z1;case QY:return Q1;case WY:return W1}return t});var yte=le.Uint8Array,KY="__lodash_hash_undefined__";function JY(e){return this.__data__.set(e,KY),this}var XY=JY;function eH(e){return this.__data__.has(e)}var tH=eH;function es(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mf;++t<r;)this.add(e[t])}es.prototype.add=es.prototype.push=XY;es.prototype.has=tH;var J1=ar?ar.prototype:void 0,mte=J1?J1.valueOf:void 0,rH=Object.prototype,hte=rH.hasOwnProperty,iH=Object.prototype,bte=iH.hasOwnProperty,vte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jf(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 nH(e,t){let r=await jf(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 oH(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 jf(i,t)}function aH(e){return e!==void 0}var lH=aH;function us(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function gn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function fn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var $f=class Ef{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 Ef),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))}},sH=class _f{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _f),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function uH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function cH({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 dH=cH,Gl="ly.img.ai.temp";async function pH(e,t){return e.engine.asset.findAllSources().includes(Gl)||e.engine.asset.addLocalSource(Gl),e.engine.asset.apply(Gl,t)}function gH(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 Tf(){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 fH(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 yH(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function cs(e){return e instanceof Error&&e.name==="AbortError"}function mH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function hH(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 JB=KB,Co="changeTextTo",Ie=`ly.img.${Co}`,t1=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,r1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var XB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${r1}`]:"Change Text to...",[`${r1}.prompt`]:"Change Text to...",[`${t1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${t1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:JB(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:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),eq=XB,P1="@imgly/plugin-ai-text-generation-web",tq=["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 rq(e){return{async initialize({cesdk:t}){if(t==null)return;Oz(t,P1,"1.80.0-hotfix-mcp.0"),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(xN,AN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),iq(e);let r=Rl.get();r.register(mB({cesdk:t})),r.register(IB({cesdk:t})),r.register(EB({cesdk:t})),r.register(PB({cesdk:t})),r.register(BB({cesdk:t})),r.register(WB({cesdk:t})),r.register(eq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(uB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await FU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await dR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:tq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function iq(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 nq=rq,oq=e=>({name:P1,version:"1.80.0-hotfix-mcp.0",...nq(e)}),z1=oq;var aq=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var lq=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")}},sq=typeof global=="object"&&global&&global.Object===Object&&global,kf=sq,uq=typeof self=="object"&&self&&self.Object===Object&&self,cq=kf||uq||Function("return this")(),le=cq,dq=le.Symbol,ar=dq,xf=Object.prototype,pq=xf.hasOwnProperty,gq=xf.toString,Ji=ar?ar.toStringTag:void 0;function fq(e){var t=pq.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=gq.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var yq=fq,mq=Object.prototype,hq=mq.toString;function bq(e){return hq.call(e)}var vq=bq,wq="[object Null]",kq="[object Undefined]",U1=ar?ar.toStringTag:void 0;function xq(e){return e==null?e===void 0?kq:wq:U1&&U1 in Object(e)?yq(e):vq(e)}var dn=xq;function Iq(e){return e!=null&&typeof e=="object"}var cs=Iq,dte=Array.isArray;function Aq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var If=Aq,Cq="[object AsyncFunction]",Sq="[object Function]",Mq="[object GeneratorFunction]",jq="[object Proxy]";function $q(e){if(!If(e))return!1;var t=dn(e);return t==Sq||t==Mq||t==Cq||t==jq}var Eq=$q,_q=le["__core-js_shared__"],Gl=_q,R1=function(){var e=/[^.]+$/.exec(Gl&&Gl.keys&&Gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tq(e){return!!R1&&R1 in e}var Lq=Tq,Oq=Function.prototype,Nq=Oq.toString;function Dq(e){if(e!=null){try{return Nq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Dq,Pq=/[\\^$.*+?()[\]{}|]/g,zq=/^\[object .+?Constructor\]$/,Uq=Function.prototype,Rq=Object.prototype,Fq=Uq.toString,Vq=Rq.hasOwnProperty,Bq=RegExp("^"+Fq.call(Vq).replace(Pq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qq(e){if(!If(e)||Lq(e))return!1;var t=Eq(e)?Bq:zq;return t.test(qe(e))}var Gq=qq;function Yq(e,t){return e?.[t]}var Hq=Yq;function Zq(e,t){var r=Hq(e,t);return Gq(r)?r:void 0}var sr=Zq,Qq=sr(le,"WeakMap"),Jl=Qq;function Wq(e,t){return e===t||e!==e&&t!==t}var Kq=Wq,Jq=9007199254740991;function Xq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jq}var eG=Xq,pte=Object.prototype,tG="[object Arguments]";function rG(e){return cs(e)&&dn(e)==tG}var F1=rG,Af=Object.prototype,iG=Af.hasOwnProperty,nG=Af.propertyIsEnumerable,gte=F1(function(){return arguments}())?F1:function(e){return cs(e)&&iG.call(e,"callee")&&!nG.call(e,"callee")},Cf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,V1=Cf&&typeof module=="object"&&module&&!module.nodeType&&module,oG=V1&&V1.exports===Cf,B1=oG?le.Buffer:void 0,fte=B1?B1.isBuffer:void 0,aG="[object Arguments]",lG="[object Array]",sG="[object Boolean]",uG="[object Date]",cG="[object Error]",dG="[object Function]",pG="[object Map]",gG="[object Number]",fG="[object Object]",yG="[object RegExp]",mG="[object Set]",hG="[object String]",bG="[object WeakMap]",vG="[object ArrayBuffer]",wG="[object DataView]",kG="[object Float32Array]",xG="[object Float64Array]",IG="[object Int8Array]",AG="[object Int16Array]",CG="[object Int32Array]",SG="[object Uint8Array]",MG="[object Uint8ClampedArray]",jG="[object Uint16Array]",$G="[object Uint32Array]",V={};V[kG]=V[xG]=V[IG]=V[AG]=V[CG]=V[SG]=V[MG]=V[jG]=V[$G]=!0;V[aG]=V[lG]=V[vG]=V[sG]=V[wG]=V[uG]=V[cG]=V[dG]=V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[hG]=V[bG]=!1;function EG(e){return cs(e)&&eG(e.length)&&!!V[dn(e)]}var _G=EG;function TG(e){return function(t){return e(t)}}var LG=TG,Sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Sf&&typeof module=="object"&&module&&!module.nodeType&&module,OG=on&&on.exports===Sf,Yl=OG&&kf.process,NG=function(){try{var e=on&&on.require&&on.require("util").types;return e||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),q1=NG,G1=q1&&q1.isTypedArray,yte=G1?LG(G1):_G,DG=Object.prototype,mte=DG.hasOwnProperty;function PG(e,t){return function(r){return e(t(r))}}var zG=PG,hte=zG(Object.keys,Object),UG=Object.prototype,bte=UG.hasOwnProperty,RG=sr(Object,"create"),ln=RG;function FG(){this.__data__=ln?ln(null):{},this.size=0}var VG=FG;function BG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qG=BG,GG="__lodash_hash_undefined__",YG=Object.prototype,HG=YG.hasOwnProperty;function ZG(e){var t=this.__data__;if(ln){var r=t[e];return r===GG?void 0:r}return HG.call(t,e)?t[e]:void 0}var QG=ZG,WG=Object.prototype,KG=WG.hasOwnProperty;function JG(e){var t=this.__data__;return ln?t[e]!==void 0:KG.call(t,e)}var XG=JG,eY="__lodash_hash_undefined__";function tY(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?eY:t,this}var rY=tY;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=VG;ur.prototype.delete=qG;ur.prototype.get=QG;ur.prototype.has=XG;ur.prototype.set=rY;var Y1=ur;function iY(){this.__data__=[],this.size=0}var nY=iY;function oY(e,t){for(var r=e.length;r--;)if(Kq(e[r][0],t))return r;return-1}var So=oY,aY=Array.prototype,lY=aY.splice;function sY(e){var t=this.__data__,r=So(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lY.call(t,r,1),--this.size,!0}var uY=sY;function cY(e){var t=this.__data__,r=So(t,e);return r<0?void 0:t[r][1]}var dY=cY;function pY(e){return So(this.__data__,e)>-1}var gY=pY;function fY(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 yY=fY;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=nY;cr.prototype.delete=uY;cr.prototype.get=dY;cr.prototype.has=gY;cr.prototype.set=yY;var Mo=cr,mY=sr(le,"Map"),sn=mY;function hY(){this.size=0,this.__data__={hash:new Y1,map:new(sn||Mo),string:new Y1}}var bY=hY;function vY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wY=vY;function kY(e,t){var r=e.__data__;return wY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jo=kY;function xY(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t}var IY=xY;function AY(e){return jo(this,e).get(e)}var CY=AY;function SY(e){return jo(this,e).has(e)}var MY=SY;function jY(e,t){var r=jo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $Y=jY;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=bY;dr.prototype.delete=IY;dr.prototype.get=CY;dr.prototype.has=MY;dr.prototype.set=$Y;var Mf=dr;function EY(){this.__data__=new Mo,this.size=0}var _Y=EY;function TY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LY=TY;function OY(e){return this.__data__.get(e)}var NY=OY;function DY(e){return this.__data__.has(e)}var PY=DY,zY=200;function UY(e,t){var r=this.__data__;if(r instanceof Mo){var i=r.__data__;if(!sn||i.length<zY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mf(i)}return r.set(e,t),this.size=r.size,this}var RY=UY;function pn(e){var t=this.__data__=new Mo(e);this.size=t.size}pn.prototype.clear=_Y;pn.prototype.delete=LY;pn.prototype.get=NY;pn.prototype.has=PY;pn.prototype.set=RY;var FY=Object.prototype,vte=FY.propertyIsEnumerable,VY=sr(le,"DataView"),Xl=VY,BY=sr(le,"Promise"),es=BY,qY=sr(le,"Set"),ts=qY,H1="[object Map]",GY="[object Object]",Z1="[object Promise]",Q1="[object Set]",W1="[object WeakMap]",K1="[object DataView]",YY=qe(Xl),HY=qe(sn),ZY=qe(es),QY=qe(ts),WY=qe(Jl),ir=dn;(Xl&&ir(new Xl(new ArrayBuffer(1)))!=K1||sn&&ir(new sn)!=H1||es&&ir(es.resolve())!=Z1||ts&&ir(new ts)!=Q1||Jl&&ir(new Jl)!=W1)&&(ir=function(e){var t=dn(e),r=t==GY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case YY:return K1;case HY:return H1;case ZY:return Z1;case QY:return Q1;case WY:return W1}return t});var wte=le.Uint8Array,KY="__lodash_hash_undefined__";function JY(e){return this.__data__.set(e,KY),this}var XY=JY;function eH(e){return this.__data__.has(e)}var tH=eH;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=XY;rs.prototype.has=tH;var J1=ar?ar.prototype:void 0,kte=J1?J1.valueOf:void 0,rH=Object.prototype,xte=rH.hasOwnProperty,iH=Object.prototype,Ite=iH.hasOwnProperty,Ate=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Cte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Ste=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jf(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 nH(e,t){let r=await jf(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 oH(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 jf(i,t)}function aH(e){return e!==void 0}var lH=aH;function ds(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function gn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function fn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var $f=class Ef{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 Ef),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))}},sH=class _f{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _f),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function uH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function cH({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 dH=cH,Hl="ly.img.ai.temp";async function pH(e,t){return e.engine.asset.findAllSources().includes(Hl)||e.engine.asset.addLocalSource(Hl),e.engine.asset.apply(Hl,t)}function gH(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 Tf(){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 fH(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 yH(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 ps(e){return e instanceof Error&&e.name==="AbortError"}function mH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function hH(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 bH(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 vH=bH;function wH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),kH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:gH(e)}))}function kH(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 X1=wH,xH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ds=xH;function IH(e,t,r){switch(t){case"image":return CH(e,r[t]);case"video":return AH(e,r[t]);case"sticker":return SH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function CH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function AH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ds,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function SH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var MH=IH;async function jH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return $H(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return EH(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 _H(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 TH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function $H(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function EH(e,t,r){let i=t.width,n=t.height,a=await fH(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 _H(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 TH(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 Lf=jH;function LH(e){switch(e.userFlow){case"placeholder":return NH(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(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=Tf(),c=await Lf(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 NH(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=Tf(),c=MH(s,a,o);if(i=await pH(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 Lf(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(cs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var DH=LH;function ps(e){return`${e}.generating`}function PH(e){return`${e}.abort`}function zH(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(PH(d),()=>{}),y=c.global(ps(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.some(h=>!x.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await DH({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(h.status==="aborted")return;if(h.status==="error"){X1(h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let I=t.output.notification;UH(l,I,()=>({input:i().input,output:h.output}))}}catch(h){if(cs(h))return;X1(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function UH(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 Of=zH;function ts(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function RH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ps(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Of(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var FH=RH;function Nf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function tn(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Nf(e,t.$ref),n={...tn(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=tn(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>tn(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=tn(e,t[n],r));return i}return t}function VH(e){return tn(e,{...e})}function BH(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 qH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return GH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function GH(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=YH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function YH(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 Df=qH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Pf(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 zf(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):Uf(e,c,r,i,n,a,o,s);case"boolean":return Rf(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 rs(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return ZH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function rs(e,t,r,i,n,a,o,s){let c=Df(t.schema??{},i).reduce((l,u)=>{let d=zf(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 Uf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=fn(d,m,f,t.schema.default,""),k=l(p,b),w=QH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.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=je(t,r,o),{labels:y,icons:f}=Pf(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),b=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,b,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],h=l(p,x);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Rf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),b=l(p,m);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=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,b,m,k,k),x=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function ZH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Pf(t.schema),x=gn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],I={string:Uf,boolean:Rf,integer:Ff,object:rs},S=(v,$)=>v.$ref?v.$ref.split("/").pop():$.split(".").pop()??$,A=(v,$)=>({id:v,label:je(t,r,o,$),icon:w[$]??w[v]});y.forEach((v,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(v.$ref||v.title){let M=v.$ref?v.$ref.split("/").pop():v.title;m[C]=()=>rs(e,{id:C,schema:{...v,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(v.type==="string"&&v.enum)v.enum.forEach(M=>{f.push(A(M,M))});else if(v.type&&I[v.type]){let M=I[v.type];m[C]=()=>M(e,{id:C,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=S(v,C);f.push(v.type==="string"&&!v.enum?{id:C,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:A(C,q))}});let _=fn(d,h,x,t.schema.default,null),j=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function QH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var WH=zf,KH={"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 ef(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function tf(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||ef(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||ef(g);n[a(l.id,g)]=y}})}});let c={...KH,...n};Object.keys(c).length>0&&us(r.cesdk,{en:c})}function rf(e){return typeof e.document=="function"?e.document():e.document}function nf(e,t,r){let i=VH(e),n=Nf(i,t.inputReference);if(!BH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Df(a,t);return{inputSchema:a,properties:o}}function of(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=WH(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Of(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function JH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=rf(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nf(c,s,a.debug);return tf(y,i,r,i.kind),of(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(rf(s)).then(g=>{let{inputSchema:y,properties:f}=nf(g,s,a.debug);tf(f,i,r,i.kind),u=of(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var XH=JH;async function eZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return FH(e,t);case"schema":return XH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var tZ=eZ;function rZ(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 aq(o,r)),o}return i}var iZ=rZ;function nZ(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 oZ=nZ,Yl="@imgly/plugin-ai-generation",aZ=`
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 bH(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 vH=bH;function wH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),kH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:gH(e)}))}function kH(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,duration:i.duration}),!0}var X1=wH,xH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",gs=xH;function IH(e,t,r){switch(t){case"image":return AH(e,r[t]);case"video":return CH(e,r[t]);case"sticker":return SH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function AH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:gs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function CH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:gs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function SH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:gs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var MH=IH;async function jH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return $H(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return EH(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 _H(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 TH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function $H(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function EH(e,t,r){let i=t.width,n=t.height,a=await fH(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 _H(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 TH(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 Lf=jH;function LH(e){switch(e.userFlow){case"placeholder":return NH(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(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=Tf(),c=await Lf(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),error:n}}}}function NH(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=Tf(),c=MH(s,a,o);if(i=await pH(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 i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?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 Lf(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)&&(ps(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),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var DH=LH;function fs(e){return`${e}.generating`}function PH(e){return`${e}.abort`}function zH(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(PH(d),()=>{}),y=c.global(fs(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await DH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){X1(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;UH(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(ps(h))return;X1(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function UH(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 Of=zH;function is(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function RH({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(fs(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Of(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var FH=RH;function Nf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function tn(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Nf(e,t.$ref),n={...tn(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=tn(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>tn(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=tn(e,t[n],r));return i}return t}function VH(e){return tn(e,{...e})}function BH(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 qH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return GH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function GH(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=YH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function YH(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 Df=qH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Pf(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 zf(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):Uf(e,c,r,i,n,a,o,s);case"boolean":return Rf(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 ns(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 ZH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ns(e,t,r,i,n,a,o,s){let c=Df(t.schema??{},i).reduce((l,u)=>{let d=zf(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 Uf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=fn(d,m,f,t.schema.default,""),k=l(p,b),w=QH(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.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=je(t,r,o),{labels:y,icons:f}=Pf(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:je(t,r,o,x),icon:f[x]})),b=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Rf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),b=l(p,m);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=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function ZH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Pf(t.schema),I=gn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:Uf,boolean:Rf,integer:Ff,object:ns},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:je(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>ns(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=fn(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function QH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var WH=zf,KH={"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 ef(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function tf(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||ef(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||ef(g);n[a(l.id,g)]=y}})}});let c={...KH,...n};Object.keys(c).length>0&&ds(r.cesdk,{en:c})}function rf(e){return typeof e.document=="function"?e.document():e.document}function nf(e,t,r){let i=VH(e),n=Nf(i,t.inputReference);if(!BH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Df(a,t);return{inputSchema:a,properties:o}}function of(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=WH(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Of(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function JH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=rf(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nf(c,s,a.debug);return tf(y,i,r,i.kind),of(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(rf(s)).then(g=>{let{inputSchema:y,properties:f}=nf(g,s,a.debug);tf(f,i,r,i.kind),u=of(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var XH=JH;async function eZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return FH(e,t);case"schema":return XH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var tZ=eZ;function rZ(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 aq(o,r)),o}return i}var iZ=rZ;function nZ(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 oZ=nZ,Zl="@imgly/plugin-ai-generation",aZ=`
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="${Yl}/image"
607
+ id="${Zl}/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="${Yl}/video"
619
+ id="${Zl}/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="${Yl}/audio"
630
+ id="${Zl}/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"/>
@@ -648,7 +648,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
648
648
  </symbol>
649
649
  </svg>
650
650
  `,lZ=aZ;function sZ(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 Vf(2e3),await uZ(t,e,r)):i(t,r)}async function uZ(e,t,r){switch(t.kind){case"image":return cZ(e,t,r);case"video":return dZ(e,t,r);case"text":return pZ(e,t,r);case"audio":return fZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function cZ(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 oH(s,r),l=await nH(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 dZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function pZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Xi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Xi(n,o)}else"customPrompt"in e?a=Xi(n,"custom"):a=Xi(n,"improved");else a=Xi(n,"generated");return gZ(a,r.abortSignal)}async function*gZ(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 Vf(100)}return{kind:"text",text:e}}function Xi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function fZ(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:yZ(220,i),duration:i,thumbnailUrl:void 0}}function yZ(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 mZ(i,44100)}function mZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vf(e){return new Promise(t=>{setTimeout(t,e)})}var hZ=sZ,bZ="USER_CANCEL";function vZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=uH([...e.provider.output.middleware??[],...r?.middlewares??[],dH({enable:r?.debug}),hZ({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}:yH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return cs(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===bZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var wZ=vZ;async function kZ(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=$f.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=iZ(a),s=oZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=wZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await tZ(a,c);mH(r.cesdk,"@imgly/plugin-ai-generation",lZ);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return sH.get().register(u),u}var Hl=kZ;function xZ(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 lq(n,r,i);return r.engine.asset.addSource(a),a.id}var IZ=xZ;function rn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function CZ(e,t,r,i){let{cesdk:n}=r;us(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Hl(e,u,r,i)));o.push(...l),a=SZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Hl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Hl(e,d,r,i)));o.push(...u),a=AZ({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(lH)}),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 AZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(C=>C.id===w.value)??b[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?h:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,$=m.length>1&&j;if((v||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&af(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:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&af(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function SZ({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:ts(p),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:rn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function af(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ps(r.id),!1).value)}var MZ=CZ,jZ="@imgly/plugin-ai-sticker-generation",$Z=`
651
+ `,"+")}`}}async function dZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function pZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Xi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Xi(n,o)}else"customPrompt"in e?a=Xi(n,"custom"):a=Xi(n,"improved");else a=Xi(n,"generated");return gZ(a,r.abortSignal)}async function*gZ(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 Vf(100)}return{kind:"text",text:e}}function Xi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function fZ(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:yZ(220,i),duration:i,thumbnailUrl:void 0}}function yZ(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 mZ(i,44100)}function mZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.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 m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vf(e){return new Promise(t=>{setTimeout(t,e)})}var hZ=sZ,bZ="USER_CANCEL";function vZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=uH([...e.provider.output.middleware??[],...r?.middlewares??[],dH({enable:r?.debug}),hZ({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,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:yH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ps(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===bZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var wZ=vZ;async function kZ(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=$f.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=iZ(a),s=oZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=wZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await tZ(a,c);mH(r.cesdk,"@imgly/plugin-ai-generation",lZ);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return sH.get().register(u),u}var Ql=kZ;function xZ(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 lq(n,r,i);return r.engine.asset.addSource(a),a.id}var IZ=xZ;function rn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function AZ(e,t,r,i){let{cesdk:n}=r;ds(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ql(e,u,r,i)));o.push(...l),a=SZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ql(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ql(e,d,r,i)));o.push(...u),a=CZ({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(lH)}),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 CZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:is(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:is(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&af(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:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&af(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function SZ({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:is(p),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:rn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function af(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(fs(r.id),!1).value)}var MZ=AZ,Mte=5*60*1e3,jZ="@imgly/plugin-ai-sticker-generation",$Z=`
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
- `,EZ=$Z,_Z=typeof global=="object"&&global&&global.Object===Object&&global,Bf=_Z,TZ=typeof self=="object"&&self&&self.Object===Object&&self,LZ=Bf||TZ||Function("return this")(),se=LZ,OZ=se.Symbol,lr=OZ,qf=Object.prototype,NZ=qf.hasOwnProperty,DZ=qf.toString,en=lr?lr.toStringTag:void 0;function PZ(e){var t=NZ.call(e,en),r=e[en];try{e[en]=void 0;var i=!0}catch{}var n=DZ.call(e);return i&&(t?e[en]=r:delete e[en]),n}var zZ=PZ,UZ=Object.prototype,RZ=UZ.toString;function FZ(e){return RZ.call(e)}var VZ=FZ,BZ="[object Null]",qZ="[object Undefined]",lf=lr?lr.toStringTag:void 0;function GZ(e){return e==null?e===void 0?qZ:BZ:lf&&lf in Object(e)?zZ(e):VZ(e)}var yn=GZ;function YZ(e){return e!=null&&typeof e=="object"}var gs=YZ,xte=Array.isArray;function HZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gf=HZ,ZZ="[object AsyncFunction]",QZ="[object Function]",WZ="[object GeneratorFunction]",KZ="[object Proxy]";function JZ(e){if(!Gf(e))return!1;var t=yn(e);return t==QZ||t==WZ||t==ZZ||t==KZ}var XZ=JZ,eQ=se["__core-js_shared__"],Zl=eQ,sf=function(){var e=/[^.]+$/.exec(Zl&&Zl.keys&&Zl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tQ(e){return!!sf&&sf in e}var rQ=tQ,iQ=Function.prototype,nQ=iQ.toString;function oQ(e){if(e!=null){try{return nQ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oQ,aQ=/[\\^$.*+?()[\]{}|]/g,lQ=/^\[object .+?Constructor\]$/,sQ=Function.prototype,uQ=Object.prototype,cQ=sQ.toString,dQ=uQ.hasOwnProperty,pQ=RegExp("^"+cQ.call(dQ).replace(aQ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gQ(e){if(!Gf(e)||rQ(e))return!1;var t=XZ(e)?pQ:lQ;return t.test(Ge(e))}var fQ=gQ;function yQ(e,t){return e?.[t]}var mQ=yQ;function hQ(e,t){var r=mQ(e,t);return fQ(r)?r:void 0}var pr=hQ,bQ=pr(se,"WeakMap"),is=bQ;function vQ(e,t){return e===t||e!==e&&t!==t}var wQ=vQ,kQ=9007199254740991;function xQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kQ}var IQ=xQ,Ite=Object.prototype,CQ="[object Arguments]";function AQ(e){return gs(e)&&yn(e)==CQ}var uf=AQ,Yf=Object.prototype,SQ=Yf.hasOwnProperty,MQ=Yf.propertyIsEnumerable,Cte=uf(function(){return arguments}())?uf:function(e){return gs(e)&&SQ.call(e,"callee")&&!MQ.call(e,"callee")},Hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cf=Hf&&typeof module=="object"&&module&&!module.nodeType&&module,jQ=cf&&cf.exports===Hf,df=jQ?se.Buffer:void 0,Ate=df?df.isBuffer:void 0,$Q="[object Arguments]",EQ="[object Array]",_Q="[object Boolean]",TQ="[object Date]",LQ="[object Error]",OQ="[object Function]",NQ="[object Map]",DQ="[object Number]",PQ="[object Object]",zQ="[object RegExp]",UQ="[object Set]",RQ="[object String]",FQ="[object WeakMap]",VQ="[object ArrayBuffer]",BQ="[object DataView]",qQ="[object Float32Array]",GQ="[object Float64Array]",YQ="[object Int8Array]",HQ="[object Int16Array]",ZQ="[object Int32Array]",QQ="[object Uint8Array]",WQ="[object Uint8ClampedArray]",KQ="[object Uint16Array]",JQ="[object Uint32Array]",B={};B[qQ]=B[GQ]=B[YQ]=B[HQ]=B[ZQ]=B[QQ]=B[WQ]=B[KQ]=B[JQ]=!0;B[$Q]=B[EQ]=B[VQ]=B[_Q]=B[BQ]=B[TQ]=B[LQ]=B[OQ]=B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=!1;function XQ(e){return gs(e)&&IQ(e.length)&&!!B[yn(e)]}var eW=XQ;function tW(e){return function(t){return e(t)}}var rW=tW,Zf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,an=Zf&&typeof module=="object"&&module&&!module.nodeType&&module,iW=an&&an.exports===Zf,Ql=iW&&Bf.process,nW=function(){try{var e=an&&an.require&&an.require("util").types;return e||Ql&&Ql.binding&&Ql.binding("util")}catch{}}(),pf=nW,gf=pf&&pf.isTypedArray,Ste=gf?rW(gf):eW,oW=Object.prototype,Mte=oW.hasOwnProperty;function aW(e,t){return function(r){return e(t(r))}}var lW=aW,jte=lW(Object.keys,Object),sW=Object.prototype,$te=sW.hasOwnProperty,uW=pr(Object,"create"),un=uW;function cW(){this.__data__=un?un(null):{},this.size=0}var dW=cW;function pW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gW=pW,fW="__lodash_hash_undefined__",yW=Object.prototype,mW=yW.hasOwnProperty;function hW(e){var t=this.__data__;if(un){var r=t[e];return r===fW?void 0:r}return mW.call(t,e)?t[e]:void 0}var bW=hW,vW=Object.prototype,wW=vW.hasOwnProperty;function kW(e){var t=this.__data__;return un?t[e]!==void 0:wW.call(t,e)}var xW=kW,IW="__lodash_hash_undefined__";function CW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=un&&t===void 0?IW:t,this}var AW=CW;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=dW;gr.prototype.delete=gW;gr.prototype.get=bW;gr.prototype.has=xW;gr.prototype.set=AW;var ff=gr;function SW(){this.__data__=[],this.size=0}var MW=SW;function jW(e,t){for(var r=e.length;r--;)if(wQ(e[r][0],t))return r;return-1}var $o=jW,$W=Array.prototype,EW=$W.splice;function _W(e){var t=this.__data__,r=$o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():EW.call(t,r,1),--this.size,!0}var TW=_W;function LW(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var OW=LW;function NW(e){return $o(this.__data__,e)>-1}var DW=NW;function PW(e,t){var r=this.__data__,i=$o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zW=PW;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=MW;fr.prototype.delete=TW;fr.prototype.get=OW;fr.prototype.has=DW;fr.prototype.set=zW;var Eo=fr,UW=pr(se,"Map"),cn=UW;function RW(){this.size=0,this.__data__={hash:new ff,map:new(cn||Eo),string:new ff}}var FW=RW;function VW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BW=VW;function qW(e,t){var r=e.__data__;return BW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _o=qW;function GW(e){var t=_o(this,e).delete(e);return this.size-=t?1:0,t}var YW=GW;function HW(e){return _o(this,e).get(e)}var ZW=HW;function QW(e){return _o(this,e).has(e)}var WW=QW;function KW(e,t){var r=_o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JW=KW;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=FW;yr.prototype.delete=YW;yr.prototype.get=ZW;yr.prototype.has=WW;yr.prototype.set=JW;var Qf=yr;function XW(){this.__data__=new Eo,this.size=0}var eK=XW;function tK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rK=tK;function iK(e){return this.__data__.get(e)}var nK=iK;function oK(e){return this.__data__.has(e)}var aK=oK,lK=200;function sK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!cn||i.length<lK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qf(i)}return r.set(e,t),this.size=r.size,this}var uK=sK;function mn(e){var t=this.__data__=new Eo(e);this.size=t.size}mn.prototype.clear=eK;mn.prototype.delete=rK;mn.prototype.get=nK;mn.prototype.has=aK;mn.prototype.set=uK;var cK=Object.prototype,Ete=cK.propertyIsEnumerable,dK=pr(se,"DataView"),ns=dK,pK=pr(se,"Promise"),os=pK,gK=pr(se,"Set"),as=gK,yf="[object Map]",fK="[object Object]",mf="[object Promise]",hf="[object Set]",bf="[object WeakMap]",vf="[object DataView]",yK=Ge(ns),mK=Ge(cn),hK=Ge(os),bK=Ge(as),vK=Ge(is),nr=yn;(ns&&nr(new ns(new ArrayBuffer(1)))!=vf||cn&&nr(new cn)!=yf||os&&nr(os.resolve())!=mf||as&&nr(new as)!=hf||is&&nr(new is)!=bf)&&(nr=function(e){var t=yn(e),r=t==fK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yK:return vf;case mK:return yf;case hK:return mf;case bK:return hf;case vK:return bf}return t});var _te=se.Uint8Array,wK="__lodash_hash_undefined__";function kK(e){return this.__data__.set(e,wK),this}var xK=kK;function IK(e){return this.__data__.has(e)}var CK=IK;function ls(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qf;++t<r;)this.add(e[t])}ls.prototype.add=ls.prototype.push=xK;ls.prototype.has=CK;var wf=lr?lr.prototype:void 0,Tte=wf?wf.valueOf:void 0,AK=Object.prototype,Lte=AK.hasOwnProperty,SK=Object.prototype,Ote=SK.hasOwnProperty,Nte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Dte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Pte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function MK(e){return e==null?[]:Array.isArray(e)?e:[e]}var jK=MK;function $K(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function EK(e){return typeof e?.translate=="function"}function _K(e,t,r){return e&&$K(e)&&EK(e.i18n)?e.i18n.translate(t):r}var nn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function TK(e){return{async initialize({cesdk:t}){if(t==null)return;hH(t,nn,"1.79.0"),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=$f.get(),i=`${nn}.action.label`;t.ui.addIconSet(jZ,EZ),us(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:nn,pluginId:nn,label:_K(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(jK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await MZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),vH({cesdk:t,panelId:Se})):n()}}}var LK=TK,OK=e=>({name:nn,version:"1.79.0",...LK(e)}),Wf=OK;var fs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();p=p.filter(x=>{let h=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return h&&h.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(x=>{let h=x.tags?.[n]||[];return w.some(I=>h.includes(I))})}a&&p.sort((w,x)=>{let h=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return h&&!I?-1:!h&&I?1:0}),d&&d!=="id"?p.sort((w,x)=>{let h=w.meta?.[d],I=x.meta?.[d];return h===void 0?1:I===void 0?-1:typeof h=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(h):h.localeCompare(I):typeof h=="number"&&typeof I=="number"?u==="Descending"?I-h:h-I:0}):d==="id"&&p.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let g=p.length,y=r*i,f=y+i,b=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=NK(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 Kf(e,t,r=[]){return new fs(e,t,r)}function NK(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 hn="ly.img.ai.apps";var Y=au("apps"),DK=512,PK=128,Jf=e=>({async initialize({cesdk:t}){if(t==null)return;lu(t,hn,"1.79.0");let{providers:r}=e;await t.addPlugin(z1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Oc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Wd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(dg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Wf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),VK(t),zK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function zK(e,t){FK(e);let r=UK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{Cn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?Cn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(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 UK(e,t){let r=Cn.get(),i=Kf(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?RK(t.baseURL,o):void 0,width:DK,height:PK}}).filter(Ds)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function RK(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 FK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let b=e.ui.getAssetLibraryEntry(m);if(b==null)return!1;if(u==null)return!0;let k=b.sceneMode;return typeof k=="string"?b.sceneMode===u||b.sceneMode==="All":typeof k=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(x=>{let h=k(e.version.startsWith("1.51.")?x:{sourceId:x});return h===u||h==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function VK(e){nu(e,su)}var BK=e=>({name:hn,version:"1.79.0",...Jf(e)}),rre=BK;export{rre as default};
665
+ `,EZ=$Z,_Z=typeof global=="object"&&global&&global.Object===Object&&global,Bf=_Z,TZ=typeof self=="object"&&self&&self.Object===Object&&self,LZ=Bf||TZ||Function("return this")(),se=LZ,OZ=se.Symbol,lr=OZ,qf=Object.prototype,NZ=qf.hasOwnProperty,DZ=qf.toString,en=lr?lr.toStringTag:void 0;function PZ(e){var t=NZ.call(e,en),r=e[en];try{e[en]=void 0;var i=!0}catch{}var n=DZ.call(e);return i&&(t?e[en]=r:delete e[en]),n}var zZ=PZ,UZ=Object.prototype,RZ=UZ.toString;function FZ(e){return RZ.call(e)}var VZ=FZ,BZ="[object Null]",qZ="[object Undefined]",lf=lr?lr.toStringTag:void 0;function GZ(e){return e==null?e===void 0?qZ:BZ:lf&&lf in Object(e)?zZ(e):VZ(e)}var yn=GZ;function YZ(e){return e!=null&&typeof e=="object"}var ys=YZ,jte=Array.isArray;function HZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gf=HZ,ZZ="[object AsyncFunction]",QZ="[object Function]",WZ="[object GeneratorFunction]",KZ="[object Proxy]";function JZ(e){if(!Gf(e))return!1;var t=yn(e);return t==QZ||t==WZ||t==ZZ||t==KZ}var XZ=JZ,eQ=se["__core-js_shared__"],Wl=eQ,sf=function(){var e=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tQ(e){return!!sf&&sf in e}var rQ=tQ,iQ=Function.prototype,nQ=iQ.toString;function oQ(e){if(e!=null){try{return nQ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oQ,aQ=/[\\^$.*+?()[\]{}|]/g,lQ=/^\[object .+?Constructor\]$/,sQ=Function.prototype,uQ=Object.prototype,cQ=sQ.toString,dQ=uQ.hasOwnProperty,pQ=RegExp("^"+cQ.call(dQ).replace(aQ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gQ(e){if(!Gf(e)||rQ(e))return!1;var t=XZ(e)?pQ:lQ;return t.test(Ge(e))}var fQ=gQ;function yQ(e,t){return e?.[t]}var mQ=yQ;function hQ(e,t){var r=mQ(e,t);return fQ(r)?r:void 0}var pr=hQ,bQ=pr(se,"WeakMap"),os=bQ;function vQ(e,t){return e===t||e!==e&&t!==t}var wQ=vQ,kQ=9007199254740991;function xQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kQ}var IQ=xQ,$te=Object.prototype,AQ="[object Arguments]";function CQ(e){return ys(e)&&yn(e)==AQ}var uf=CQ,Yf=Object.prototype,SQ=Yf.hasOwnProperty,MQ=Yf.propertyIsEnumerable,Ete=uf(function(){return arguments}())?uf:function(e){return ys(e)&&SQ.call(e,"callee")&&!MQ.call(e,"callee")},Hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cf=Hf&&typeof module=="object"&&module&&!module.nodeType&&module,jQ=cf&&cf.exports===Hf,df=jQ?se.Buffer:void 0,_te=df?df.isBuffer:void 0,$Q="[object Arguments]",EQ="[object Array]",_Q="[object Boolean]",TQ="[object Date]",LQ="[object Error]",OQ="[object Function]",NQ="[object Map]",DQ="[object Number]",PQ="[object Object]",zQ="[object RegExp]",UQ="[object Set]",RQ="[object String]",FQ="[object WeakMap]",VQ="[object ArrayBuffer]",BQ="[object DataView]",qQ="[object Float32Array]",GQ="[object Float64Array]",YQ="[object Int8Array]",HQ="[object Int16Array]",ZQ="[object Int32Array]",QQ="[object Uint8Array]",WQ="[object Uint8ClampedArray]",KQ="[object Uint16Array]",JQ="[object Uint32Array]",B={};B[qQ]=B[GQ]=B[YQ]=B[HQ]=B[ZQ]=B[QQ]=B[WQ]=B[KQ]=B[JQ]=!0;B[$Q]=B[EQ]=B[VQ]=B[_Q]=B[BQ]=B[TQ]=B[LQ]=B[OQ]=B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=!1;function XQ(e){return ys(e)&&IQ(e.length)&&!!B[yn(e)]}var eW=XQ;function tW(e){return function(t){return e(t)}}var rW=tW,Zf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,an=Zf&&typeof module=="object"&&module&&!module.nodeType&&module,iW=an&&an.exports===Zf,Kl=iW&&Bf.process,nW=function(){try{var e=an&&an.require&&an.require("util").types;return e||Kl&&Kl.binding&&Kl.binding("util")}catch{}}(),pf=nW,gf=pf&&pf.isTypedArray,Tte=gf?rW(gf):eW,oW=Object.prototype,Lte=oW.hasOwnProperty;function aW(e,t){return function(r){return e(t(r))}}var lW=aW,Ote=lW(Object.keys,Object),sW=Object.prototype,Nte=sW.hasOwnProperty,uW=pr(Object,"create"),un=uW;function cW(){this.__data__=un?un(null):{},this.size=0}var dW=cW;function pW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gW=pW,fW="__lodash_hash_undefined__",yW=Object.prototype,mW=yW.hasOwnProperty;function hW(e){var t=this.__data__;if(un){var r=t[e];return r===fW?void 0:r}return mW.call(t,e)?t[e]:void 0}var bW=hW,vW=Object.prototype,wW=vW.hasOwnProperty;function kW(e){var t=this.__data__;return un?t[e]!==void 0:wW.call(t,e)}var xW=kW,IW="__lodash_hash_undefined__";function AW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=un&&t===void 0?IW:t,this}var CW=AW;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=dW;gr.prototype.delete=gW;gr.prototype.get=bW;gr.prototype.has=xW;gr.prototype.set=CW;var ff=gr;function SW(){this.__data__=[],this.size=0}var MW=SW;function jW(e,t){for(var r=e.length;r--;)if(wQ(e[r][0],t))return r;return-1}var $o=jW,$W=Array.prototype,EW=$W.splice;function _W(e){var t=this.__data__,r=$o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():EW.call(t,r,1),--this.size,!0}var TW=_W;function LW(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var OW=LW;function NW(e){return $o(this.__data__,e)>-1}var DW=NW;function PW(e,t){var r=this.__data__,i=$o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zW=PW;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=MW;fr.prototype.delete=TW;fr.prototype.get=OW;fr.prototype.has=DW;fr.prototype.set=zW;var Eo=fr,UW=pr(se,"Map"),cn=UW;function RW(){this.size=0,this.__data__={hash:new ff,map:new(cn||Eo),string:new ff}}var FW=RW;function VW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BW=VW;function qW(e,t){var r=e.__data__;return BW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _o=qW;function GW(e){var t=_o(this,e).delete(e);return this.size-=t?1:0,t}var YW=GW;function HW(e){return _o(this,e).get(e)}var ZW=HW;function QW(e){return _o(this,e).has(e)}var WW=QW;function KW(e,t){var r=_o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JW=KW;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=FW;yr.prototype.delete=YW;yr.prototype.get=ZW;yr.prototype.has=WW;yr.prototype.set=JW;var Qf=yr;function XW(){this.__data__=new Eo,this.size=0}var eK=XW;function tK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rK=tK;function iK(e){return this.__data__.get(e)}var nK=iK;function oK(e){return this.__data__.has(e)}var aK=oK,lK=200;function sK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!cn||i.length<lK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qf(i)}return r.set(e,t),this.size=r.size,this}var uK=sK;function mn(e){var t=this.__data__=new Eo(e);this.size=t.size}mn.prototype.clear=eK;mn.prototype.delete=rK;mn.prototype.get=nK;mn.prototype.has=aK;mn.prototype.set=uK;var cK=Object.prototype,Dte=cK.propertyIsEnumerable,dK=pr(se,"DataView"),as=dK,pK=pr(se,"Promise"),ls=pK,gK=pr(se,"Set"),ss=gK,yf="[object Map]",fK="[object Object]",mf="[object Promise]",hf="[object Set]",bf="[object WeakMap]",vf="[object DataView]",yK=Ge(as),mK=Ge(cn),hK=Ge(ls),bK=Ge(ss),vK=Ge(os),nr=yn;(as&&nr(new as(new ArrayBuffer(1)))!=vf||cn&&nr(new cn)!=yf||ls&&nr(ls.resolve())!=mf||ss&&nr(new ss)!=hf||os&&nr(new os)!=bf)&&(nr=function(e){var t=yn(e),r=t==fK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yK:return vf;case mK:return yf;case hK:return mf;case bK:return hf;case vK:return bf}return t});var Pte=se.Uint8Array,wK="__lodash_hash_undefined__";function kK(e){return this.__data__.set(e,wK),this}var xK=kK;function IK(e){return this.__data__.has(e)}var AK=IK;function us(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qf;++t<r;)this.add(e[t])}us.prototype.add=us.prototype.push=xK;us.prototype.has=AK;var wf=lr?lr.prototype:void 0,zte=wf?wf.valueOf:void 0,CK=Object.prototype,Ute=CK.hasOwnProperty,SK=Object.prototype,Rte=SK.hasOwnProperty,Fte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function MK(e){return e==null?[]:Array.isArray(e)?e:[e]}var jK=MK;function $K(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function EK(e){return typeof e?.translate=="function"}function _K(e,t,r){return e&&$K(e)&&EK(e.i18n)?e.i18n.translate(t):r}var nn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function TK(e){return{async initialize({cesdk:t}){if(t==null)return;hH(t,nn,"1.79.0"),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=$f.get(),i=`${nn}.action.label`;t.ui.addIconSet(jZ,EZ),ds(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:nn,pluginId:nn,label:_K(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(jK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await MZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),vH({cesdk:t,panelId:Se})):n()}}}var LK=TK,OK=e=>({name:nn,version:"1.79.0",...LK(e)}),Wf=OK;var ms=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(I=>w.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(I=>w.groups?.includes(I)))),o){let w=o.toLowerCase();p=p.filter(I=>{let h=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return h&&h.includes(w)||x.some(M=>M.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(I=>{let h=I.tags?.[n]||[];return w.some(x=>h.includes(x))})}a&&p.sort((w,I)=>{let h=this.activeAssetIds.has(w.id),x=this.activeAssetIds.has(I.id);return h&&!x?-1:!h&&x?1:0}),d&&d!=="id"?p.sort((w,I)=>{let h=w.meta?.[d],x=I.meta?.[d];return h===void 0?1:x===void 0?-1:typeof h=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(h):h.localeCompare(x):typeof h=="number"&&typeof x=="number"?u==="Descending"?x-h:h-x:0}):d==="id"&&p.sort((w,I)=>u==="Descending"?I.id.localeCompare(w.id):w.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,b=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=NK(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 Kf(e,t,r=[]){return new ms(e,t,r)}function NK(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 hn="ly.img.ai.apps";var Y=su("apps"),DK=512,PK=128,Jf=e=>({async initialize({cesdk:t}){if(t==null)return;uu(t,hn,"1.80.0-hotfix-mcp.0");let{providers:r}=e;await t.addPlugin(z1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Nc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Kd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(pg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Wf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),VK(t),zK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function zK(e,t){FK(e);let r=UK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{An.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?An.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 UK(e,t){let r=An.get(),i=Kf(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?RK(t.baseURL,o):void 0,width:DK,height:PK}}).filter(zs)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function RK(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 FK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let b=e.ui.getAssetLibraryEntry(m);if(b==null)return!1;if(u==null)return!0;let k=b.sceneMode;return typeof k=="string"?b.sceneMode===u||b.sceneMode==="All":typeof k=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(I=>{let h=k(e.version.startsWith("1.51.")?I:{sourceId:I});return h===u||h==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function VK(e){au(e,cu)}var BK=e=>({name:hn,version:"1.80.0-hotfix-mcp.0",...Jf(e)}),sre=BK;export{sre as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js: