@imgly/plugin-ai-apps-web 1.74.0-nightly.20260421 → 1.74.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- var Kf=typeof global=="object"&&global&&global.Object===Object&&global,$s=Kf,Jf=typeof self=="object"&&self&&self.Object===Object&&self,Xf=$s||Jf||Function("return this")(),K=Xf,ey=K.Symbol,He=ey,Es=Object.prototype,ty=Es.hasOwnProperty,ry=Es.toString,mr=He?He.toStringTag:void 0;function iy(e){var t=ty.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=ry.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var ny=iy,oy=Object.prototype,ay=oy.toString;function ly(e){return ay.call(e)}var sy=ly,uy="[object Null]",cy="[object Undefined]",ys=He?He.toStringTag:void 0;function dy(e){return e==null?e===void 0?cy:uy:ys&&ys in Object(e)?ny(e):sy(e)}var wr=dy;function py(e){return e!=null&&typeof e=="object"}var Uo=py,RK=Array.isArray;function gy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _s=gy,fy="[object AsyncFunction]",yy="[object Function]",my="[object GeneratorFunction]",by="[object Proxy]";function hy(e){if(!_s(e))return!1;var t=wr(e);return t==yy||t==my||t==fy||t==by}var vy=hy,wy=K["__core-js_shared__"],Lo=wy,ms=function(){var e=/[^.]+$/.exec(Lo&&Lo.keys&&Lo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function ky(e){return!!ms&&ms in e}var xy=ky,Iy=Function.prototype,Cy=Iy.toString;function Ay(e){if(e!=null){try{return Cy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=Ay,Sy=/[\\^$.*+?()[\]{}|]/g,My=/^\[object .+?Constructor\]$/,jy=Function.prototype,$y=Object.prototype,Ey=jy.toString,_y=$y.hasOwnProperty,Ly=RegExp("^"+Ey.call(_y).replace(Sy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ty(e){if(!_s(e)||xy(e))return!1;var t=vy(e)?Ly:My;return t.test($e(e))}var Oy=Ty;function Ny(e,t){return e?.[t]}var Dy=Ny;function Py(e,t){var r=Dy(e,t);return Oy(r)?r:void 0}var Ze=Py,zy=Ze(K,"WeakMap"),Oo=zy;function Uy(e,t){return e===t||e!==e&&t!==t}var Ry=Uy,Fy=9007199254740991;function Vy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fy}var By=Vy;var FK=Object.prototype;var qy="[object Arguments]";function Gy(e){return Uo(e)&&wr(e)==qy}var bs=Gy,Ls=Object.prototype,Yy=Ls.hasOwnProperty,Hy=Ls.propertyIsEnumerable,VK=bs(function(){return arguments}())?bs:function(e){return Uo(e)&&Yy.call(e,"callee")&&!Hy.call(e,"callee")};var Ts=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hs=Ts&&typeof module=="object"&&module&&!module.nodeType&&module,Zy=hs&&hs.exports===Ts,vs=Zy?K.Buffer:void 0,BK=vs?vs.isBuffer:void 0;var Qy="[object Arguments]",Wy="[object Array]",Ky="[object Boolean]",Jy="[object Date]",Xy="[object Error]",em="[object Function]",tm="[object Map]",rm="[object Number]",im="[object Object]",nm="[object RegExp]",om="[object Set]",am="[object String]",lm="[object WeakMap]",sm="[object ArrayBuffer]",um="[object DataView]",cm="[object Float32Array]",dm="[object Float64Array]",pm="[object Int8Array]",gm="[object Int16Array]",fm="[object Int32Array]",ym="[object Uint8Array]",mm="[object Uint8ClampedArray]",bm="[object Uint16Array]",hm="[object Uint32Array]",L={};L[cm]=L[dm]=L[pm]=L[gm]=L[fm]=L[ym]=L[mm]=L[bm]=L[hm]=!0;L[Qy]=L[Wy]=L[sm]=L[Ky]=L[um]=L[Jy]=L[Xy]=L[em]=L[tm]=L[rm]=L[im]=L[nm]=L[om]=L[am]=L[lm]=!1;function vm(e){return Uo(e)&&By(e.length)&&!!L[wr(e)]}var wm=vm;function km(e){return function(t){return e(t)}}var xm=km,Os=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=Os&&typeof module=="object"&&module&&!module.nodeType&&module,Im=br&&br.exports===Os,To=Im&&$s.process,Cm=function(){try{var e=br&&br.require&&br.require("util").types;return e||To&&To.binding&&To.binding("util")}catch{}}(),ws=Cm,ks=ws&&ws.isTypedArray,qK=ks?xm(ks):wm;var Am=Object.prototype,GK=Am.hasOwnProperty;function Sm(e,t){return function(r){return e(t(r))}}var Mm=Sm,YK=Mm(Object.keys,Object);var jm=Object.prototype,HK=jm.hasOwnProperty;var $m=Ze(Object,"create"),hr=$m;function Em(){this.__data__=hr?hr(null):{},this.size=0}var _m=Em;function Lm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Tm=Lm,Om="__lodash_hash_undefined__",Nm=Object.prototype,Dm=Nm.hasOwnProperty;function Pm(e){var t=this.__data__;if(hr){var r=t[e];return r===Om?void 0:r}return Dm.call(t,e)?t[e]:void 0}var zm=Pm,Um=Object.prototype,Rm=Um.hasOwnProperty;function Fm(e){var t=this.__data__;return hr?t[e]!==void 0:Rm.call(t,e)}var Vm=Fm,Bm="__lodash_hash_undefined__";function qm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?Bm:t,this}var Gm=qm;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=_m;Qe.prototype.delete=Tm;Qe.prototype.get=zm;Qe.prototype.has=Vm;Qe.prototype.set=Gm;var xs=Qe;function Ym(){this.__data__=[],this.size=0}var Hm=Ym;function Zm(e,t){for(var r=e.length;r--;)if(Ry(e[r][0],t))return r;return-1}var hn=Zm,Qm=Array.prototype,Wm=Qm.splice;function Km(e){var t=this.__data__,r=hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Wm.call(t,r,1),--this.size,!0}var Jm=Km;function Xm(e){var t=this.__data__,r=hn(t,e);return r<0?void 0:t[r][1]}var eb=Xm;function tb(e){return hn(this.__data__,e)>-1}var rb=tb;function ib(e,t){var r=this.__data__,i=hn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var nb=ib;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=Hm;We.prototype.delete=Jm;We.prototype.get=eb;We.prototype.has=rb;We.prototype.set=nb;var vn=We,ob=Ze(K,"Map"),vr=ob;function ab(){this.size=0,this.__data__={hash:new xs,map:new(vr||vn),string:new xs}}var lb=ab;function sb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ub=sb;function cb(e,t){var r=e.__data__;return ub(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=cb;function db(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var pb=db;function gb(e){return wn(this,e).get(e)}var fb=gb;function yb(e){return wn(this,e).has(e)}var mb=yb;function bb(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var hb=bb;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=lb;Ke.prototype.delete=pb;Ke.prototype.get=fb;Ke.prototype.has=mb;Ke.prototype.set=hb;var Ns=Ke;function vb(){this.__data__=new vn,this.size=0}var wb=vb;function kb(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xb=kb;function Ib(e){return this.__data__.get(e)}var Cb=Ib;function Ab(e){return this.__data__.has(e)}var Sb=Ab,Mb=200;function jb(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<Mb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ns(i)}return r.set(e,t),this.size=r.size,this}var $b=jb;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=wb;kr.prototype.delete=xb;kr.prototype.get=Cb;kr.prototype.has=Sb;kr.prototype.set=$b;var Eb=Object.prototype,ZK=Eb.propertyIsEnumerable;var _b=Ze(K,"DataView"),No=_b,Lb=Ze(K,"Promise"),Do=Lb,Tb=Ze(K,"Set"),Po=Tb,Is="[object Map]",Ob="[object Object]",Cs="[object Promise]",As="[object Set]",Ss="[object WeakMap]",Ms="[object DataView]",Nb=$e(No),Db=$e(vr),Pb=$e(Do),zb=$e(Po),Ub=$e(Oo),Ye=wr;(No&&Ye(new No(new ArrayBuffer(1)))!=Ms||vr&&Ye(new vr)!=Is||Do&&Ye(Do.resolve())!=Cs||Po&&Ye(new Po)!=As||Oo&&Ye(new Oo)!=Ss)&&(Ye=function(e){var t=wr(e),r=t==Ob?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Nb:return Ms;case Db:return Is;case Pb:return Cs;case zb:return As;case Ub:return Ss}return t});var QK=K.Uint8Array;var Rb="__lodash_hash_undefined__";function Fb(e){return this.__data__.set(e,Rb),this}var Vb=Fb;function Bb(e){return this.__data__.has(e)}var qb=Bb;function zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ns;++t<r;)this.add(e[t])}zo.prototype.add=zo.prototype.push=Vb;zo.prototype.has=qb;var js=He?He.prototype:void 0,WK=js?js.valueOf:void 0;var Gb=Object.prototype,KK=Gb.hasOwnProperty;var Yb=Object.prototype,JK=Yb.hasOwnProperty;var XK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),eJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),tJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Hb(e){return e!==void 0}var Ds=Hb;var Zb=typeof global=="object"&&global&&global.Object===Object&&global,Ks=Zb,Qb=typeof self=="object"&&self&&self.Object===Object&&self,Wb=Ks||Qb||Function("return this")(),J=Wb,Kb=J.Symbol,Xe=Kb,Js=Object.prototype,Jb=Js.hasOwnProperty,Xb=Js.toString,xr=Xe?Xe.toStringTag:void 0;function eh(e){var t=Jb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Xb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var th=eh,rh=Object.prototype,ih=rh.toString;function nh(e){return ih.call(e)}var oh=nh,ah="[object Null]",lh="[object Undefined]",Ps=Xe?Xe.toStringTag:void 0;function sh(e){return e==null?e===void 0?lh:ah:Ps&&Ps in Object(e)?th(e):oh(e)}var Sr=sh;function uh(e){return e!=null&&typeof e=="object"}var Zo=uh,iJ=Array.isArray;function ch(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xs=ch,dh="[object AsyncFunction]",ph="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function yh(e){if(!Xs(e))return!1;var t=Sr(e);return t==ph||t==gh||t==dh||t==fh}var mh=yh,bh=J["__core-js_shared__"],Ro=bh,zs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function hh(e){return!!zs&&zs in e}var vh=hh,wh=Function.prototype,kh=wh.toString;function xh(e){if(e!=null){try{return kh.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=xh,Ih=/[\\^$.*+?()[\]{}|]/g,Ch=/^\[object .+?Constructor\]$/,Ah=Function.prototype,Sh=Object.prototype,Mh=Ah.toString,jh=Sh.hasOwnProperty,$h=RegExp("^"+Mh.call(jh).replace(Ih,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Eh(e){if(!Xs(e)||vh(e))return!1;var t=mh(e)?$h:Ch;return t.test(Ee(e))}var _h=Eh;function Lh(e,t){return e?.[t]}var Th=Lh;function Oh(e,t){var r=Th(e,t);return _h(r)?r:void 0}var et=Oh,Nh=et(J,"WeakMap"),Bo=Nh;function Dh(e,t){return e===t||e!==e&&t!==t}var Ph=Dh,zh=9007199254740991;function Uh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=zh}var Rh=Uh,nJ=Object.prototype,Fh="[object Arguments]";function Vh(e){return Zo(e)&&Sr(e)==Fh}var Us=Vh,eu=Object.prototype,Bh=eu.hasOwnProperty,qh=eu.propertyIsEnumerable,oJ=Us(function(){return arguments}())?Us:function(e){return Zo(e)&&Bh.call(e,"callee")&&!qh.call(e,"callee")},tu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rs=tu&&typeof module=="object"&&module&&!module.nodeType&&module,Gh=Rs&&Rs.exports===tu,Fs=Gh?J.Buffer:void 0,aJ=Fs?Fs.isBuffer:void 0,Yh="[object Arguments]",Hh="[object Array]",Zh="[object Boolean]",Qh="[object Date]",Wh="[object Error]",Kh="[object Function]",Jh="[object Map]",Xh="[object Number]",e0="[object Object]",t0="[object RegExp]",r0="[object Set]",i0="[object String]",n0="[object WeakMap]",o0="[object ArrayBuffer]",a0="[object DataView]",l0="[object Float32Array]",s0="[object Float64Array]",u0="[object Int8Array]",c0="[object Int16Array]",d0="[object Int32Array]",p0="[object Uint8Array]",g0="[object Uint8ClampedArray]",f0="[object Uint16Array]",y0="[object Uint32Array]",T={};T[l0]=T[s0]=T[u0]=T[c0]=T[d0]=T[p0]=T[g0]=T[f0]=T[y0]=!0;T[Yh]=T[Hh]=T[o0]=T[Zh]=T[a0]=T[Qh]=T[Wh]=T[Kh]=T[Jh]=T[Xh]=T[e0]=T[t0]=T[r0]=T[i0]=T[n0]=!1;function m0(e){return Zo(e)&&Rh(e.length)&&!!T[Sr(e)]}var b0=m0;function h0(e){return function(t){return e(t)}}var v0=h0,ru=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=ru&&typeof module=="object"&&module&&!module.nodeType&&module,w0=Ir&&Ir.exports===ru,Fo=w0&&Ks.process,k0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Fo&&Fo.binding&&Fo.binding("util")}catch{}}(),Vs=k0,Bs=Vs&&Vs.isTypedArray,lJ=Bs?v0(Bs):b0,x0=Object.prototype,sJ=x0.hasOwnProperty;function I0(e,t){return function(r){return e(t(r))}}var C0=I0,uJ=C0(Object.keys,Object),A0=Object.prototype,cJ=A0.hasOwnProperty,S0=et(Object,"create"),Cr=S0;function M0(){this.__data__=Cr?Cr(null):{},this.size=0}var j0=M0;function $0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E0=$0,_0="__lodash_hash_undefined__",L0=Object.prototype,T0=L0.hasOwnProperty;function O0(e){var t=this.__data__;if(Cr){var r=t[e];return r===_0?void 0:r}return T0.call(t,e)?t[e]:void 0}var N0=O0,D0=Object.prototype,P0=D0.hasOwnProperty;function z0(e){var t=this.__data__;return Cr?t[e]!==void 0:P0.call(t,e)}var U0=z0,R0="__lodash_hash_undefined__";function F0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?R0:t,this}var V0=F0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=j0;tt.prototype.delete=E0;tt.prototype.get=N0;tt.prototype.has=U0;tt.prototype.set=V0;var qs=tt;function B0(){this.__data__=[],this.size=0}var q0=B0;function G0(e,t){for(var r=e.length;r--;)if(Ph(e[r][0],t))return r;return-1}var kn=G0,Y0=Array.prototype,H0=Y0.splice;function Z0(e){var t=this.__data__,r=kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():H0.call(t,r,1),--this.size,!0}var Q0=Z0;function W0(e){var t=this.__data__,r=kn(t,e);return r<0?void 0:t[r][1]}var K0=W0;function J0(e){return kn(this.__data__,e)>-1}var X0=J0;function e2(e,t){var r=this.__data__,i=kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var t2=e2;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=q0;rt.prototype.delete=Q0;rt.prototype.get=K0;rt.prototype.has=X0;rt.prototype.set=t2;var xn=rt,r2=et(J,"Map"),Ar=r2;function i2(){this.size=0,this.__data__={hash:new qs,map:new(Ar||xn),string:new qs}}var n2=i2;function o2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var a2=o2;function l2(e,t){var r=e.__data__;return a2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var In=l2;function s2(e){var t=In(this,e).delete(e);return this.size-=t?1:0,t}var u2=s2;function c2(e){return In(this,e).get(e)}var d2=c2;function p2(e){return In(this,e).has(e)}var g2=p2;function f2(e,t){var r=In(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var y2=f2;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=n2;it.prototype.delete=u2;it.prototype.get=d2;it.prototype.has=g2;it.prototype.set=y2;var iu=it;function m2(){this.__data__=new xn,this.size=0}var b2=m2;function h2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var v2=h2;function w2(e){return this.__data__.get(e)}var k2=w2;function x2(e){return this.__data__.has(e)}var I2=x2,C2=200;function A2(e,t){var r=this.__data__;if(r instanceof xn){var i=r.__data__;if(!Ar||i.length<C2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new iu(i)}return r.set(e,t),this.size=r.size,this}var S2=A2;function Mr(e){var t=this.__data__=new xn(e);this.size=t.size}Mr.prototype.clear=b2;Mr.prototype.delete=v2;Mr.prototype.get=k2;Mr.prototype.has=I2;Mr.prototype.set=S2;var M2=Object.prototype,dJ=M2.propertyIsEnumerable,j2=et(J,"DataView"),qo=j2,$2=et(J,"Promise"),Go=$2,E2=et(J,"Set"),Yo=E2,Gs="[object Map]",_2="[object Object]",Ys="[object Promise]",Hs="[object Set]",Zs="[object WeakMap]",Qs="[object DataView]",L2=Ee(qo),T2=Ee(Ar),O2=Ee(Go),N2=Ee(Yo),D2=Ee(Bo),Je=Sr;(qo&&Je(new qo(new ArrayBuffer(1)))!=Qs||Ar&&Je(new Ar)!=Gs||Go&&Je(Go.resolve())!=Ys||Yo&&Je(new Yo)!=Hs||Bo&&Je(new Bo)!=Zs)&&(Je=function(e){var t=Sr(e),r=t==_2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case L2:return Qs;case T2:return Gs;case O2:return Ys;case N2:return Hs;case D2:return Zs}return t});var pJ=J.Uint8Array,P2="__lodash_hash_undefined__";function z2(e){return this.__data__.set(e,P2),this}var U2=z2;function R2(e){return this.__data__.has(e)}var F2=R2;function Ho(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new iu;++t<r;)this.add(e[t])}Ho.prototype.add=Ho.prototype.push=U2;Ho.prototype.has=F2;var Ws=Xe?Xe.prototype:void 0,gJ=Ws?Ws.valueOf:void 0,V2=Object.prototype,fJ=V2.hasOwnProperty,B2=Object.prototype,yJ=B2.hasOwnProperty,mJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function nu(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Cn=class ou{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ou),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var q2="ly.img.ai";function au(e){return`${q2}.${e}`}function lu(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
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]",by="[object Function]",hy="[object GeneratorFunction]",vy="[object Proxy]";function wy(e){if(!_s(e))return!1;var t=wr(e);return t==by||t==hy||t==my||t==vy}var ky=wy,xy=K["__core-js_shared__"],Lo=xy,ms=function(){var e=/[^.]+$/.exec(Lo&&Lo.keys&&Lo.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,Ly=Ey.toString,Ty=_y.hasOwnProperty,Oy=RegExp("^"+Ly.call(Ty).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 bs=Hy,Ls=Object.prototype,Zy=Ls.hasOwnProperty,Qy=Ls.propertyIsEnumerable,YK=bs(function(){return arguments}())?bs:function(e){return Uo(e)&&Zy.call(e,"callee")&&!Qy.call(e,"callee")};var Ts=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hs=Ts&&typeof module=="object"&&module&&!module.nodeType&&module,Wy=hs&&hs.exports===Ts,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]",bm="[object Uint8Array]",hm="[object Uint8ClampedArray]",vm="[object Uint16Array]",wm="[object Uint32Array]",L={};L[pm]=L[gm]=L[fm]=L[ym]=L[mm]=L[bm]=L[hm]=L[vm]=L[wm]=!0;L[Ky]=L[Jy]=L[cm]=L[Xy]=L[dm]=L[em]=L[tm]=L[rm]=L[im]=L[nm]=L[om]=L[am]=L[lm]=L[sm]=L[um]=!1;function km(e){return Uo(e)&&Gy(e.length)&&!!L[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,br=Os&&typeof module=="object"&&module&&!module.nodeType&&module,Am=br&&br.exports===Os,To=Am&&$s.process,Sm=function(){try{var e=br&&br.require&&br.require("util").types;return e||To&&To.binding&&To.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"),hr=_m;function Lm(){this.__data__=hr?hr(null):{},this.size=0}var Tm=Lm;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(hr){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 hr?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]=hr&&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=Tm;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 hn=Wm,Km=Array.prototype,Jm=Km.splice;function Xm(e){var t=this.__data__,r=hn(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 eb=Xm;function tb(e){var t=this.__data__,r=hn(t,e);return r<0?void 0:t[r][1]}var rb=tb;function ib(e){return hn(this.__data__,e)>-1}var nb=ib;function ob(e,t){var r=this.__data__,i=hn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ab=ob;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=eb;We.prototype.get=rb;We.prototype.has=nb;We.prototype.set=ab;var vn=We,lb=Ze(K,"Map"),vr=lb;function sb(){this.size=0,this.__data__={hash:new xs,map:new(vr||vn),string:new xs}}var ub=sb;function cb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var db=cb;function pb(e,t){var r=e.__data__;return db(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=pb;function gb(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var fb=gb;function yb(e){return wn(this,e).get(e)}var mb=yb;function bb(e){return wn(this,e).has(e)}var hb=bb;function vb(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wb=vb;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=ub;Ke.prototype.delete=fb;Ke.prototype.get=mb;Ke.prototype.has=hb;Ke.prototype.set=wb;var Ns=Ke;function kb(){this.__data__=new vn,this.size=0}var xb=kb;function Ib(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Cb=Ib;function Ab(e){return this.__data__.get(e)}var Sb=Ab;function Mb(e){return this.__data__.has(e)}var jb=Mb,$b=200;function Eb(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<$b-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ns(i)}return r.set(e,t),this.size=r.size,this}var _b=Eb;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=xb;kr.prototype.delete=Cb;kr.prototype.get=Sb;kr.prototype.has=jb;kr.prototype.set=_b;var Lb=Object.prototype,JK=Lb.propertyIsEnumerable;var Tb=Ze(K,"DataView"),No=Tb,Ob=Ze(K,"Promise"),Do=Ob,Nb=Ze(K,"Set"),Po=Nb,Is="[object Map]",Db="[object Object]",Cs="[object Promise]",As="[object Set]",Ss="[object WeakMap]",Ms="[object DataView]",Pb=$e(No),zb=$e(vr),Ub=$e(Do),Rb=$e(Po),Fb=$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==Db?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Pb:return Ms;case zb:return Is;case Ub:return Cs;case Rb:return As;case Fb:return Ss}return t});var XK=K.Uint8Array;var Vb="__lodash_hash_undefined__";function Bb(e){return this.__data__.set(e,Vb),this}var qb=Bb;function Gb(e){return this.__data__.has(e)}var Yb=Gb;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=qb;zo.prototype.has=Yb;var js=He?He.prototype:void 0,eJ=js?js.valueOf:void 0;var Hb=Object.prototype,tJ=Hb.hasOwnProperty;var Zb=Object.prototype,rJ=Zb.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 Qb(e){return e!==void 0}var Ds=Qb;var Wb=typeof global=="object"&&global&&global.Object===Object&&global,Ks=Wb,Kb=typeof self=="object"&&self&&self.Object===Object&&self,Jb=Ks||Kb||Function("return this")(),J=Jb,Xb=J.Symbol,Xe=Xb,Js=Object.prototype,eh=Js.hasOwnProperty,th=Js.toString,xr=Xe?Xe.toStringTag:void 0;function rh(e){var t=eh.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=th.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var ih=rh,nh=Object.prototype,oh=nh.toString;function ah(e){return oh.call(e)}var lh=ah,sh="[object Null]",uh="[object Undefined]",Ps=Xe?Xe.toStringTag:void 0;function ch(e){return e==null?e===void 0?uh:sh:Ps&&Ps in Object(e)?ih(e):lh(e)}var Sr=ch;function dh(e){return e!=null&&typeof e=="object"}var Zo=dh,lJ=Array.isArray;function ph(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xs=ph,gh="[object AsyncFunction]",fh="[object Function]",yh="[object GeneratorFunction]",mh="[object Proxy]";function bh(e){if(!Xs(e))return!1;var t=Sr(e);return t==fh||t==yh||t==gh||t==mh}var hh=bh,vh=J["__core-js_shared__"],Ro=vh,zs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wh(e){return!!zs&&zs in e}var kh=wh,xh=Function.prototype,Ih=xh.toString;function Ch(e){if(e!=null){try{return Ih.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Ch,Ah=/[\\^$.*+?()[\]{}|]/g,Sh=/^\[object .+?Constructor\]$/,Mh=Function.prototype,jh=Object.prototype,$h=Mh.toString,Eh=jh.hasOwnProperty,_h=RegExp("^"+$h.call(Eh).replace(Ah,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Lh(e){if(!Xs(e)||kh(e))return!1;var t=hh(e)?_h:Sh;return t.test(Ee(e))}var Th=Lh;function Oh(e,t){return e?.[t]}var Nh=Oh;function Dh(e,t){var r=Nh(e,t);return Th(r)?r:void 0}var et=Dh,Ph=et(J,"WeakMap"),Bo=Ph;function zh(e,t){return e===t||e!==e&&t!==t}var Uh=zh,Rh=9007199254740991;function Fh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Rh}var Vh=Fh,sJ=Object.prototype,Bh="[object Arguments]";function qh(e){return Zo(e)&&Sr(e)==Bh}var Us=qh,eu=Object.prototype,Gh=eu.hasOwnProperty,Yh=eu.propertyIsEnumerable,uJ=Us(function(){return arguments}())?Us:function(e){return Zo(e)&&Gh.call(e,"callee")&&!Yh.call(e,"callee")},tu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rs=tu&&typeof module=="object"&&module&&!module.nodeType&&module,Hh=Rs&&Rs.exports===tu,Fs=Hh?J.Buffer:void 0,cJ=Fs?Fs.isBuffer:void 0,Zh="[object Arguments]",Qh="[object Array]",Wh="[object Boolean]",Kh="[object Date]",Jh="[object Error]",Xh="[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]",b0="[object Uint32Array]",T={};T[u0]=T[c0]=T[d0]=T[p0]=T[g0]=T[f0]=T[y0]=T[m0]=T[b0]=!0;T[Zh]=T[Qh]=T[l0]=T[Wh]=T[s0]=T[Kh]=T[Jh]=T[Xh]=T[e0]=T[t0]=T[r0]=T[i0]=T[n0]=T[o0]=T[a0]=!1;function h0(e){return Zo(e)&&Vh(e.length)&&!!T[Sr(e)]}var v0=h0;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 L0=_0,T0="__lodash_hash_undefined__",O0=Object.prototype,N0=O0.hasOwnProperty;function D0(e){var t=this.__data__;if(Cr){var r=t[e];return r===T0?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=L0;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(Uh(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 b2=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=b2;var iu=it;function h2(){this.__data__=new xn,this.size=0}var v2=h2;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,L2=et(J,"Set"),Yo=L2,Gs="[object Map]",T2="[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==T2?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,bJ=Ws?Ws.valueOf:void 0,q2=Object.prototype,hJ=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!
2
2
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
3
3
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
4
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Vo="@imgly/plugin-ai-generation",vJ=`
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=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -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 Y2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var H2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Z2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},ec=Z2,Q2=typeof global=="object"&&global&&global.Object===Object&&global,tc=Q2,W2=typeof self=="object"&&self&&self.Object===Object&&self,K2=tc||W2||Function("return this")(),X=K2,J2=X.Symbol,lt=J2,rc=Object.prototype,X2=rc.hasOwnProperty,e4=rc.toString,jr=lt?lt.toStringTag:void 0;function t4(e){var t=X2.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=e4.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var r4=t4,i4=Object.prototype,n4=i4.toString;function o4(e){return n4.call(e)}var a4=o4,l4="[object Null]",s4="[object Undefined]",uu=lt?lt.toStringTag:void 0;function u4(e){return e==null?e===void 0?s4:l4:uu&&uu in Object(e)?r4(e):a4(e)}var Br=u4;function c4(e){return e!=null&&typeof e=="object"}var ma=c4,xJ=Array.isArray;function d4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ic=d4,p4="[object AsyncFunction]",g4="[object Function]",f4="[object GeneratorFunction]",y4="[object Proxy]";function m4(e){if(!ic(e))return!1;var t=Br(e);return t==g4||t==f4||t==p4||t==y4}var b4=m4,h4=X["__core-js_shared__"],Qo=h4,cu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v4(e){return!!cu&&cu in e}var w4=v4,k4=Function.prototype,x4=k4.toString;function I4(e){if(e!=null){try{return x4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=I4,C4=/[\\^$.*+?()[\]{}|]/g,A4=/^\[object .+?Constructor\]$/,S4=Function.prototype,M4=Object.prototype,j4=S4.toString,$4=M4.hasOwnProperty,E4=RegExp("^"+j4.call($4).replace(C4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _4(e){if(!ic(e)||w4(e))return!1;var t=b4(e)?E4:A4;return t.test(Le(e))}var L4=_4;function T4(e,t){return e?.[t]}var O4=T4;function N4(e,t){var r=O4(e,t);return L4(r)?r:void 0}var ut=N4,D4=ut(X,"WeakMap"),na=D4;function P4(e,t){return e===t||e!==e&&t!==t}var z4=P4,U4=9007199254740991;function R4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U4}var F4=R4,IJ=Object.prototype,V4="[object Arguments]";function B4(e){return ma(e)&&Br(e)==V4}var du=B4,nc=Object.prototype,q4=nc.hasOwnProperty,G4=nc.propertyIsEnumerable,CJ=du(function(){return arguments}())?du:function(e){return ma(e)&&q4.call(e,"callee")&&!G4.call(e,"callee")},oc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pu=oc&&typeof module=="object"&&module&&!module.nodeType&&module,Y4=pu&&pu.exports===oc,gu=Y4?X.Buffer:void 0,AJ=gu?gu.isBuffer:void 0,H4="[object Arguments]",Z4="[object Array]",Q4="[object Boolean]",W4="[object Date]",K4="[object Error]",J4="[object Function]",X4="[object Map]",e5="[object Number]",t5="[object Object]",r5="[object RegExp]",i5="[object Set]",n5="[object String]",o5="[object WeakMap]",a5="[object ArrayBuffer]",l5="[object DataView]",s5="[object Float32Array]",u5="[object Float64Array]",c5="[object Int8Array]",d5="[object Int16Array]",p5="[object Int32Array]",g5="[object Uint8Array]",f5="[object Uint8ClampedArray]",y5="[object Uint16Array]",m5="[object Uint32Array]",O={};O[s5]=O[u5]=O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=!0;O[H4]=O[Z4]=O[a5]=O[Q4]=O[l5]=O[W4]=O[K4]=O[J4]=O[X4]=O[e5]=O[t5]=O[r5]=O[i5]=O[n5]=O[o5]=!1;function b5(e){return ma(e)&&F4(e.length)&&!!O[Br(e)]}var h5=b5;function v5(e){return function(t){return e(t)}}var w5=v5,ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=ac&&typeof module=="object"&&module&&!module.nodeType&&module,k5=Dr&&Dr.exports===ac,Wo=k5&&tc.process,x5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),fu=x5,yu=fu&&fu.isTypedArray,SJ=yu?w5(yu):h5,I5=Object.prototype,MJ=I5.hasOwnProperty;function C5(e,t){return function(r){return e(t(r))}}var A5=C5,jJ=A5(Object.keys,Object),S5=Object.prototype,$J=S5.hasOwnProperty,M5=ut(Object,"create"),zr=M5;function j5(){this.__data__=zr?zr(null):{},this.size=0}var $5=j5;function E5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _5=E5,L5="__lodash_hash_undefined__",T5=Object.prototype,O5=T5.hasOwnProperty;function N5(e){var t=this.__data__;if(zr){var r=t[e];return r===L5?void 0:r}return O5.call(t,e)?t[e]:void 0}var D5=N5,P5=Object.prototype,z5=P5.hasOwnProperty;function U5(e){var t=this.__data__;return zr?t[e]!==void 0:z5.call(t,e)}var R5=U5,F5="__lodash_hash_undefined__";function V5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?F5:t,this}var B5=V5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=$5;ct.prototype.delete=_5;ct.prototype.get=D5;ct.prototype.has=R5;ct.prototype.set=B5;var mu=ct;function q5(){this.__data__=[],this.size=0}var G5=q5;function Y5(e,t){for(var r=e.length;r--;)if(z4(e[r][0],t))return r;return-1}var Tn=Y5,H5=Array.prototype,Z5=H5.splice;function Q5(e){var t=this.__data__,r=Tn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z5.call(t,r,1),--this.size,!0}var W5=Q5;function K5(e){var t=this.__data__,r=Tn(t,e);return r<0?void 0:t[r][1]}var J5=K5;function X5(e){return Tn(this.__data__,e)>-1}var e9=X5;function t9(e,t){var r=this.__data__,i=Tn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r9=t9;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=G5;dt.prototype.delete=W5;dt.prototype.get=J5;dt.prototype.has=e9;dt.prototype.set=r9;var On=dt,i9=ut(X,"Map"),Ur=i9;function n9(){this.size=0,this.__data__={hash:new mu,map:new(Ur||On),string:new mu}}var o9=n9;function a9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l9=a9;function s9(e,t){var r=e.__data__;return l9(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=s9;function u9(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var c9=u9;function d9(e){return Nn(this,e).get(e)}var p9=d9;function g9(e){return Nn(this,e).has(e)}var f9=g9;function y9(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m9=y9;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=o9;pt.prototype.delete=c9;pt.prototype.get=p9;pt.prototype.has=f9;pt.prototype.set=m9;var lc=pt;function b9(){this.__data__=new On,this.size=0}var h9=b9;function v9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w9=v9;function k9(e){return this.__data__.get(e)}var x9=k9;function I9(e){return this.__data__.has(e)}var C9=I9,A9=200;function S9(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<A9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new lc(i)}return r.set(e,t),this.size=r.size,this}var M9=S9;function qr(e){var t=this.__data__=new On(e);this.size=t.size}qr.prototype.clear=h9;qr.prototype.delete=w9;qr.prototype.get=x9;qr.prototype.has=C9;qr.prototype.set=M9;var j9=Object.prototype,EJ=j9.propertyIsEnumerable,$9=ut(X,"DataView"),oa=$9,E9=ut(X,"Promise"),aa=E9,_9=ut(X,"Set"),la=_9,bu="[object Map]",L9="[object Object]",hu="[object Promise]",vu="[object Set]",wu="[object WeakMap]",ku="[object DataView]",T9=Le(oa),O9=Le(Ur),N9=Le(aa),D9=Le(la),P9=Le(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=ku||Ur&&nt(new Ur)!=bu||aa&&nt(aa.resolve())!=hu||la&&nt(new la)!=vu||na&&nt(new na)!=wu)&&(nt=function(e){var t=Br(e),r=t==L9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case T9:return ku;case O9:return bu;case N9:return hu;case D9:return vu;case P9:return wu}return t});var _J=X.Uint8Array,z9="__lodash_hash_undefined__";function U9(e){return this.__data__.set(e,z9),this}var R9=U9;function F9(e){return this.__data__.has(e)}var V9=F9;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new lc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=R9;sa.prototype.has=V9;var xu=lt?lt.prototype:void 0,LJ=xu?xu.valueOf:void 0,B9=Object.prototype,TJ=B9.hasOwnProperty,q9=Object.prototype,OJ=q9.hasOwnProperty,NJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),DJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),PJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function sc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ua(e,t){let r=await sc(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function G9(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return sc(i,t)}function Y9(e){return e!==void 0}var Dn=Y9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Yr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ba=class uc{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new uc),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},cc=class dc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new dc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function H9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Z9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Q9=Z9,Ko="ly.img.ai.temp";async function W9(e,t){return e.engine.asset.findAllSources().includes(Ko)||e.engine.asset.addLocalSource(Ko),e.engine.asset.apply(Ko,t)}function K9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function pc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function J9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function X9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ha(e){return e instanceof Error&&e.name==="AbortError"}function ev(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function tv(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
65
+ `;var su={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var 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="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var 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 g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},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]",b4="[object Proxy]";function h4(e){if(!nc(e))return!1;var t=Br(e);return t==y4||t==m4||t==f4||t==b4}var v4=h4,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 Le=A4,S4=/[\\^$.*+?()[\]{}|]/g,M4=/^\[object .+?Constructor\]$/,j4=Function.prototype,$4=Object.prototype,E4=j4.toString,_4=$4.hasOwnProperty,L4=RegExp("^"+E4.call(_4).replace(S4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function T4(e){if(!nc(e)||x4(e))return!1;var t=v4(e)?L4:M4;return t.test(Le(e))}var O4=T4;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]",b5="[object Uint16Array]",h5="[object Uint32Array]",O={};O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=O[b5]=O[h5]=!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,LJ=M5(Object.keys,Object),j5=Object.prototype,TJ=j5.hasOwnProperty,$5=ut(Object,"create"),zr=$5;function E5(){this.__data__=zr?zr(null):{},this.size=0}var _5=E5;function L5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var T5=L5,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=T5;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 Tn=Z5,Q5=Array.prototype,W5=Q5.splice;function K5(e){var t=this.__data__,r=Tn(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=Tn(t,e);return r<0?void 0:t[r][1]}var e9=X5;function t9(e){return Tn(this.__data__,e)>-1}var r9=t9;function i9(e,t){var r=this.__data__,i=Tn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var 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 b9(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h9=b9;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=h9;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,L9=ut(X,"Promise"),aa=L9,T9=ut(X,"Set"),la=T9,bu="[object Map]",O9="[object Object]",hu="[object Promise]",vu="[object Set]",wu="[object WeakMap]",ku="[object DataView]",N9=Le(oa),D9=Le(Ur),P9=Le(aa),z9=Le(la),U9=Le(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=ku||Ur&&nt(new Ur)!=bu||aa&&nt(aa.resolve())!=hu||la&&nt(new la)!=vu||na&&nt(new na)!=wu)&&(nt=function(e){var t=Br(e),r=t==O9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case N9:return ku;case D9:return bu;case P9:return hu;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 ba=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 g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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 ev(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 tv(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ha(e){return e instanceof Error&&e.name==="AbortError"}function rv(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function iv(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 rv(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 iv=rv;function nv(){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=nv;function ov(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),av(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:K9(e)}))}function av(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=ov,lv="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",va=lv;function sv(e,t,r){switch(t){case"image":return uv(e,r[t]);case"video":return cv(e,r[t]);case"sticker":return dv(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function uv(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 cv(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 dv(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 pv=sv;async function gv(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 fv(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 yv(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 mv(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 bv(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function fv(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 yv(e,t,r){let i=t.width,n=t.height,a=await J9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function mv(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 bv(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var gc=gv;function hv(e){switch(e.userFlow){case"placeholder":return wv(e);case"generation-only":return vv(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function vv(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=pc(),c=await gc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function wv(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=pc(),c=pv(s,a,o);if(i=await W9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await gc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ha(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var kv=hv;function wa(e){return`${e}.generating`}function xv(e){return`${e}.abort`}function Iv(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(xv(d),()=>{}),y=c.global(wa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await kv({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Iu(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Cv(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ha(b))return;Iu(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Cv(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var fc=Iv;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function Av({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(wa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return fc(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Sv=Av;function yc(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=yc(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function Mv(e){return Tr(e,{...e})}function jv(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 $v(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return Ev(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function Ev(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=_v(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function _v(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var mc=$v;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function bc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function hc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?Lv(e,c,r,i,n,a,o,s):vc(e,c,r,i,n,a,o,s);case"boolean":return wc(e,c,r,i,n,a,o,s);case"number":case"integer":return kc(e,c,r,i,n,a,o,s);case"object":return ca(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Tv(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ca(e,t,r,i,n,a,o,s){let c=mc(t.schema??{},i).reduce((l,u)=>{let d=hc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function vc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Yr(d,m,f,t.schema.default,""),k=l(g,v),w=Ov(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function Lv(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),{labels:y,icons:f}=bc(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),v=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function wc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function Tv(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=bc(t.schema),x=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:vc,boolean:wc,integer:kc,object:ca},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:me(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ca(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Yr(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function Ov(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Nv=hc,Dv={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Au(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Cu(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Cu(p);n[a(l.id,p)]=y}})}});let c={...Dv,...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=Mv(e),n=yc(i,t.inputReference);if(!jv(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=mc(a,t);return{inputSchema:a,properties:o}}function ju(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=Nv(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});fc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function Pv(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Su(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=Mu(c,s,a.debug);return Au(y,i,r,i.kind),ju(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Su(s)).then(p=>{let{inputSchema:y,properties:f}=Mu(p,s,a.debug);Au(f,i,r,i.kind),u=ju(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var zv=Pv;async function Uv(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Sv(e,t);case"schema":return zv(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Rv=Uv;function Fv(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new Y2(o,r)),o}return i}var Vv=Fv;function Bv(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 qv=Bv,Jo="@imgly/plugin-ai-generation",Gv=`
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 nv(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 ov=nv;function av(){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=av;function lv(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),sv(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:X9(e)}))}function sv(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=lv,uv="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",va=uv;function cv(e,t,r){switch(t){case"image":return dv(e,r[t]);case"video":return pv(e,r[t]);case"sticker":return gv(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dv(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 pv(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 gv(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 fv=cv;async function yv(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 mv(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 bv(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 hv(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 vv(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function mv(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 bv(e,t,r){let i=t.width,n=t.height,a=await ev(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 hv(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 vv(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=yv;function wv(e){switch(e.userFlow){case"placeholder":return xv(e);case"generation-only":return kv(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function kv(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 xv(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=fv(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),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await 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)&&(ha(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Iv=wv;function wa(e){return`${e}.generating`}function Cv(e){return`${e}.abort`}function Av(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(Cv(d),()=>{}),y=c.global(wa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await Iv({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Iu(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Sv(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ha(b))return;Iu(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Sv(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=Av;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function Mv({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(wa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return yc(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var jv=Mv;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 Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=mc(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function $v(e){return Tr(e,{...e})}function Ev(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 _v(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return Lv(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function Lv(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=Tv(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Tv(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=_v;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 hc(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?Ov(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 Nv(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=bc(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,g=`${r.id}.${d}`,p=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Yr(d,m,f,t.schema.default,""),k=l(g,v),w=Dv(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function Ov(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),{labels:y,icons:f}=hc(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),v=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function xc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function Nv(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=hc(t.schema),x=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:wc,boolean:kc,integer:xc,object:ca},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:me(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ca(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Yr(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function Dv(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Pv=vc,zv={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Au(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Cu(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Cu(p);n[a(l.id,p)]=y}})}});let c={...zv,...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=$v(e),n=mc(i,t.inputReference);if(!Ev(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 ju(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=Pv(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});yc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function Uv(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Su(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=Mu(c,s,a.debug);return Au(y,i,r,i.kind),ju(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Su(s)).then(p=>{let{inputSchema:y,properties:f}=Mu(p,s,a.debug);Au(f,i,r,i.kind),u=ju(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var Rv=Uv;async function Fv(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return jv(e,t);case"schema":return Rv(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Vv=Fv;function Bv(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 qv=Bv;function Gv(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 Yv=Gv,Jo="@imgly/plugin-ai-generation",Hv=`
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
- `,Yv=Gv;function Hv(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await xc(2e3),await Zv(t,e,r)):i(t,r)}async function Zv(e,t,r){switch(t.kind){case"image":return Qv(e,t,r);case"video":return Wv(e,t,r);case"text":return Kv(e,t,r);case"audio":return Xv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Qv(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await G9(s,r),l=await ua(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
- `,"+")}`}}async function Wv(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Kv(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 Jv(a,r.abortSignal)}async function*Jv(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await xc(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function Xv(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:e3(220,i),duration:i,thumbnailUrl:void 0}}function e3(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return t3(i,44100)}function t3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function xc(e){return new Promise(t=>{setTimeout(t,e)})}var r3=Hv,Ic="USER_CANCEL";function i3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=H9([...e.provider.output.middleware??[],...r?.middlewares??[],Q9({enable:r?.debug}),r3({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:X9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ha(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Ic?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var n3=i3;async function o3(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=ba.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=Vv(a),s=qv(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=n3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Rv(a,c);ev(r.cesdk,"@imgly/plugin-ai-generation",Yv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return cc.get().register(u),u}var Xo=o3;function a3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new H2(n,r,i);return r.engine.asset.addSource(a),a.id}var l3=a3;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 s3(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=c3({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=u3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=l3({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 u3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&$u(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&$u(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function c3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Rr(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function $u(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(wa(r.id),!1).value)}var d3=s3,Pn="ly.img.ai.editMode",Cc="ly.img.ai.metadata";async function p3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new ec(n,Cc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var g3=p3;function f3(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var y3=f3;function m3(e){return`ly.img.ai.${e}.canvasMenu`}var b3=m3;function h3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=b3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var v3=h3;function w3(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 k3(e,t);case"image":return x3(e,t);case"video":return I3(e,t);case"audio":return C3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function k3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function x3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ua(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await ua(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function I3(e,t){throw new Error("Function not implemented.")}async function C3(e,t){throw new Error("Function not implemented.")}var A3=w3;function S3(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 M3=S3,j3=class Ac{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ac),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},_e=j3;function $3(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Dn)),c=new ec(e.cesdk.engine,Cc),l=e.lock??!0?M3({engine:e.cesdk.engine,editModeToLockTo:Pn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(Ic),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await A3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Eu=$3;function E3(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=v3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=_3(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=cc.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(Dn);return S=y3(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Rr(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Eu({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Eu({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function _3(e){return e.map(t=>t==="ly.img.separator"?t:ba.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var L3=E3;async function T3(e){let t=await L3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await g3({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 O3=T3,N3="@imgly/plugin-ai-image-generation",D3=`
129
+ `,Zv=Hv;function Qv(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 Wv(t,e,r)):i(t,r)}async function Wv(e,t,r){switch(t.kind){case"image":return Kv(e,t,r);case"video":return Jv(e,t,r);case"text":return Xv(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 Kv(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 Jv(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Xv(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 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 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 v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Ic(e){return new Promise(t=>{setTimeout(t,e)})}var n3=Qv,Cc="USER_CANCEL";function o3(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}),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,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:tv(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ha(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Cc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(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,g=ba.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=qv(a),s=Yv(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=a3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Vv(a,c);rv(r.cesdk,"@imgly/plugin-ai-generation",Zv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return dc.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"}});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}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&$u(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&$u(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function 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:g,panel:p})=>({id:g.id,label:Rr(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function $u(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(wa(r.id),!1).value)}var g3=c3,Pn="ly.img.ai.editMode",Ac="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 tc(n,Ac),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var 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 b3=m3;function h3(e){return`ly.img.ai.${e}.canvasMenu`}var v3=h3;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 Eu(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)?Eu(o.children):n??[]}return Eu(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 C3(e,t);case"image":return A3(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 C3(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 A3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ua(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await ua(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function 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 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=_3;function L3(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?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:g}=await j3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var _u=L3;function T3(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(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=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=b3(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Rr(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:_u({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:_u({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function O3(e){return e.map(t=>t==="ly.img.separator"?t:ba.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var N3=T3;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,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
- `,P3=D3,z3=typeof global=="object"&&global&&global.Object===Object&&global,Sc=z3,U3=typeof self=="object"&&self&&self.Object===Object&&self,R3=Sc||U3||Function("return this")(),ee=R3,F3=ee.Symbol,st=F3,Mc=Object.prototype,V3=Mc.hasOwnProperty,B3=Mc.toString,Er=st?st.toStringTag:void 0;function q3(e){var t=V3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=B3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var G3=q3,Y3=Object.prototype,H3=Y3.toString;function Z3(e){return H3.call(e)}var Q3=Z3,W3="[object Null]",K3="[object Undefined]",_u=st?st.toStringTag:void 0;function J3(e){return e==null?e===void 0?K3:W3:_u&&_u in Object(e)?G3(e):Q3(e)}var Zr=J3;function X3(e){return e!=null&&typeof e=="object"}var ka=X3,zJ=Array.isArray;function e7(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var jc=e7,t7="[object AsyncFunction]",r7="[object Function]",i7="[object GeneratorFunction]",n7="[object Proxy]";function o7(e){if(!jc(e))return!1;var t=Zr(e);return t==r7||t==i7||t==t7||t==n7}var a7=o7,l7=ee["__core-js_shared__"],ea=l7,Lu=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function s7(e){return!!Lu&&Lu in e}var u7=s7,c7=Function.prototype,d7=c7.toString;function p7(e){if(e!=null){try{return d7.call(e)}catch{}try{return e+""}catch{}}return""}var Te=p7,g7=/[\\^$.*+?()[\]{}|]/g,f7=/^\[object .+?Constructor\]$/,y7=Function.prototype,m7=Object.prototype,b7=y7.toString,h7=m7.hasOwnProperty,v7=RegExp("^"+b7.call(h7).replace(g7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function w7(e){if(!jc(e)||u7(e))return!1;var t=a7(e)?v7:f7;return t.test(Te(e))}var k7=w7;function x7(e,t){return e?.[t]}var I7=x7;function C7(e,t){var r=I7(e,t);return k7(r)?r:void 0}var gt=C7,A7=gt(ee,"WeakMap"),da=A7;function S7(e,t){return e===t||e!==e&&t!==t}var M7=S7,j7=9007199254740991;function $7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=j7}var E7=$7,UJ=Object.prototype,_7="[object Arguments]";function L7(e){return ka(e)&&Zr(e)==_7}var Tu=L7,$c=Object.prototype,T7=$c.hasOwnProperty,O7=$c.propertyIsEnumerable,RJ=Tu(function(){return arguments}())?Tu:function(e){return ka(e)&&T7.call(e,"callee")&&!O7.call(e,"callee")},Ec=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ou=Ec&&typeof module=="object"&&module&&!module.nodeType&&module,N7=Ou&&Ou.exports===Ec,Nu=N7?ee.Buffer:void 0,FJ=Nu?Nu.isBuffer:void 0,D7="[object Arguments]",P7="[object Array]",z7="[object Boolean]",U7="[object Date]",R7="[object Error]",F7="[object Function]",V7="[object Map]",B7="[object Number]",q7="[object Object]",G7="[object RegExp]",Y7="[object Set]",H7="[object String]",Z7="[object WeakMap]",Q7="[object ArrayBuffer]",W7="[object DataView]",K7="[object Float32Array]",J7="[object Float64Array]",X7="[object Int8Array]",e8="[object Int16Array]",t8="[object Int32Array]",r8="[object Uint8Array]",i8="[object Uint8ClampedArray]",n8="[object Uint16Array]",o8="[object Uint32Array]",N={};N[K7]=N[J7]=N[X7]=N[e8]=N[t8]=N[r8]=N[i8]=N[n8]=N[o8]=!0;N[D7]=N[P7]=N[Q7]=N[z7]=N[W7]=N[U7]=N[R7]=N[F7]=N[V7]=N[B7]=N[q7]=N[G7]=N[Y7]=N[H7]=N[Z7]=!1;function a8(e){return ka(e)&&E7(e.length)&&!!N[Zr(e)]}var l8=a8;function s8(e){return function(t){return e(t)}}var u8=s8,_c=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=_c&&typeof module=="object"&&module&&!module.nodeType&&module,c8=Pr&&Pr.exports===_c,ta=c8&&Sc.process,d8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ta&&ta.binding&&ta.binding("util")}catch{}}(),Du=d8,Pu=Du&&Du.isTypedArray,VJ=Pu?u8(Pu):l8,p8=Object.prototype,BJ=p8.hasOwnProperty;function g8(e,t){return function(r){return e(t(r))}}var f8=g8,qJ=f8(Object.keys,Object),y8=Object.prototype,GJ=y8.hasOwnProperty,m8=gt(Object,"create"),Fr=m8;function b8(){this.__data__=Fr?Fr(null):{},this.size=0}var h8=b8;function v8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var w8=v8,k8="__lodash_hash_undefined__",x8=Object.prototype,I8=x8.hasOwnProperty;function C8(e){var t=this.__data__;if(Fr){var r=t[e];return r===k8?void 0:r}return I8.call(t,e)?t[e]:void 0}var A8=C8,S8=Object.prototype,M8=S8.hasOwnProperty;function j8(e){var t=this.__data__;return Fr?t[e]!==void 0:M8.call(t,e)}var $8=j8,E8="__lodash_hash_undefined__";function _8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?E8:t,this}var L8=_8;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=h8;ft.prototype.delete=w8;ft.prototype.get=A8;ft.prototype.has=$8;ft.prototype.set=L8;var zu=ft;function T8(){this.__data__=[],this.size=0}var O8=T8;function N8(e,t){for(var r=e.length;r--;)if(M7(e[r][0],t))return r;return-1}var zn=N8,D8=Array.prototype,P8=D8.splice;function z8(e){var t=this.__data__,r=zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():P8.call(t,r,1),--this.size,!0}var U8=z8;function R8(e){var t=this.__data__,r=zn(t,e);return r<0?void 0:t[r][1]}var F8=R8;function V8(e){return zn(this.__data__,e)>-1}var B8=V8;function q8(e,t){var r=this.__data__,i=zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var G8=q8;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=O8;yt.prototype.delete=U8;yt.prototype.get=F8;yt.prototype.has=B8;yt.prototype.set=G8;var Un=yt,Y8=gt(ee,"Map"),Vr=Y8;function H8(){this.size=0,this.__data__={hash:new zu,map:new(Vr||Un),string:new zu}}var Z8=H8;function Q8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var W8=Q8;function K8(e,t){var r=e.__data__;return W8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rn=K8;function J8(e){var t=Rn(this,e).delete(e);return this.size-=t?1:0,t}var X8=J8;function e6(e){return Rn(this,e).get(e)}var t6=e6;function r6(e){return Rn(this,e).has(e)}var i6=r6;function n6(e,t){var r=Rn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var o6=n6;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=Z8;mt.prototype.delete=X8;mt.prototype.get=t6;mt.prototype.has=i6;mt.prototype.set=o6;var Lc=mt;function a6(){this.__data__=new Un,this.size=0}var l6=a6;function s6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var u6=s6;function c6(e){return this.__data__.get(e)}var d6=c6;function p6(e){return this.__data__.has(e)}var g6=p6,f6=200;function y6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<f6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Lc(i)}return r.set(e,t),this.size=r.size,this}var m6=y6;function Qr(e){var t=this.__data__=new Un(e);this.size=t.size}Qr.prototype.clear=l6;Qr.prototype.delete=u6;Qr.prototype.get=d6;Qr.prototype.has=g6;Qr.prototype.set=m6;var b6=Object.prototype,YJ=b6.propertyIsEnumerable,h6=gt(ee,"DataView"),pa=h6,v6=gt(ee,"Promise"),ga=v6,w6=gt(ee,"Set"),fa=w6,Uu="[object Map]",k6="[object Object]",Ru="[object Promise]",Fu="[object Set]",Vu="[object WeakMap]",Bu="[object DataView]",x6=Te(pa),I6=Te(Vr),C6=Te(ga),A6=Te(fa),S6=Te(da),ot=Zr;(pa&&ot(new pa(new ArrayBuffer(1)))!=Bu||Vr&&ot(new Vr)!=Uu||ga&&ot(ga.resolve())!=Ru||fa&&ot(new fa)!=Fu||da&&ot(new da)!=Vu)&&(ot=function(e){var t=Zr(e),r=t==k6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case x6:return Bu;case I6:return Uu;case C6:return Ru;case A6:return Fu;case S6:return Vu}return t});var HJ=ee.Uint8Array,M6="__lodash_hash_undefined__";function j6(e){return this.__data__.set(e,M6),this}var $6=j6;function E6(e){return this.__data__.has(e)}var _6=E6;function ya(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Lc;++t<r;)this.add(e[t])}ya.prototype.add=ya.prototype.push=$6;ya.prototype.has=_6;var qu=st?st.prototype:void 0,ZJ=qu?qu.valueOf:void 0,L6=Object.prototype,QJ=L6.hasOwnProperty,T6=Object.prototype,WJ=T6.hasOwnProperty,KJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function O6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return O6(i,t)}function N6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Gu=N6;function D6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function P6(e){return typeof e?.translate=="function"}function z6(e,t,r){return e&&D6(e)&&P6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",U6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Fn="editImage",ue=`ly.img.${Fn}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var R6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${An}`]:"Edit Image...",[`${An}.description`]:"Change image based on description",[`${An}.prompt`]:"Edit Image...",[`${Yu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${An}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Yu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),F6=R6,Vn="swapBackground",ce=`ly.img.${Vn}`,Hu=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var V6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${Mn}`]:"Swap Background...",[`${Mn}.description`]:"Change the background of the image",[`${Mn}.prompt`]:"Swap Background...",[`${Hu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Mn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Hu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),B6=V6,Bn="styleTransfer",_r=`ly.img.${Bn}`,q6=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Zu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var G6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],Y6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${q6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Zu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{G6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Zu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),H6=Y6,qn="artistTransfer",Lr=`ly.img.${qn}`,Z6=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Qu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Q6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],W6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Lr,type:"quick",kind:"image",label:`${Z6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Qu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{Q6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),K6=W6,Gn="createVariant",de=`ly.img.${Gn}`,Wu=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,$n=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var J6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${$n}`]:"Create Variant...",[`${$n}.description`]:"Create a variation of the image",[`${$n}.prompt`]:"Create Variant...",[`${Wu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${$n}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Wu}`,enable:t=>{if(!Hr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getType(g),y=o.block.duplicate(g);p==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),o.block.setSelected(g,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&p!=="//ly.img.ubq/page"){let v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),X6=J6,Yn="combineImages",pe=`ly.img.${Yn}`,Ku=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ra=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ew=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ra}.apply`]:"Combine",[`${ra}`]:"Combine Images...",[`${ra}.prompt`]:"Image Combination Instructions",[`${Ku}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ku}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:_n(l,"prompt"),placeholder:_n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:_n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let g=o.block.findAllSelected(),p=o.block.duplicate(g[0]);g.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(p,!0);let y=o.block.getParent(p);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(p,o.block.getPositionX(p)+k),o.block.setPositionY(p,o.block.getPositionY(p)+k);let w=await Promise.all(g.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:g},{blockIds:[p]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),tw=ew,Hn="remixPage",Ju=`ly.img.${Hn}`,rw=`ly.img.plugin-ai-image-generation-web.quickAction.${Hn}`,iw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Hn}`;function nw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Hn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ow=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${iw}`]:"Turn Page into Image"}}),{id:Ju,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${rw}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Ju}.button`,{label:nw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),g=i.block.getPositionX(o),p=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,g),i.block.setPositionY(f,p);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),aw=ow,Zn="remixPageWithPrompt",ge=`ly.img.${Zn}`,Xu=`ly.img.plugin-ai-image-generation-web.quickAction.${Zn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Zn}`;function Ln(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ia}`]:"Remix Page...",[`${ia}.prompt`]:"Remix Page Prompt",[`${Xu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ia}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Xu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:Ln(l,"prompt"),placeholder:Ln(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Ln(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await o.block.export(g),y=URL.createObjectURL(p),f=o.block.duplicate(g);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(g,!1);let m=o.block.getFrameWidth(g),v=o.block.getFrameHeight(g),k=o.block.getPositionX(g),w=o.block.getPositionY(g),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Ln(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),sw=lw,fe="ly.img.ai.image-generation";function uw(e){return{async initialize({cesdk:t}){if(t==null)return;tv(t,Nr,"1.74.0-nightly.20260421"),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(N3,P3),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:z6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});cw(e),r.register(F6({cesdk:t})),r.register(B6({cesdk:t})),r.register(H6({cesdk:t})),r.register(K6({cesdk:t})),r.register(X6({cesdk:t})),r.register(tw({cesdk:t})),r.register(aw({cesdk:t})),r.register(sw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Gu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Gu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await d3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await O3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:U6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Pn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),iv({cesdk:t,panelId:fe})):n()}}}function cw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var dw=uw,pw=e=>({name:Nr,version:"1.74.0-nightly.20260421",...dw(e)}),Tc=pw;var gw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var fw=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},yw=typeof global=="object"&&global&&global.Object===Object&&global,wd=yw,mw=typeof self=="object"&&self&&self.Object===Object&&self,bw=wd||mw||Function("return this")(),te=bw,hw=te.Symbol,kt=hw,kd=Object.prototype,vw=kd.hasOwnProperty,ww=kd.toString,Wr=kt?kt.toStringTag:void 0;function kw(e){var t=vw.call(e,Wr),r=e[Wr];try{e[Wr]=void 0;var i=!0}catch{}var n=ww.call(e);return i&&(t?e[Wr]=r:delete e[Wr]),n}var xw=kw,Iw=Object.prototype,Cw=Iw.toString;function Aw(e){return Cw.call(e)}var Sw=Aw,Mw="[object Null]",jw="[object Undefined]",Oc=kt?kt.toStringTag:void 0;function $w(e){return e==null?e===void 0?jw:Mw:Oc&&Oc in Object(e)?xw(e):Sw(e)}var si=$w;function Ew(e){return e!=null&&typeof e=="object"}var Fa=Ew,nX=Array.isArray;function _w(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xd=_w,Lw="[object AsyncFunction]",Tw="[object Function]",Ow="[object GeneratorFunction]",Nw="[object Proxy]";function Dw(e){if(!xd(e))return!1;var t=si(e);return t==Tw||t==Ow||t==Lw||t==Nw}var Pw=Dw,zw=te["__core-js_shared__"],xa=zw,Nc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Uw(e){return!!Nc&&Nc in e}var Rw=Uw,Fw=Function.prototype,Vw=Fw.toString;function Bw(e){if(e!=null){try{return Vw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=Bw,qw=/[\\^$.*+?()[\]{}|]/g,Gw=/^\[object .+?Constructor\]$/,Yw=Function.prototype,Hw=Object.prototype,Zw=Yw.toString,Qw=Hw.hasOwnProperty,Ww=RegExp("^"+Zw.call(Qw).replace(qw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Kw(e){if(!xd(e)||Rw(e))return!1;var t=Pw(e)?Ww:Gw;return t.test(Oe(e))}var Jw=Kw;function Xw(e,t){return e?.[t]}var ek=Xw;function tk(e,t){var r=ek(e,t);return Jw(r)?r:void 0}var It=tk,rk=It(te,"WeakMap"),$a=rk;function ik(e,t){return e===t||e!==e&&t!==t}var nk=ik,ok=9007199254740991;function ak(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ok}var lk=ak,oX=Object.prototype,sk="[object Arguments]";function uk(e){return Fa(e)&&si(e)==sk}var Dc=uk,Id=Object.prototype,ck=Id.hasOwnProperty,dk=Id.propertyIsEnumerable,aX=Dc(function(){return arguments}())?Dc:function(e){return Fa(e)&&ck.call(e,"callee")&&!dk.call(e,"callee")},Cd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pc=Cd&&typeof module=="object"&&module&&!module.nodeType&&module,pk=Pc&&Pc.exports===Cd,zc=pk?te.Buffer:void 0,lX=zc?zc.isBuffer:void 0,gk="[object Arguments]",fk="[object Array]",yk="[object Boolean]",mk="[object Date]",bk="[object Error]",hk="[object Function]",vk="[object Map]",wk="[object Number]",kk="[object Object]",xk="[object RegExp]",Ik="[object Set]",Ck="[object String]",Ak="[object WeakMap]",Sk="[object ArrayBuffer]",Mk="[object DataView]",jk="[object Float32Array]",$k="[object Float64Array]",Ek="[object Int8Array]",_k="[object Int16Array]",Lk="[object Int32Array]",Tk="[object Uint8Array]",Ok="[object Uint8ClampedArray]",Nk="[object Uint16Array]",Dk="[object Uint32Array]",D={};D[jk]=D[$k]=D[Ek]=D[_k]=D[Lk]=D[Tk]=D[Ok]=D[Nk]=D[Dk]=!0;D[gk]=D[fk]=D[Sk]=D[yk]=D[Mk]=D[mk]=D[bk]=D[hk]=D[vk]=D[wk]=D[kk]=D[xk]=D[Ik]=D[Ck]=D[Ak]=!1;function Pk(e){return Fa(e)&&lk(e.length)&&!!D[si(e)]}var zk=Pk;function Uk(e){return function(t){return e(t)}}var Rk=Uk,Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,Fk=ri&&ri.exports===Ad,Ia=Fk&&wd.process,Vk=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Uc=Vk,Rc=Uc&&Uc.isTypedArray,sX=Rc?Rk(Rc):zk,Bk=Object.prototype,uX=Bk.hasOwnProperty;function qk(e,t){return function(r){return e(t(r))}}var Gk=qk,cX=Gk(Object.keys,Object),Yk=Object.prototype,dX=Yk.hasOwnProperty,Hk=It(Object,"create"),ni=Hk;function Zk(){this.__data__=ni?ni(null):{},this.size=0}var Qk=Zk;function Wk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Kk=Wk,Jk="__lodash_hash_undefined__",Xk=Object.prototype,ex=Xk.hasOwnProperty;function tx(e){var t=this.__data__;if(ni){var r=t[e];return r===Jk?void 0:r}return ex.call(t,e)?t[e]:void 0}var rx=tx,ix=Object.prototype,nx=ix.hasOwnProperty;function ox(e){var t=this.__data__;return ni?t[e]!==void 0:nx.call(t,e)}var ax=ox,lx="__lodash_hash_undefined__";function sx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?lx:t,this}var ux=sx;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=Qk;Ct.prototype.delete=Kk;Ct.prototype.get=rx;Ct.prototype.has=ax;Ct.prototype.set=ux;var Fc=Ct;function cx(){this.__data__=[],this.size=0}var dx=cx;function px(e,t){for(var r=e.length;r--;)if(nk(e[r][0],t))return r;return-1}var Wn=px,gx=Array.prototype,fx=gx.splice;function yx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():fx.call(t,r,1),--this.size,!0}var mx=yx;function bx(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var hx=bx;function vx(e){return Wn(this.__data__,e)>-1}var wx=vx;function kx(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var xx=kx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=dx;At.prototype.delete=mx;At.prototype.get=hx;At.prototype.has=wx;At.prototype.set=xx;var Kn=At,Ix=It(te,"Map"),oi=Ix;function Cx(){this.size=0,this.__data__={hash:new Fc,map:new(oi||Kn),string:new Fc}}var Ax=Cx;function Sx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Mx=Sx;function jx(e,t){var r=e.__data__;return Mx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=jx;function $x(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Ex=$x;function _x(e){return Jn(this,e).get(e)}var Lx=_x;function Tx(e){return Jn(this,e).has(e)}var Ox=Tx;function Nx(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Dx=Nx;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=Ax;St.prototype.delete=Ex;St.prototype.get=Lx;St.prototype.has=Ox;St.prototype.set=Dx;var Sd=St;function Px(){this.__data__=new Kn,this.size=0}var zx=Px;function Ux(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Rx=Ux;function Fx(e){return this.__data__.get(e)}var Vx=Fx;function Bx(e){return this.__data__.has(e)}var qx=Bx,Gx=200;function Yx(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!oi||i.length<Gx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sd(i)}return r.set(e,t),this.size=r.size,this}var Hx=Yx;function ui(e){var t=this.__data__=new Kn(e);this.size=t.size}ui.prototype.clear=zx;ui.prototype.delete=Rx;ui.prototype.get=Vx;ui.prototype.has=qx;ui.prototype.set=Hx;var Zx=Object.prototype,pX=Zx.propertyIsEnumerable,Qx=It(te,"DataView"),Ea=Qx,Wx=It(te,"Promise"),_a=Wx,Kx=It(te,"Set"),La=Kx,Vc="[object Map]",Jx="[object Object]",Bc="[object Promise]",qc="[object Set]",Gc="[object WeakMap]",Yc="[object DataView]",Xx=Oe(Ea),eI=Oe(oi),tI=Oe(_a),rI=Oe(La),iI=Oe($a),ht=si;(Ea&&ht(new Ea(new ArrayBuffer(1)))!=Yc||oi&&ht(new oi)!=Vc||_a&&ht(_a.resolve())!=Bc||La&&ht(new La)!=qc||$a&&ht(new $a)!=Gc)&&(ht=function(e){var t=si(e),r=t==Jx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Xx:return Yc;case eI:return Vc;case tI:return Bc;case rI:return qc;case iI:return Gc}return t});var gX=te.Uint8Array,nI="__lodash_hash_undefined__";function oI(e){return this.__data__.set(e,nI),this}var aI=oI;function lI(e){return this.__data__.has(e)}var sI=lI;function Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sd;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=aI;Ta.prototype.has=sI;var Hc=kt?kt.prototype:void 0,fX=Hc?Hc.valueOf:void 0,uI=Object.prototype,yX=uI.hasOwnProperty,cI=Object.prototype,mX=cI.hasOwnProperty,bX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),hX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),vX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Md(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function dI(e,t){let r=await Md(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function pI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Md(i,t)}function gI(e){return e!==void 0}var fI=gI;function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function di(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Qn=class jd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},yI=class $d{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new $d),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function mI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function bI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var hI=bI,Ca="ly.img.ai.temp";async function vI(e,t){return e.engine.asset.findAllSources().includes(Ca)||e.engine.asset.addLocalSource(Ca),e.engine.asset.apply(Ca,t)}function wI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Ed(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function kI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function xI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Va(e){return e instanceof Error&&e.name==="AbortError"}function II(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function CI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
144
+ `,R3=U3,F3=typeof global=="object"&&global&&global.Object===Object&&global,Mc=F3,V3=typeof self=="object"&&self&&self.Object===Object&&self,B3=Mc||V3||Function("return this")(),ee=B3,q3=ee.Symbol,st=q3,jc=Object.prototype,G3=jc.hasOwnProperty,Y3=jc.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]",e7="[object Undefined]",Lu=st?st.toStringTag:void 0;function t7(e){return e==null?e===void 0?e7:X3:Lu&&Lu in Object(e)?Z3(e):J3(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,Tu=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function d7(e){return!!Tu&&Tu 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 Te=y7,m7=/[\\^$.*+?()[\]{}|]/g,b7=/^\[object .+?Constructor\]$/,h7=Function.prototype,v7=Object.prototype,w7=h7.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:b7;return t.test(Te(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 L7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_7}var T7=L7,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)&&T7(e.length)&&!!N[Zr(e)]}var c8=u8;function d8(e){return function(t){return e(t)}}var p8=d8,Lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Lc&&typeof module=="object"&&module&&!module.nodeType&&module,g8=Pr&&Pr.exports===Lc,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 b8=m8,ZJ=b8(Object.keys,Object),h8=Object.prototype,QJ=h8.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 L8=_8,T8="__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?T8: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=L8;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 Tc=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,b6=200;function h6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<b6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Tc(i)}return r.set(e,t),this.size=r.size,this}var v6=h6;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=Te(pa),S6=Te(Vr),M6=Te(ga),j6=Te(fa),$6=Te(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?Te(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 L6=_6;function T6(e){return this.__data__.has(e)}var O6=T6;function ya(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Tc;++t<r;)this.add(e[t])}ya.prototype.add=ya.prototype.push=L6;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 bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return P6(i,t)}function 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[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),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[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),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 bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),W6=Q6,qn="artistTransfer",Lr=`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:Lr,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(`${Lr}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{J6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),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[g]=o.block.findAllSelected(),p=o.block.getType(g),y=o.block.duplicate(g);p==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),o.block.setSelected(g,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&p!=="//ly.img.ubq/page"){let v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),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 g=o.block.findAllSelected(),p=o.block.duplicate(g[0]);g.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(p,!0);let y=o.block.getParent(p);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(p,o.block.getPositionX(p)+k),o.block.setPositionY(p,o.block.getPositionY(p)+k);let w=await Promise.all(g.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:g},{blockIds:[p]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),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(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),g=i.block.getPositionX(o),p=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,g),i.block.setPositionY(f,p);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),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 Ln(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var 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:Ln(l,"prompt"),placeholder:Ln(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Ln(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await o.block.export(g),y=URL.createObjectURL(p),f=o.block.duplicate(g);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(g,!1);let m=o.block.getFrameWidth(g),v=o.block.getFrameHeight(g),k=o.block.getPositionX(g),w=o.block.getPositionY(g),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Ln(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),dw=cw,fe="ly.img.ai.image-generation";function pw(e){return{async initialize({cesdk:t}){if(t==null)return;iv(t,Nr,"1.74.0-rc.1"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=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(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 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),ov({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.74.0-rc.1",...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="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var bw=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},hw=typeof global=="object"&&global&&global.Object===Object&&global,kd=hw,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 Lw(e){return e==null?e===void 0?_w:Ew:Nc&&Nc in Object(e)?Aw(e):$w(e)}var si=Lw;function Tw(e){return e!=null&&typeof e=="object"}var Fa=Tw,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]",bk="[object Array]",hk="[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]",Lk="[object Float64Array]",Tk="[object Int8Array]",Ok="[object Int16Array]",Nk="[object Int32Array]",Dk="[object Uint8Array]",Pk="[object Uint8ClampedArray]",zk="[object Uint16Array]",Uk="[object Uint32Array]",D={};D[_k]=D[Lk]=D[Tk]=D[Ok]=D[Nk]=D[Dk]=D[Pk]=D[zk]=D[Uk]=!0;D[mk]=D[bk]=D[$k]=D[hk]=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,bx=mx.splice;function hx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():bx.call(t,r,1),--this.size,!0}var vx=hx;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 Lx(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Tx=Lx;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=Tx;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"),La=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(La),aI=Oe($a),ht=si;(Ea&&ht(new Ea(new ArrayBuffer(1)))!=Hc||oi&&ht(new oi)!=Bc||_a&&ht(_a.resolve())!=qc||La&&ht(new La)!=Gc||$a&&ht(new $a)!=Yc)&&(ht=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 bX=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 Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Md;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=uI;Ta.prototype.has=dI;var Zc=kt?kt.prototype:void 0,hX=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 bI=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))}},hI=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 g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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!
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 AI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var SI=AI;function MI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var jI=MI;function $I(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),EI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:wI(e)}))}function EI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Zc=$I,_I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ba=_I;function LI(e,t,r){switch(t){case"image":return TI(e,r[t]);case"video":return OI(e,r[t]);case"sticker":return NI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ba,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function OI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function NI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ba,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var DI=LI;async function PI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return zI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return UI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return RI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return FI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function zI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function UI(e,t,r){let i=t.width,n=t.height,a=await kI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function RI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function FI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var _d=PI;function VI(e){switch(e.userFlow){case"placeholder":return qI(e);case"generation-only":return BI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function BI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ed(),c=await _d(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function qI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=Ed(),c=DI(s,a,o);if(i=await vI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await _d(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var GI=VI;function qa(e){return`${e}.generating`}function YI(e){return`${e}.abort`}function HI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(YI(d),()=>{}),y=c.global(qa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await GI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Zc(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;ZI(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Va(b))return;Zc(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ZI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ld=HI;function Oa(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function QI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(qa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Ld(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var WI=QI;function Td(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Td(e,t.$ref),n={...Xr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xr(e,t[n],r));return i}return t}function KI(e){return Xr(e,{...e})}function JI(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function XI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return eC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function eC(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=tC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function tC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Od=XI;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Nd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Dd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?rC(e,c,r,i,n,a,o,s):Pd(e,c,r,i,n,a,o,s);case"boolean":return zd(e,c,r,i,n,a,o,s);case"number":case"integer":return Ud(e,c,r,i,n,a,o,s);case"object":return Na(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return iC(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Na(e,t,r,i,n,a,o,s){let c=Od(t.schema??{},i).reduce((l,u)=>{let d=Dd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Pd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=pi(d,m,f,t.schema.default,""),k=l(g,v),w=nC(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function rC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),{labels:y,icons:f}=Nd(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),v=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function zd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function iC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Nd(t.schema),x=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Pd,boolean:zd,integer:Ud,object:Na},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:ve(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Na(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=pi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function nC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var oC=Dd,aC={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Qc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Wc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Qc(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Qc(p);n[a(l.id,p)]=y}})}});let c={...aC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function Kc(e){return typeof e.document=="function"?e.document():e.document}function Jc(e,t,r){let i=KI(e),n=Td(i,t.inputReference);if(!JI(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Od(a,t);return{inputSchema:a,properties:o}}function Xc(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=oC(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Ld(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function lC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Kc(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=Jc(c,s,a.debug);return Wc(y,i,r,i.kind),Xc(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Kc(s)).then(p=>{let{inputSchema:y,properties:f}=Jc(p,s,a.debug);Wc(f,i,r,i.kind),u=Xc(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var sC=lC;async function uC(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return WI(e,t);case"schema":return sC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var cC=uC;function dC(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new gw(o,r)),o}return i}var pC=dC;function gC(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var fC=gC,Aa="@imgly/plugin-ai-generation",yC=`
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 LI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),TI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:II(e)}))}function TI(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=LI,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 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(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=_d(),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)}}}}function HI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=_d(),c=UI(s,a,o);if(i=await xI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Ld(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var 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:g}}=t,p=c.global(QI(d),()=>{}),y=c.global(qa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await 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(b.status==="aborted")return;if(b.status==="error"){Qc(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;KI(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Va(b))return;Qc(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function 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 Td=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:g}=s(c,{cesdk:a,isGenerating:u});return Td(c,t,n,d,g,{...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,g=`${r.id}.${d}`,p=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=pi(d,m,f,t.schema.default,""),k=l(g,v),w=lC(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function oC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),{labels:y,icons:f}=Dd(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),v=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Rd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function aC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Dd(t.schema),x=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:zd,boolean:Ud,integer:Rd,object:Na},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:ve(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Na(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=pi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function 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(g=>{let p=String(g),y=d[p]||Wc(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Wc(p);n[a(l.id,p)]=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(f=>{let m=sC(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Td(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,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:p,properties:y}=Xc(c,s,a.debug);return Kc(y,i,r,i.kind),ed(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Jc(s)).then(p=>{let{inputSchema:y,properties:f}=Xc(p,s,a.debug);Kc(f,i,r,i.kind),u=ed(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var 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 bC=mC,Aa="@imgly/plugin-ai-generation",hC=`
148
148
  <svg>
149
149
  <symbol
150
150
  fill="none"
@@ -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
- `,mC=yC;function bC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Rd(2e3),await hC(t,e,r)):i(t,r)}async function hC(e,t,r){switch(t.kind){case"image":return vC(e,t,r);case"video":return wC(e,t,r);case"text":return kC(e,t,r);case"audio":return IC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function vC(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await pI(s,r),l=await dI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function wC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function kC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Kr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Kr(n,o)}else"customPrompt"in e?a=Kr(n,"custom"):a=Kr(n,"improved");else a=Kr(n,"generated");return xC(a,r.abortSignal)}async function*xC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Rd(100)}return{kind:"text",text:e}}function Kr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function IC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:CC(220,i),duration:i,thumbnailUrl:void 0}}function CC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return AC(i,44100)}function AC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Rd(e){return new Promise(t=>{setTimeout(t,e)})}var SC=bC,MC="USER_CANCEL";function jC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=mI([...e.provider.output.middleware??[],...r?.middlewares??[],hI({enable:r?.debug}),SC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:xI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Va(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===MC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var $C=jC;async function EC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Qn.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=pC(a),s=fC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=$C({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await cC(a,c);II(r.cesdk,"@imgly/plugin-ai-generation",mC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return yI.get().register(u),u}var Sa=EC;function _C(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new fw(n,r,i);return r.engine.asset.addSource(a),a.id}var LC=_C;function ei(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function TC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Sa(e,u,r,i)));o.push(...l),a=NC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Sa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Sa(e,d,r,i)));o.push(...u),a=OC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=LC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fI)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function OC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&ed(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&ed(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function NC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Oa(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function ed(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(qa(r.id),!1).value)}var DC=TC,PC=typeof global=="object"&&global&&global.Object===Object&&global,Fd=PC,zC=typeof self=="object"&&self&&self.Object===Object&&self,UC=Fd||zC||Function("return this")(),re=UC,RC=re.Symbol,xt=RC,Vd=Object.prototype,FC=Vd.hasOwnProperty,VC=Vd.toString,Jr=xt?xt.toStringTag:void 0;function BC(e){var t=FC.call(e,Jr),r=e[Jr];try{e[Jr]=void 0;var i=!0}catch{}var n=VC.call(e);return i&&(t?e[Jr]=r:delete e[Jr]),n}var qC=BC,GC=Object.prototype,YC=GC.toString;function HC(e){return YC.call(e)}var ZC=HC,QC="[object Null]",WC="[object Undefined]",td=xt?xt.toStringTag:void 0;function KC(e){return e==null?e===void 0?WC:QC:td&&td in Object(e)?qC(e):ZC(e)}var gi=KC;function JC(e){return e!=null&&typeof e=="object"}var Ga=JC,wX=Array.isArray;function XC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bd=XC,eA="[object AsyncFunction]",tA="[object Function]",rA="[object GeneratorFunction]",iA="[object Proxy]";function nA(e){if(!Bd(e))return!1;var t=gi(e);return t==tA||t==rA||t==eA||t==iA}var oA=nA,aA=re["__core-js_shared__"],Ma=aA,rd=function(){var e=/[^.]+$/.exec(Ma&&Ma.keys&&Ma.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function lA(e){return!!rd&&rd in e}var sA=lA,uA=Function.prototype,cA=uA.toString;function dA(e){if(e!=null){try{return cA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=dA,pA=/[\\^$.*+?()[\]{}|]/g,gA=/^\[object .+?Constructor\]$/,fA=Function.prototype,yA=Object.prototype,mA=fA.toString,bA=yA.hasOwnProperty,hA=RegExp("^"+mA.call(bA).replace(pA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vA(e){if(!Bd(e)||sA(e))return!1;var t=oA(e)?hA:gA;return t.test(Ne(e))}var wA=vA;function kA(e,t){return e?.[t]}var xA=kA;function IA(e,t){var r=xA(e,t);return wA(r)?r:void 0}var Mt=IA,CA=Mt(re,"WeakMap"),Da=CA;function AA(e,t){return e===t||e!==e&&t!==t}var SA=AA,MA=9007199254740991;function jA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=MA}var $A=jA,kX=Object.prototype,EA="[object Arguments]";function _A(e){return Ga(e)&&gi(e)==EA}var id=_A,qd=Object.prototype,LA=qd.hasOwnProperty,TA=qd.propertyIsEnumerable,xX=id(function(){return arguments}())?id:function(e){return Ga(e)&&LA.call(e,"callee")&&!TA.call(e,"callee")},Gd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nd=Gd&&typeof module=="object"&&module&&!module.nodeType&&module,OA=nd&&nd.exports===Gd,od=OA?re.Buffer:void 0,IX=od?od.isBuffer:void 0,NA="[object Arguments]",DA="[object Array]",PA="[object Boolean]",zA="[object Date]",UA="[object Error]",RA="[object Function]",FA="[object Map]",VA="[object Number]",BA="[object Object]",qA="[object RegExp]",GA="[object Set]",YA="[object String]",HA="[object WeakMap]",ZA="[object ArrayBuffer]",QA="[object DataView]",WA="[object Float32Array]",KA="[object Float64Array]",JA="[object Int8Array]",XA="[object Int16Array]",eS="[object Int32Array]",tS="[object Uint8Array]",rS="[object Uint8ClampedArray]",iS="[object Uint16Array]",nS="[object Uint32Array]",P={};P[WA]=P[KA]=P[JA]=P[XA]=P[eS]=P[tS]=P[rS]=P[iS]=P[nS]=!0;P[NA]=P[DA]=P[ZA]=P[PA]=P[QA]=P[zA]=P[UA]=P[RA]=P[FA]=P[VA]=P[BA]=P[qA]=P[GA]=P[YA]=P[HA]=!1;function oS(e){return Ga(e)&&$A(e.length)&&!!P[gi(e)]}var aS=oS;function lS(e){return function(t){return e(t)}}var sS=lS,Yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ii=Yd&&typeof module=="object"&&module&&!module.nodeType&&module,uS=ii&&ii.exports===Yd,ja=uS&&Fd.process,cS=function(){try{var e=ii&&ii.require&&ii.require("util").types;return e||ja&&ja.binding&&ja.binding("util")}catch{}}(),ad=cS,ld=ad&&ad.isTypedArray,CX=ld?sS(ld):aS,dS=Object.prototype,AX=dS.hasOwnProperty;function pS(e,t){return function(r){return e(t(r))}}var gS=pS,SX=gS(Object.keys,Object),fS=Object.prototype,MX=fS.hasOwnProperty,yS=Mt(Object,"create"),ai=yS;function mS(){this.__data__=ai?ai(null):{},this.size=0}var bS=mS;function hS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var vS=hS,wS="__lodash_hash_undefined__",kS=Object.prototype,xS=kS.hasOwnProperty;function IS(e){var t=this.__data__;if(ai){var r=t[e];return r===wS?void 0:r}return xS.call(t,e)?t[e]:void 0}var CS=IS,AS=Object.prototype,SS=AS.hasOwnProperty;function MS(e){var t=this.__data__;return ai?t[e]!==void 0:SS.call(t,e)}var jS=MS,$S="__lodash_hash_undefined__";function ES(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?$S:t,this}var _S=ES;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=bS;jt.prototype.delete=vS;jt.prototype.get=CS;jt.prototype.has=jS;jt.prototype.set=_S;var sd=jt;function LS(){this.__data__=[],this.size=0}var TS=LS;function OS(e,t){for(var r=e.length;r--;)if(SA(e[r][0],t))return r;return-1}var Xn=OS,NS=Array.prototype,DS=NS.splice;function PS(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():DS.call(t,r,1),--this.size,!0}var zS=PS;function US(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var RS=US;function FS(e){return Xn(this.__data__,e)>-1}var VS=FS;function BS(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var qS=BS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=TS;$t.prototype.delete=zS;$t.prototype.get=RS;$t.prototype.has=VS;$t.prototype.set=qS;var eo=$t,GS=Mt(re,"Map"),li=GS;function YS(){this.size=0,this.__data__={hash:new sd,map:new(li||eo),string:new sd}}var HS=YS;function ZS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var QS=ZS;function WS(e,t){var r=e.__data__;return QS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=WS;function KS(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var JS=KS;function XS(e){return to(this,e).get(e)}var eM=XS;function tM(e){return to(this,e).has(e)}var rM=tM;function iM(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var nM=iM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=HS;Et.prototype.delete=JS;Et.prototype.get=eM;Et.prototype.has=rM;Et.prototype.set=nM;var Hd=Et;function oM(){this.__data__=new eo,this.size=0}var aM=oM;function lM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var sM=lM;function uM(e){return this.__data__.get(e)}var cM=uM;function dM(e){return this.__data__.has(e)}var pM=dM,gM=200;function fM(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!li||i.length<gM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Hd(i)}return r.set(e,t),this.size=r.size,this}var yM=fM;function fi(e){var t=this.__data__=new eo(e);this.size=t.size}fi.prototype.clear=aM;fi.prototype.delete=sM;fi.prototype.get=cM;fi.prototype.has=pM;fi.prototype.set=yM;var mM=Object.prototype,jX=mM.propertyIsEnumerable,bM=Mt(re,"DataView"),Pa=bM,hM=Mt(re,"Promise"),za=hM,vM=Mt(re,"Set"),Ua=vM,ud="[object Map]",wM="[object Object]",cd="[object Promise]",dd="[object Set]",pd="[object WeakMap]",gd="[object DataView]",kM=Ne(Pa),xM=Ne(li),IM=Ne(za),CM=Ne(Ua),AM=Ne(Da),vt=gi;(Pa&&vt(new Pa(new ArrayBuffer(1)))!=gd||li&&vt(new li)!=ud||za&&vt(za.resolve())!=cd||Ua&&vt(new Ua)!=dd||Da&&vt(new Da)!=pd)&&(vt=function(e){var t=gi(e),r=t==wM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case kM:return gd;case xM:return ud;case IM:return cd;case CM:return dd;case AM:return pd}return t});var $X=re.Uint8Array,SM="__lodash_hash_undefined__";function MM(e){return this.__data__.set(e,SM),this}var jM=MM;function $M(e){return this.__data__.has(e)}var EM=$M;function Ra(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Hd;++t<r;)this.add(e[t])}Ra.prototype.add=Ra.prototype.push=jM;Ra.prototype.has=EM;var fd=xt?xt.prototype:void 0,EX=fd?fd.valueOf:void 0,_M=Object.prototype,_X=_M.hasOwnProperty,LM=Object.prototype,LX=LM.hasOwnProperty,TX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),OX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),NX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function TM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Zd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return TM(i,t)}function OM(e){return e==null?[]:Array.isArray(e)?e:[e]}var yd=OM;function NM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function DM(e){return typeof e?.translate=="function"}function PM(e,t,r){return e&&NM(e)&&DM(e.i18n)?e.i18n.translate(t):r}var ti="@imgly/plugin-ai-video-generation-web";var ro="createVideo",md=`ly.img.${ro}`,zM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,bd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${ro}`;function UM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var RM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${bd}`]:"Create Video...",[`${bd}.description`]:"Create a video from the image"}}),{id:md,type:"quick",kind:"image",label:`${zM}`,enable:jI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${md}.button`,{label:UM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Zd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),FM=RM,io="animateBetweenImages",hd=`ly.img.${io}`,VM=`ly.img.plugin-ai-video-generation-web.quickAction.${io}`,vd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${io}`;function BM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${vd}`]:"Animate Between Images...",[`${vd}.description`]:"Create a video transitioning between two images"}}),{id:hd,type:"quick",kind:"image",label:`${VM}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${hd}.button`,{label:BM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Zd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),GM=qM,be="ly.img.ai.video-generation";function YM(e){return{async initialize({cesdk:t}){if(t==null)return;CI(t,ti,"1.74.0-nightly.20260421"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),HM(e);let i=Qn.get().register({type:"plugin",sceneMode:"Video",id:ti,pluginId:ti,label:PM(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(yd(n).map(l=>l({cesdk:t}))),s=await Promise.all(yd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await DC("video",{fromText:o,fromImage:s},{cesdk:t},e);Qn.get().register(FM({cesdk:t})),Qn.get().register(GM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),SI({cesdk:t,panelId:be})):i()}}}function HM(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var ZM=YM,QM=e=>({name:ti,version:"1.74.0-nightly.20260421",...ZM(e)}),Qd=QM;var WM=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var KM=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},JM=typeof global=="object"&&global&&global.Object===Object&&global,Np=JM,XM=typeof self=="object"&&self&&self.Object===Object&&self,ej=Np||XM||Function("return this")(),ie=ej,tj=ie.Symbol,Ot=tj,Dp=Object.prototype,rj=Dp.hasOwnProperty,ij=Dp.toString,yi=Ot?Ot.toStringTag:void 0;function nj(e){var t=rj.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=ij.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var oj=nj,aj=Object.prototype,lj=aj.toString;function sj(e){return lj.call(e)}var uj=sj,cj="[object Null]",dj="[object Undefined]",Wd=Ot?Ot.toStringTag:void 0;function pj(e){return e==null?e===void 0?dj:cj:Wd&&Wd in Object(e)?oj(e):uj(e)}var Si=pj;function gj(e){return e!=null&&typeof e=="object"}var dl=gj,UX=Array.isArray;function fj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pp=fj,yj="[object AsyncFunction]",mj="[object Function]",bj="[object GeneratorFunction]",hj="[object Proxy]";function vj(e){if(!Pp(e))return!1;var t=Si(e);return t==mj||t==bj||t==yj||t==hj}var wj=vj,kj=ie["__core-js_shared__"],Ya=kj,Kd=function(){var e=/[^.]+$/.exec(Ya&&Ya.keys&&Ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function xj(e){return!!Kd&&Kd in e}var Ij=xj,Cj=Function.prototype,Aj=Cj.toString;function Sj(e){if(e!=null){try{return Aj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=Sj,Mj=/[\\^$.*+?()[\]{}|]/g,jj=/^\[object .+?Constructor\]$/,$j=Function.prototype,Ej=Object.prototype,_j=$j.toString,Lj=Ej.hasOwnProperty,Tj=RegExp("^"+_j.call(Lj).replace(Mj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oj(e){if(!Pp(e)||Ij(e))return!1;var t=wj(e)?Tj:jj;return t.test(ze(e))}var Nj=Oj;function Dj(e,t){return e?.[t]}var Pj=Dj;function zj(e,t){var r=Pj(e,t);return Nj(r)?r:void 0}var Dt=zj,Uj=Dt(ie,"WeakMap"),Xa=Uj;function Rj(e,t){return e===t||e!==e&&t!==t}var Fj=Rj,Vj=9007199254740991;function Bj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vj}var qj=Bj,RX=Object.prototype,Gj="[object Arguments]";function Yj(e){return dl(e)&&Si(e)==Gj}var Jd=Yj,zp=Object.prototype,Hj=zp.hasOwnProperty,Zj=zp.propertyIsEnumerable,FX=Jd(function(){return arguments}())?Jd:function(e){return dl(e)&&Hj.call(e,"callee")&&!Zj.call(e,"callee")},Up=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xd=Up&&typeof module=="object"&&module&&!module.nodeType&&module,Qj=Xd&&Xd.exports===Up,ep=Qj?ie.Buffer:void 0,VX=ep?ep.isBuffer:void 0,Wj="[object Arguments]",Kj="[object Array]",Jj="[object Boolean]",Xj="[object Date]",e$="[object Error]",t$="[object Function]",r$="[object Map]",i$="[object Number]",n$="[object Object]",o$="[object RegExp]",a$="[object Set]",l$="[object String]",s$="[object WeakMap]",u$="[object ArrayBuffer]",c$="[object DataView]",d$="[object Float32Array]",p$="[object Float64Array]",g$="[object Int8Array]",f$="[object Int16Array]",y$="[object Int32Array]",m$="[object Uint8Array]",b$="[object Uint8ClampedArray]",h$="[object Uint16Array]",v$="[object Uint32Array]",z={};z[d$]=z[p$]=z[g$]=z[f$]=z[y$]=z[m$]=z[b$]=z[h$]=z[v$]=!0;z[Wj]=z[Kj]=z[u$]=z[Jj]=z[c$]=z[Xj]=z[e$]=z[t$]=z[r$]=z[i$]=z[n$]=z[o$]=z[a$]=z[l$]=z[s$]=!1;function w$(e){return dl(e)&&qj(e.length)&&!!z[Si(e)]}var k$=w$;function x$(e){return function(t){return e(t)}}var I$=x$,Rp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Rp&&typeof module=="object"&&module&&!module.nodeType&&module,C$=wi&&wi.exports===Rp,Ha=C$&&Np.process,A$=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),tp=A$,rp=tp&&tp.isTypedArray,BX=rp?I$(rp):k$,S$=Object.prototype,qX=S$.hasOwnProperty;function M$(e,t){return function(r){return e(t(r))}}var j$=M$,GX=j$(Object.keys,Object),$$=Object.prototype,YX=$$.hasOwnProperty,E$=Dt(Object,"create"),xi=E$;function _$(){this.__data__=xi?xi(null):{},this.size=0}var L$=_$;function T$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O$=T$,N$="__lodash_hash_undefined__",D$=Object.prototype,P$=D$.hasOwnProperty;function z$(e){var t=this.__data__;if(xi){var r=t[e];return r===N$?void 0:r}return P$.call(t,e)?t[e]:void 0}var U$=z$,R$=Object.prototype,F$=R$.hasOwnProperty;function V$(e){var t=this.__data__;return xi?t[e]!==void 0:F$.call(t,e)}var B$=V$,q$="__lodash_hash_undefined__";function G$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xi&&t===void 0?q$:t,this}var Y$=G$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=L$;Pt.prototype.delete=O$;Pt.prototype.get=U$;Pt.prototype.has=B$;Pt.prototype.set=Y$;var ip=Pt;function H$(){this.__data__=[],this.size=0}var Z$=H$;function Q$(e,t){for(var r=e.length;r--;)if(Fj(e[r][0],t))return r;return-1}var no=Q$,W$=Array.prototype,K$=W$.splice;function J$(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():K$.call(t,r,1),--this.size,!0}var X$=J$;function eE(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var tE=eE;function rE(e){return no(this.__data__,e)>-1}var iE=rE;function nE(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var oE=nE;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=Z$;zt.prototype.delete=X$;zt.prototype.get=tE;zt.prototype.has=iE;zt.prototype.set=oE;var oo=zt,aE=Dt(ie,"Map"),Ii=aE;function lE(){this.size=0,this.__data__={hash:new ip,map:new(Ii||oo),string:new ip}}var sE=lE;function uE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var cE=uE;function dE(e,t){var r=e.__data__;return cE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=dE;function pE(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var gE=pE;function fE(e){return ao(this,e).get(e)}var yE=fE;function mE(e){return ao(this,e).has(e)}var bE=mE;function hE(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var vE=hE;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=sE;Ut.prototype.delete=gE;Ut.prototype.get=yE;Ut.prototype.has=bE;Ut.prototype.set=vE;var Fp=Ut;function wE(){this.__data__=new oo,this.size=0}var kE=wE;function xE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var IE=xE;function CE(e){return this.__data__.get(e)}var AE=CE;function SE(e){return this.__data__.has(e)}var ME=SE,jE=200;function $E(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Ii||i.length<jE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fp(i)}return r.set(e,t),this.size=r.size,this}var EE=$E;function Mi(e){var t=this.__data__=new oo(e);this.size=t.size}Mi.prototype.clear=kE;Mi.prototype.delete=IE;Mi.prototype.get=AE;Mi.prototype.has=ME;Mi.prototype.set=EE;var _E=Object.prototype,HX=_E.propertyIsEnumerable,LE=Dt(ie,"DataView"),el=LE,TE=Dt(ie,"Promise"),tl=TE,OE=Dt(ie,"Set"),rl=OE,np="[object Map]",NE="[object Object]",op="[object Promise]",ap="[object Set]",lp="[object WeakMap]",sp="[object DataView]",DE=ze(el),PE=ze(Ii),zE=ze(tl),UE=ze(rl),RE=ze(Xa),_t=Si;(el&&_t(new el(new ArrayBuffer(1)))!=sp||Ii&&_t(new Ii)!=np||tl&&_t(tl.resolve())!=op||rl&&_t(new rl)!=ap||Xa&&_t(new Xa)!=lp)&&(_t=function(e){var t=Si(e),r=t==NE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case DE:return sp;case PE:return np;case zE:return op;case UE:return ap;case RE:return lp}return t});var ZX=ie.Uint8Array,FE="__lodash_hash_undefined__";function VE(e){return this.__data__.set(e,FE),this}var BE=VE;function qE(e){return this.__data__.has(e)}var GE=qE;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Fp;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=BE;il.prototype.has=GE;var up=Ot?Ot.prototype:void 0,QX=up?up.valueOf:void 0,YE=Object.prototype,WX=YE.hasOwnProperty,HE=Object.prototype,KX=HE.hasOwnProperty,JX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),XX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Vp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ZE(e,t){let r=await Vp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function QE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Vp(i,t)}function WE(e){return e!==void 0}var KE=WE;function pl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function $i(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Bp=class qp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new qp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},JE=class Gp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Gp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function XE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function e_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var t_=e_,Za="ly.img.ai.temp";async function r_(e,t){return e.engine.asset.findAllSources().includes(Za)||e.engine.asset.addLocalSource(Za),e.engine.asset.apply(Za,t)}function i_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Yp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function n_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function o_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gl(e){return e instanceof Error&&e.name==="AbortError"}function a_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function l_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
208
+ `,vC=hC;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 v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function 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 LC=_C;async function TC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Qn.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=yC(a),s=bC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=LC({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 hI.get().register(u),u}var Sa=TC;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 bw(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(bI)}),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}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&td(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&td(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function 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:g,panel:p})=>({id:g.id,label:Oa(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function 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\]$/,bA=Function.prototype,hA=Object.prototype,vA=bA.toString,wA=hA.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 LA=_A,AX=Object.prototype,TA="[object Arguments]";function OA(e){return Ga(e)&&gi(e)==TA}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)&&LA(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),bS=Object.prototype,_X=bS.hasOwnProperty,hS=Mt(Object,"create"),ai=hS;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,LS="__lodash_hash_undefined__";function TS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?LS:t,this}var OS=TS;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 bM(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 hM=bM;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=hM;var vM=Object.prototype,LX=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 TX=re.Uint8Array,$M="__lodash_hash_undefined__";function EM(e){return this.__data__.set(e,$M),this}var _M=EM;function LM(e){return this.__data__.has(e)}var TM=LM;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=TM;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",bd=`ly.img.${ro}`,FM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,hd=`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:{[`${hd}`]:"Create Video...",[`${hd}.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 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,be="ly.img.ai.video-generation";function QM(e){return{async initialize({cesdk:t}){if(t==null)return;MI(t,ti,"1.74.0-rc.1"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),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:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(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(be,c.panel.builderRenderFunction),$I({cesdk:t,panelId:be})):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.74.0-rc.1",...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="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var 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 g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},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 bj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zp=bj,hj="[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==hj||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\]$/,Lj=Function.prototype,Tj=Object.prototype,Oj=Lj.toString,Nj=Tj.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]",b$="[object Int16Array]",h$="[object Int32Array]",v$="[object Uint8Array]",w$="[object Uint8ClampedArray]",k$="[object Uint16Array]",x$="[object Uint32Array]",z={};z[f$]=z[y$]=z[m$]=z[b$]=z[h$]=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),L$=Object.prototype,WX=L$.hasOwnProperty,T$=Dt(Object,"create"),xi=T$;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 bE(e){return ao(this,e).get(e)}var hE=bE;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=hE;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 LE(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 TE=LE;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=TE;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 g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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!
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 s_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var cp=s_;function u_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),c_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:i_(e)}))}function c_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var dp=u_,d_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fl=d_;function p_(e,t,r){switch(t){case"image":return g_(e,r[t]);case"video":return f_(e,r[t]);case"sticker":return y_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function g_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function f_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function y_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var m_=p_;async function b_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return h_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return v_(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return w_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return k_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function v_(e,t,r){let i=t.width,n=t.height,a=await n_(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function w_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function k_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Hp=b_;function x_(e){switch(e.userFlow){case"placeholder":return C_(e);case"generation-only":return I_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function I_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Yp(),c=await Hp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function C_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Yp(),c=m_(s,a,o);if(i=await r_(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Hp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var A_=x_;function yl(e){return`${e}.generating`}function S_(e){return`${e}.abort`}function M_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(S_(d),()=>{}),y=c.global(yl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await A_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){dp(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;j_(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(gl(b))return;dp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function j_(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Zp=M_;function nl(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function $_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Zp(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var E_=$_;function Qp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function hi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Qp(e,t.$ref),n={...hi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=hi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>hi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=hi(e,t[n],r));return i}return t}function __(e){return hi(e,{...e})}function L_(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function T_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return O_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function O_(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=N_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function N_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Wp=T_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Kp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Jp(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?D_(e,c,r,i,n,a,o,s):Xp(e,c,r,i,n,a,o,s);case"boolean":return eg(e,c,r,i,n,a,o,s);case"number":case"integer":return tg(e,c,r,i,n,a,o,s);case"object":return ol(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return P_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ol(e,t,r,i,n,a,o,s){let c=Wp(t.schema??{},i).reduce((l,u)=>{let d=Jp(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Xp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=$i(d,m,f,t.schema.default,""),k=l(g,v),w=z_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function D_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),{labels:y,icons:f}=Kp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),v=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function eg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function P_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Kp(t.schema),x=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Xp,boolean:eg,integer:tg,object:ol},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:xe(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ol(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=$i(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function z_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var U_=Jp,R_={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function pp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function gp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||pp(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||pp(p);n[a(l.id,p)]=y}})}});let c={...R_,...n};Object.keys(c).length>0&&pl(r.cesdk,{en:c})}function fp(e){return typeof e.document=="function"?e.document():e.document}function yp(e,t,r){let i=__(e),n=Qp(i,t.inputReference);if(!L_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Wp(a,t);return{inputSchema:a,properties:o}}function mp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=U_(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Zp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function F_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=fp(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=yp(c,s,a.debug);return gp(y,i,r,i.kind),mp(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(fp(s)).then(p=>{let{inputSchema:y,properties:f}=yp(p,s,a.debug);gp(f,i,r,i.kind),u=mp(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var V_=F_;async function B_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return E_(e,t);case"schema":return V_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var q_=B_;function G_(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new WM(o,r)),o}return i}var Y_=G_;function H_(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Z_=H_,Qa="@imgly/plugin-ai-generation",Q_=`
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 b_(e,r[t]);case"sticker":return h_(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 b_(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 h_(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),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await 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:g}}=t,p=c.global($_(d),()=>{}),y=c.global(yl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await 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(b.status==="aborted")return;if(b.status==="error"){pp(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;__(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(gl(b))return;pp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function __(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 L_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Qp(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var T_=L_;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 hi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Wp(e,t.$ref),n={...hi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=hi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>hi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=hi(e,t[n],r));return i}return t}function O_(e){return hi(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,g=`${r.id}.${d}`,p=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=$i(d,m,f,t.schema.default,""),k=l(g,v),w=F_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function U_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),{labels:y,icons:f}=Jp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),v=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function rg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function R_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Jp(t.schema),x=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:eg,boolean:tg,integer:rg,object:ol},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:xe(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ol(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=$i(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function 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(g=>{let p=String(g),y=d[p]||gp(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||gp(p);n[a(l.id,p)]=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 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(f=>{let m=V_(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Qp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,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:p,properties:y}=mp(c,s,a.debug);return fp(y,i,r,i.kind),bp(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(yp(s)).then(p=>{let{inputSchema:y,properties:f}=mp(p,s,a.debug);fp(f,i,r,i.kind),u=bp(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var G_=q_;async function Y_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return T_(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_=`
213
213
  <svg>
214
214
  <symbol
215
215
  fill="none"
@@ -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
- `,W_=Q_;function K_(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await rg(2e3),await J_(t,e,r)):i(t,r)}async function J_(e,t,r){switch(t.kind){case"image":return X_(e,t,r);case"video":return eL(e,t,r);case"text":return tL(e,t,r);case"audio":return iL(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function X_(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await QE(s,r),l=await ZE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function eL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function tL(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=mi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=mi(n,o)}else"customPrompt"in e?a=mi(n,"custom"):a=mi(n,"improved");else a=mi(n,"generated");return rL(a,r.abortSignal)}async function*rL(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await rg(100)}return{kind:"text",text:e}}function mi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function iL(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:nL(220,i),duration:i,thumbnailUrl:void 0}}function nL(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return oL(i,44100)}function oL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function rg(e){return new Promise(t=>{setTimeout(t,e)})}var aL=K_,lL="USER_CANCEL";function sL(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=XE([...e.provider.output.middleware??[],...r?.middlewares??[],t_({enable:r?.debug}),aL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:o_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===lL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var uL=sL;async function cL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Bp.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=Y_(a),s=Z_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=uL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await q_(a,c);a_(r.cesdk,"@imgly/plugin-ai-generation",W_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return JE.get().register(u),u}var Wa=cL;function dL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new KM(n,r,i);return r.engine.asset.addSource(a),a.id}var pL=dL;function vi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function gL(e,t,r,i){let{cesdk:n}=r;pl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Wa(e,u,r,i)));o.push(...l),a=yL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Wa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Wa(e,d,r,i)));o.push(...u),a=fL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=pL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(KE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function fL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&bp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&bp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function yL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:nl(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function bp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var hp=gL,mL=typeof global=="object"&&global&&global.Object===Object&&global,ig=mL,bL=typeof self=="object"&&self&&self.Object===Object&&self,hL=ig||bL||Function("return this")(),ne=hL,vL=ne.Symbol,Nt=vL,ng=Object.prototype,wL=ng.hasOwnProperty,kL=ng.toString,bi=Nt?Nt.toStringTag:void 0;function xL(e){var t=wL.call(e,bi),r=e[bi];try{e[bi]=void 0;var i=!0}catch{}var n=kL.call(e);return i&&(t?e[bi]=r:delete e[bi]),n}var IL=xL,CL=Object.prototype,AL=CL.toString;function SL(e){return AL.call(e)}var ML=SL,jL="[object Null]",$L="[object Undefined]",vp=Nt?Nt.toStringTag:void 0;function EL(e){return e==null?e===void 0?$L:jL:vp&&vp in Object(e)?IL(e):ML(e)}var Ei=EL;function _L(e){return e!=null&&typeof e=="object"}var ml=_L,tee=Array.isArray;function LL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var og=LL,TL="[object AsyncFunction]",OL="[object Function]",NL="[object GeneratorFunction]",DL="[object Proxy]";function PL(e){if(!og(e))return!1;var t=Ei(e);return t==OL||t==NL||t==TL||t==DL}var zL=PL,UL=ne["__core-js_shared__"],Ka=UL,wp=function(){var e=/[^.]+$/.exec(Ka&&Ka.keys&&Ka.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RL(e){return!!wp&&wp in e}var FL=RL,VL=Function.prototype,BL=VL.toString;function qL(e){if(e!=null){try{return BL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=qL,GL=/[\\^$.*+?()[\]{}|]/g,YL=/^\[object .+?Constructor\]$/,HL=Function.prototype,ZL=Object.prototype,QL=HL.toString,WL=ZL.hasOwnProperty,KL=RegExp("^"+QL.call(WL).replace(GL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JL(e){if(!og(e)||FL(e))return!1;var t=zL(e)?KL:YL;return t.test(Ue(e))}var XL=JL;function eT(e,t){return e?.[t]}var tT=eT;function rT(e,t){var r=tT(e,t);return XL(r)?r:void 0}var Rt=rT,iT=Rt(ne,"WeakMap"),al=iT;function nT(e,t){return e===t||e!==e&&t!==t}var oT=nT,aT=9007199254740991;function lT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=aT}var sT=lT,ree=Object.prototype,uT="[object Arguments]";function cT(e){return ml(e)&&Ei(e)==uT}var kp=cT,ag=Object.prototype,dT=ag.hasOwnProperty,pT=ag.propertyIsEnumerable,iee=kp(function(){return arguments}())?kp:function(e){return ml(e)&&dT.call(e,"callee")&&!pT.call(e,"callee")},lg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xp=lg&&typeof module=="object"&&module&&!module.nodeType&&module,gT=xp&&xp.exports===lg,Ip=gT?ne.Buffer:void 0,nee=Ip?Ip.isBuffer:void 0,fT="[object Arguments]",yT="[object Array]",mT="[object Boolean]",bT="[object Date]",hT="[object Error]",vT="[object Function]",wT="[object Map]",kT="[object Number]",xT="[object Object]",IT="[object RegExp]",CT="[object Set]",AT="[object String]",ST="[object WeakMap]",MT="[object ArrayBuffer]",jT="[object DataView]",$T="[object Float32Array]",ET="[object Float64Array]",_T="[object Int8Array]",LT="[object Int16Array]",TT="[object Int32Array]",OT="[object Uint8Array]",NT="[object Uint8ClampedArray]",DT="[object Uint16Array]",PT="[object Uint32Array]",U={};U[$T]=U[ET]=U[_T]=U[LT]=U[TT]=U[OT]=U[NT]=U[DT]=U[PT]=!0;U[fT]=U[yT]=U[MT]=U[mT]=U[jT]=U[bT]=U[hT]=U[vT]=U[wT]=U[kT]=U[xT]=U[IT]=U[CT]=U[AT]=U[ST]=!1;function zT(e){return ml(e)&&sT(e.length)&&!!U[Ei(e)]}var UT=zT;function RT(e){return function(t){return e(t)}}var FT=RT,sg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=sg&&typeof module=="object"&&module&&!module.nodeType&&module,VT=ki&&ki.exports===sg,Ja=VT&&ig.process,BT=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Ja&&Ja.binding&&Ja.binding("util")}catch{}}(),Cp=BT,Ap=Cp&&Cp.isTypedArray,oee=Ap?FT(Ap):UT,qT=Object.prototype,aee=qT.hasOwnProperty;function GT(e,t){return function(r){return e(t(r))}}var YT=GT,lee=YT(Object.keys,Object),HT=Object.prototype,see=HT.hasOwnProperty,ZT=Rt(Object,"create"),Ci=ZT;function QT(){this.__data__=Ci?Ci(null):{},this.size=0}var WT=QT;function KT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var JT=KT,XT="__lodash_hash_undefined__",eO=Object.prototype,tO=eO.hasOwnProperty;function rO(e){var t=this.__data__;if(Ci){var r=t[e];return r===XT?void 0:r}return tO.call(t,e)?t[e]:void 0}var iO=rO,nO=Object.prototype,oO=nO.hasOwnProperty;function aO(e){var t=this.__data__;return Ci?t[e]!==void 0:oO.call(t,e)}var lO=aO,sO="__lodash_hash_undefined__";function uO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ci&&t===void 0?sO:t,this}var cO=uO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=WT;Ft.prototype.delete=JT;Ft.prototype.get=iO;Ft.prototype.has=lO;Ft.prototype.set=cO;var Sp=Ft;function dO(){this.__data__=[],this.size=0}var pO=dO;function gO(e,t){for(var r=e.length;r--;)if(oT(e[r][0],t))return r;return-1}var lo=gO,fO=Array.prototype,yO=fO.splice;function mO(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():yO.call(t,r,1),--this.size,!0}var bO=mO;function hO(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var vO=hO;function wO(e){return lo(this.__data__,e)>-1}var kO=wO;function xO(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var IO=xO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=pO;Vt.prototype.delete=bO;Vt.prototype.get=vO;Vt.prototype.has=kO;Vt.prototype.set=IO;var so=Vt,CO=Rt(ne,"Map"),Ai=CO;function AO(){this.size=0,this.__data__={hash:new Sp,map:new(Ai||so),string:new Sp}}var SO=AO;function MO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var jO=MO;function $O(e,t){var r=e.__data__;return jO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=$O;function EO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var _O=EO;function LO(e){return uo(this,e).get(e)}var TO=LO;function OO(e){return uo(this,e).has(e)}var NO=OO;function DO(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var PO=DO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=SO;Bt.prototype.delete=_O;Bt.prototype.get=TO;Bt.prototype.has=NO;Bt.prototype.set=PO;var ug=Bt;function zO(){this.__data__=new so,this.size=0}var UO=zO;function RO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var FO=RO;function VO(e){return this.__data__.get(e)}var BO=VO;function qO(e){return this.__data__.has(e)}var GO=qO,YO=200;function HO(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Ai||i.length<YO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ug(i)}return r.set(e,t),this.size=r.size,this}var ZO=HO;function _i(e){var t=this.__data__=new so(e);this.size=t.size}_i.prototype.clear=UO;_i.prototype.delete=FO;_i.prototype.get=BO;_i.prototype.has=GO;_i.prototype.set=ZO;var QO=Object.prototype,uee=QO.propertyIsEnumerable,WO=Rt(ne,"DataView"),ll=WO,KO=Rt(ne,"Promise"),sl=KO,JO=Rt(ne,"Set"),ul=JO,Mp="[object Map]",XO="[object Object]",jp="[object Promise]",$p="[object Set]",Ep="[object WeakMap]",_p="[object DataView]",eN=Ue(ll),tN=Ue(Ai),rN=Ue(sl),iN=Ue(ul),nN=Ue(al),Lt=Ei;(ll&&Lt(new ll(new ArrayBuffer(1)))!=_p||Ai&&Lt(new Ai)!=Mp||sl&&Lt(sl.resolve())!=jp||ul&&Lt(new ul)!=$p||al&&Lt(new al)!=Ep)&&(Lt=function(e){var t=Ei(e),r=t==XO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case eN:return _p;case tN:return Mp;case rN:return jp;case iN:return $p;case nN:return Ep}return t});var cee=ne.Uint8Array,oN="__lodash_hash_undefined__";function aN(e){return this.__data__.set(e,oN),this}var lN=aN;function sN(e){return this.__data__.has(e)}var uN=sN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ug;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=lN;cl.prototype.has=uN;var Lp=Nt?Nt.prototype:void 0,dee=Lp?Lp.valueOf:void 0,cN=Object.prototype,pee=cN.hasOwnProperty,dN=Object.prototype,gee=dN.hasOwnProperty,fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),mee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function pN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Tp=pN;function gN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function fN(e){return typeof e?.translate=="function"}function Op(e,t,r){return e&&gN(e)&&fN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function yN(e){return{async initialize({cesdk:t}){if(t==null)return;l_(t,we,"1.74.0-nightly.20260421"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),mN(e);let n=Bp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Op(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Op(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Tp(s).map(f=>f({cesdk:t}))),u=await Promise.all(Tp(c).map(f=>f({cesdk:t}))),d=l.length>0,g=u.length>0;if(!d&&!g){a(),o();return}g||a(),d||o();let p=await hp("audio",l,{cesdk:t},e),y=await hp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),cp({cesdk:t,panelId:Pe})):a(),p.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,p.panel.builderRenderFunction),cp({cesdk:t,panelId:De})):o()}}}function mN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var bN=yN,hN=e=>({name:we,version:"1.74.0-nightly.20260421",...bN(e)}),cg=hN;var vN="@imgly/plugin-ai-text-generation",wN=`
273
+ `,X_=J_;function eL(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 tL(t,e,r)):i(t,r)}async function tL(e,t,r){switch(t.kind){case"image":return rL(e,t,r);case"video":return iL(e,t,r);case"text":return nL(e,t,r);case"audio":return aL(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function rL(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 iL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nL(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 oL(a,r.abortSignal)}async function*oL(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 aL(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:lL(220,i),duration:i,thumbnailUrl:void 0}}function lL(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 sL(i,44100)}function sL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function ig(e){return new Promise(t=>{setTimeout(t,e)})}var uL=eL,cL="USER_CANCEL";function dL(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}),uL({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===cL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var pL=dL;async function gL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=qp.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=Q_(a),s=K_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=pL({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=gL;function fL(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 yL=fL;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 mL(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=hL({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=bL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=yL({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 bL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&hp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&hp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function hL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:nl(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function hp(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=mL,vL=typeof global=="object"&&global&&global.Object===Object&&global,ng=vL,wL=typeof self=="object"&&self&&self.Object===Object&&self,kL=ng||wL||Function("return this")(),ne=kL,xL=ne.Symbol,Nt=xL,og=Object.prototype,IL=og.hasOwnProperty,CL=og.toString,bi=Nt?Nt.toStringTag:void 0;function AL(e){var t=IL.call(e,bi),r=e[bi];try{e[bi]=void 0;var i=!0}catch{}var n=CL.call(e);return i&&(t?e[bi]=r:delete e[bi]),n}var SL=AL,ML=Object.prototype,jL=ML.toString;function $L(e){return jL.call(e)}var EL=$L,_L="[object Null]",LL="[object Undefined]",wp=Nt?Nt.toStringTag:void 0;function TL(e){return e==null?e===void 0?LL:_L:wp&&wp in Object(e)?SL(e):EL(e)}var Ei=TL;function OL(e){return e!=null&&typeof e=="object"}var ml=OL,oee=Array.isArray;function NL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ag=NL,DL="[object AsyncFunction]",PL="[object Function]",zL="[object GeneratorFunction]",UL="[object Proxy]";function RL(e){if(!ag(e))return!1;var t=Ei(e);return t==PL||t==zL||t==DL||t==UL}var FL=RL,VL=ne["__core-js_shared__"],Ka=VL,kp=function(){var e=/[^.]+$/.exec(Ka&&Ka.keys&&Ka.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function BL(e){return!!kp&&kp in e}var qL=BL,GL=Function.prototype,YL=GL.toString;function HL(e){if(e!=null){try{return YL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=HL,ZL=/[\\^$.*+?()[\]{}|]/g,QL=/^\[object .+?Constructor\]$/,WL=Function.prototype,KL=Object.prototype,JL=WL.toString,XL=KL.hasOwnProperty,eT=RegExp("^"+JL.call(XL).replace(ZL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tT(e){if(!ag(e)||qL(e))return!1;var t=FL(e)?eT:QL;return t.test(Ue(e))}var rT=tT;function iT(e,t){return e?.[t]}var nT=iT;function oT(e,t){var r=nT(e,t);return rT(r)?r:void 0}var Rt=oT,aT=Rt(ne,"WeakMap"),al=aT;function lT(e,t){return e===t||e!==e&&t!==t}var sT=lT,uT=9007199254740991;function cT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=uT}var dT=cT,aee=Object.prototype,pT="[object Arguments]";function gT(e){return ml(e)&&Ei(e)==pT}var xp=gT,lg=Object.prototype,fT=lg.hasOwnProperty,yT=lg.propertyIsEnumerable,lee=xp(function(){return arguments}())?xp:function(e){return ml(e)&&fT.call(e,"callee")&&!yT.call(e,"callee")},sg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ip=sg&&typeof module=="object"&&module&&!module.nodeType&&module,mT=Ip&&Ip.exports===sg,Cp=mT?ne.Buffer:void 0,see=Cp?Cp.isBuffer:void 0,bT="[object Arguments]",hT="[object Array]",vT="[object Boolean]",wT="[object Date]",kT="[object Error]",xT="[object Function]",IT="[object Map]",CT="[object Number]",AT="[object Object]",ST="[object RegExp]",MT="[object Set]",jT="[object String]",$T="[object WeakMap]",ET="[object ArrayBuffer]",_T="[object DataView]",LT="[object Float32Array]",TT="[object Float64Array]",OT="[object Int8Array]",NT="[object Int16Array]",DT="[object Int32Array]",PT="[object Uint8Array]",zT="[object Uint8ClampedArray]",UT="[object Uint16Array]",RT="[object Uint32Array]",U={};U[LT]=U[TT]=U[OT]=U[NT]=U[DT]=U[PT]=U[zT]=U[UT]=U[RT]=!0;U[bT]=U[hT]=U[ET]=U[vT]=U[_T]=U[wT]=U[kT]=U[xT]=U[IT]=U[CT]=U[AT]=U[ST]=U[MT]=U[jT]=U[$T]=!1;function FT(e){return ml(e)&&dT(e.length)&&!!U[Ei(e)]}var VT=FT;function BT(e){return function(t){return e(t)}}var qT=BT,ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=ug&&typeof module=="object"&&module&&!module.nodeType&&module,GT=ki&&ki.exports===ug,Ja=GT&&ng.process,YT=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Ja&&Ja.binding&&Ja.binding("util")}catch{}}(),Ap=YT,Sp=Ap&&Ap.isTypedArray,uee=Sp?qT(Sp):VT,HT=Object.prototype,cee=HT.hasOwnProperty;function ZT(e,t){return function(r){return e(t(r))}}var QT=ZT,dee=QT(Object.keys,Object),WT=Object.prototype,pee=WT.hasOwnProperty,KT=Rt(Object,"create"),Ci=KT;function JT(){this.__data__=Ci?Ci(null):{},this.size=0}var XT=JT;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=XT;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(sT(e[r][0],t))return r;return-1}var lo=mO,bO=Array.prototype,hO=bO.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():hO.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 LO(e,t){var r=e.__data__;return _O(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=LO;function TO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var OO=TO;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]",Lp="[object DataView]",iN=Ue(ll),nN=Ue(Ai),oN=Ue(sl),aN=Ue(ul),lN=Ue(al),Lt=Ei;(ll&&Lt(new ll(new ArrayBuffer(1)))!=Lp||Ai&&Lt(new Ai)!=jp||sl&&Lt(sl.resolve())!=$p||ul&&Lt(new ul)!=Ep||al&&Lt(new al)!=_p)&&(Lt=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 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 Tp=Nt?Nt.prototype:void 0,yee=Tp?Tp.valueOf:void 0,gN=Object.prototype,mee=gN.hasOwnProperty,fN=Object.prototype,bee=fN.hasOwnProperty,hee=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 bN(e){return typeof e?.translate=="function"}function Np(e,t,r){return e&&mN(e)&&bN(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 hN(e){return{async initialize({cesdk:t}){if(t==null)return;c_(t,we,"1.74.0-rc.1"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;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,g=u.length>0;if(!d&&!g){a(),o();return}g||a(),d||o();let p=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(),p.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,p.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=hN,kN=e=>({name:we,version:"1.74.0-rc.1",...wN(e)}),dg=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
- `,kN=wN,xN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var IN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},CN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},t1=CN,AN=typeof global=="object"&&global&&global.Object===Object&&global,r1=AN,SN=typeof self=="object"&&self&&self.Object===Object&&self,MN=r1||SN||Function("return this")(),oe=MN,jN=oe.Symbol,Ht=jN,i1=Object.prototype,$N=i1.hasOwnProperty,EN=i1.toString,Li=Ht?Ht.toStringTag:void 0;function _N(e){var t=$N.call(e,Li),r=e[Li];try{e[Li]=void 0;var i=!0}catch{}var n=EN.call(e);return i&&(t?e[Li]=r:delete e[Li]),n}var LN=_N,TN=Object.prototype,ON=TN.toString;function NN(e){return ON.call(e)}var DN=NN,PN="[object Null]",zN="[object Undefined]",dg=Ht?Ht.toStringTag:void 0;function UN(e){return e==null?e===void 0?zN:PN:dg&&dg in Object(e)?LN(e):DN(e)}var Yi=UN;function RN(e){return e!=null&&typeof e=="object"}var Pl=RN,wee=Array.isArray;function FN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var n1=FN,VN="[object AsyncFunction]",BN="[object Function]",qN="[object GeneratorFunction]",GN="[object Proxy]";function YN(e){if(!n1(e))return!1;var t=Yi(e);return t==BN||t==qN||t==VN||t==GN}var HN=YN,ZN=oe["__core-js_shared__"],bl=ZN,pg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function QN(e){return!!pg&&pg in e}var WN=QN,KN=Function.prototype,JN=KN.toString;function XN(e){if(e!=null){try{return JN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=XN,eD=/[\\^$.*+?()[\]{}|]/g,tD=/^\[object .+?Constructor\]$/,rD=Function.prototype,iD=Object.prototype,nD=rD.toString,oD=iD.hasOwnProperty,aD=RegExp("^"+nD.call(oD).replace(eD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lD(e){if(!n1(e)||WN(e))return!1;var t=HN(e)?aD:tD;return t.test(Ve(e))}var sD=lD;function uD(e,t){return e?.[t]}var cD=uD;function dD(e,t){var r=cD(e,t);return sD(r)?r:void 0}var Qt=dD,pD=Qt(oe,"WeakMap"),Al=pD;function gD(e,t){return e===t||e!==e&&t!==t}var fD=gD,yD=9007199254740991;function mD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=yD}var bD=mD,kee=Object.prototype,hD="[object Arguments]";function vD(e){return Pl(e)&&Yi(e)==hD}var gg=vD,o1=Object.prototype,wD=o1.hasOwnProperty,kD=o1.propertyIsEnumerable,xee=gg(function(){return arguments}())?gg:function(e){return Pl(e)&&wD.call(e,"callee")&&!kD.call(e,"callee")},a1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fg=a1&&typeof module=="object"&&module&&!module.nodeType&&module,xD=fg&&fg.exports===a1,yg=xD?oe.Buffer:void 0,Iee=yg?yg.isBuffer:void 0,ID="[object Arguments]",CD="[object Array]",AD="[object Boolean]",SD="[object Date]",MD="[object Error]",jD="[object Function]",$D="[object Map]",ED="[object Number]",_D="[object Object]",LD="[object RegExp]",TD="[object Set]",OD="[object String]",ND="[object WeakMap]",DD="[object ArrayBuffer]",PD="[object DataView]",zD="[object Float32Array]",UD="[object Float64Array]",RD="[object Int8Array]",FD="[object Int16Array]",VD="[object Int32Array]",BD="[object Uint8Array]",qD="[object Uint8ClampedArray]",GD="[object Uint16Array]",YD="[object Uint32Array]",R={};R[zD]=R[UD]=R[RD]=R[FD]=R[VD]=R[BD]=R[qD]=R[GD]=R[YD]=!0;R[ID]=R[CD]=R[DD]=R[AD]=R[PD]=R[SD]=R[MD]=R[jD]=R[$D]=R[ED]=R[_D]=R[LD]=R[TD]=R[OD]=R[ND]=!1;function HD(e){return Pl(e)&&bD(e.length)&&!!R[Yi(e)]}var ZD=HD;function QD(e){return function(t){return e(t)}}var WD=QD,l1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=l1&&typeof module=="object"&&module&&!module.nodeType&&module,KD=Ui&&Ui.exports===l1,hl=KD&&r1.process,JD=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||hl&&hl.binding&&hl.binding("util")}catch{}}(),mg=JD,bg=mg&&mg.isTypedArray,Cee=bg?WD(bg):ZD,XD=Object.prototype,Aee=XD.hasOwnProperty;function eP(e,t){return function(r){return e(t(r))}}var tP=eP,See=tP(Object.keys,Object),rP=Object.prototype,Mee=rP.hasOwnProperty,iP=Qt(Object,"create"),Fi=iP;function nP(){this.__data__=Fi?Fi(null):{},this.size=0}var oP=nP;function aP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var lP=aP,sP="__lodash_hash_undefined__",uP=Object.prototype,cP=uP.hasOwnProperty;function dP(e){var t=this.__data__;if(Fi){var r=t[e];return r===sP?void 0:r}return cP.call(t,e)?t[e]:void 0}var pP=dP,gP=Object.prototype,fP=gP.hasOwnProperty;function yP(e){var t=this.__data__;return Fi?t[e]!==void 0:fP.call(t,e)}var mP=yP,bP="__lodash_hash_undefined__";function hP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fi&&t===void 0?bP:t,this}var vP=hP;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=oP;Wt.prototype.delete=lP;Wt.prototype.get=pP;Wt.prototype.has=mP;Wt.prototype.set=vP;var hg=Wt;function wP(){this.__data__=[],this.size=0}var kP=wP;function xP(e,t){for(var r=e.length;r--;)if(fD(e[r][0],t))return r;return-1}var co=xP,IP=Array.prototype,CP=IP.splice;function AP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():CP.call(t,r,1),--this.size,!0}var SP=AP;function MP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var jP=MP;function $P(e){return co(this.__data__,e)>-1}var EP=$P;function _P(e,t){var r=this.__data__,i=co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var LP=_P;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=kP;Kt.prototype.delete=SP;Kt.prototype.get=jP;Kt.prototype.has=EP;Kt.prototype.set=LP;var po=Kt,TP=Qt(oe,"Map"),Vi=TP;function OP(){this.size=0,this.__data__={hash:new hg,map:new(Vi||po),string:new hg}}var NP=OP;function DP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var PP=DP;function zP(e,t){var r=e.__data__;return PP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=zP;function UP(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var RP=UP;function FP(e){return go(this,e).get(e)}var VP=FP;function BP(e){return go(this,e).has(e)}var qP=BP;function GP(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var YP=GP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=NP;Jt.prototype.delete=RP;Jt.prototype.get=VP;Jt.prototype.has=qP;Jt.prototype.set=YP;var s1=Jt;function HP(){this.__data__=new po,this.size=0}var ZP=HP;function QP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var WP=QP;function KP(e){return this.__data__.get(e)}var JP=KP;function XP(e){return this.__data__.has(e)}var ez=XP,tz=200;function rz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Vi||i.length<tz-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new s1(i)}return r.set(e,t),this.size=r.size,this}var iz=rz;function Hi(e){var t=this.__data__=new po(e);this.size=t.size}Hi.prototype.clear=ZP;Hi.prototype.delete=WP;Hi.prototype.get=JP;Hi.prototype.has=ez;Hi.prototype.set=iz;var nz=Object.prototype,jee=nz.propertyIsEnumerable,oz=Qt(oe,"DataView"),Sl=oz,az=Qt(oe,"Promise"),Ml=az,lz=Qt(oe,"Set"),jl=lz,vg="[object Map]",sz="[object Object]",wg="[object Promise]",kg="[object Set]",xg="[object WeakMap]",Ig="[object DataView]",uz=Ve(Sl),cz=Ve(Vi),dz=Ve(Ml),pz=Ve(jl),gz=Ve(Al),qt=Yi;(Sl&&qt(new Sl(new ArrayBuffer(1)))!=Ig||Vi&&qt(new Vi)!=vg||Ml&&qt(Ml.resolve())!=wg||jl&&qt(new jl)!=kg||Al&&qt(new Al)!=xg)&&(qt=function(e){var t=Yi(e),r=t==sz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case uz:return Ig;case cz:return vg;case dz:return wg;case pz:return kg;case gz:return xg}return t});var $ee=oe.Uint8Array,fz="__lodash_hash_undefined__";function yz(e){return this.__data__.set(e,fz),this}var mz=yz;function bz(e){return this.__data__.has(e)}var hz=bz;function $l(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new s1;++t<r;)this.add(e[t])}$l.prototype.add=$l.prototype.push=mz;$l.prototype.has=hz;var Cg=Ht?Ht.prototype:void 0,Eee=Cg?Cg.valueOf:void 0,vz=Object.prototype,_ee=vz.hasOwnProperty,wz=Object.prototype,Lee=wz.hasOwnProperty,Tee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Oee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Nee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function u1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function El(e,t){let r=await u1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function kz(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return u1(i,t)}function xz(e){return e!==void 0}var fo=xz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Zi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Qi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zl=class c1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new c1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},d1=class p1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new p1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Iz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Cz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Az=Cz,vl="ly.img.ai.temp";async function Sz(e,t){return e.engine.asset.findAllSources().includes(vl)||e.engine.asset.addLocalSource(vl),e.engine.asset.apply(vl,t)}function Mz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function g1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function jz(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function $z(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ul(e){return e instanceof Error&&e.name==="AbortError"}function Ez(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function _z(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
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="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var 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 g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},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,LN=o1.hasOwnProperty,TN=o1.toString,Li=Ht?Ht.toStringTag:void 0;function ON(e){var t=LN.call(e,Li),r=e[Li];try{e[Li]=void 0;var i=!0}catch{}var n=TN.call(e);return i&&(t?e[Li]=r:delete e[Li]),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__"],bl=KN,gg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.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 bD=mD,hD=9007199254740991;function vD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=hD}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]",LD="[object Map]",TD="[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[LD]=R[TD]=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,hl=eP&&n1.process,tP=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||hl&&hl.binding&&hl.binding("util")}catch{}}(),bg=tP,hg=bg&&bg.isTypedArray,jee=hg?XD(hg):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,bP=mP.hasOwnProperty;function hP(e){var t=this.__data__;return Fi?t[e]!==void 0:bP.call(t,e)}var vP=hP,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(bD(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 LP(e){return co(this.__data__,e)>-1}var TP=LP;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=TP;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,Lee=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 Tee=oe.Uint8Array,bz="__lodash_hash_undefined__";function hz(e){return this.__data__.set(e,bz),this}var vz=hz;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 g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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 Lz(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 Tz(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 Lz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),Tz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Mz(e)}))}function Tz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Ag=Lz,Oz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Rl=Oz;function Nz(e,t,r){switch(t){case"image":return Dz(e,r[t]);case"video":return Pz(e,r[t]);case"sticker":return zz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Dz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Pz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Rl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function zz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Uz=Nz;async function Rz(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return Fz(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return Vz(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return Bz(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return qz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Fz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Vz(e,t,r){let i=t.width,n=t.height,a=await jz(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function Bz(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function qz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var f1=Rz;function Gz(e){switch(e.userFlow){case"placeholder":return Hz(e);case"generation-only":return Yz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Yz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=g1(),c=await f1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Hz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=g1(),c=Uz(s,a,o);if(i=await Sz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await f1(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Zz=Gz;function Fl(e){return`${e}.generating`}function Qz(e){return`${e}.abort`}function Wz(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(Qz(d),()=>{}),y=c.global(Fl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await Zz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Ag(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Kz(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Ul(b))return;Ag(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Kz(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var y1=Wz;function Bi(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function Jz({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return y1(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Xz=Jz;function m1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=m1(e,t.$ref),n={...Pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Pi(e,t[n],r));return i}return t}function eU(e){return Pi(e,{...e})}function tU(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function rU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return iU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function iU(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=nU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function nU(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var b1=rU;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function h1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function v1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?oU(e,c,r,i,n,a,o,s):w1(e,c,r,i,n,a,o,s);case"boolean":return k1(e,c,r,i,n,a,o,s);case"number":case"integer":return x1(e,c,r,i,n,a,o,s);case"object":return _l(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return aU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function _l(e,t,r,i,n,a,o,s){let c=b1(t.schema??{},i).reduce((l,u)=>{let d=v1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function w1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Ae(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Qi(d,m,f,t.schema.default,""),k=l(g,v),w=lU(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function oU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),{labels:y,icons:f}=h1(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),v=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function k1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function x1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function aU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=h1(t.schema),x=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:w1,boolean:k1,integer:x1,object:_l},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:Ae(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>_l(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Qi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function lU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var sU=v1,uU={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Sg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Mg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Sg(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Sg(p);n[a(l.id,p)]=y}})}});let c={...uU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function jg(e){return typeof e.document=="function"?e.document():e.document}function $g(e,t,r){let i=eU(e),n=m1(i,t.inputReference);if(!tU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=b1(a,t);return{inputSchema:a,properties:o}}function Eg(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=sU(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});y1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function cU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=jg(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=$g(c,s,a.debug);return Mg(y,i,r,i.kind),Eg(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(jg(s)).then(p=>{let{inputSchema:y,properties:f}=$g(p,s,a.debug);Mg(f,i,r,i.kind),u=Eg(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var dU=cU;async function pU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Xz(e,t);case"schema":return dU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gU=pU;function fU(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new xN(o,r)),o}return i}var yU=fU;function mU(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var bU=mU,wl="@imgly/plugin-ai-generation",hU=`
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),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await 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:g}}=t,p=c.global(Jz(d),()=>{}),y=c.global(Fl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await 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(b.status==="aborted")return;if(b.status==="error"){Sg(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;eU(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Ul(b))return;Sg(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function 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 b1=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:g}=s(c,{cesdk:a,isGenerating:u});return b1(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var rU=tU;function h1(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=h1(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,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Ae(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Qi(d,m,f,t.schema.default,""),k=l(g,v),w=cU(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function sU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),{labels:y,icons:f}=w1(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),v=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function I1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function C1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function uU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=w1(t.schema),x=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:x1,boolean:I1,integer:C1,object:_l},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:Ae(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>_l(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Qi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function 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(g=>{let p=String(g),y=d[p]||Mg(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Mg(p);n[a(l.id,p)]=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=h1(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(f=>{let m=dU(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});b1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,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:p,properties:y}=Eg(c,s,a.debug);return jg(y,i,r,i.kind),_g(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve($g(s)).then(p=>{let{inputSchema:y,properties:f}=Eg(p,s,a.debug);jg(f,i,r,i.kind),u=_g(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var 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 bU(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 hU=bU;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=`
354
354
  <svg>
355
355
  <symbol
356
356
  fill="none"
@@ -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
- `,vU=hU;function wU(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await I1(2e3),await kU(t,e,r)):i(t,r)}async function kU(e,t,r){switch(t.kind){case"image":return xU(e,t,r);case"video":return IU(e,t,r);case"text":return CU(e,t,r);case"audio":return SU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xU(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await kz(s,r),l=await El(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
- `,"+")}`}}async function IU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function CU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Ti(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ti(n,o)}else"customPrompt"in e?a=Ti(n,"custom"):a=Ti(n,"improved");else a=Ti(n,"generated");return AU(a,r.abortSignal)}async function*AU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await I1(100)}return{kind:"text",text:e}}function Ti(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function SU(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:MU(220,i),duration:i,thumbnailUrl:void 0}}function MU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return jU(i,44100)}function jU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function I1(e){return new Promise(t=>{setTimeout(t,e)})}var $U=wU,C1="USER_CANCEL";function EU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Iz([...e.provider.output.middleware??[],...r?.middlewares??[],Az({enable:r?.debug}),$U({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:$z(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===C1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var _U=EU;async function LU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=zl.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=yU(a),s=bU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=_U({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gU(a,c);Ez(r.cesdk,"@imgly/plugin-ai-generation",vU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return d1.get().register(u),u}var kl=LU;function TU(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new IN(n,r,i);return r.engine.asset.addSource(a),a.id}var OU=TU;function zi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>kl(e,u,r,i)));o.push(...l),a=PU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>kl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>kl(e,d,r,i)));o.push(...u),a=DU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function DU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&_g(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&_g(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Bi(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function _g(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fl(r.id),!1).value)}var zU=NU,yo="ly.img.ai.editMode",A1="ly.img.ai.metadata";async function UU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new t1(n,A1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var RU=UU;function FU(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var VU=FU;function BU(e){return`ly.img.ai.${e}.canvasMenu`}var qU=BU;function GU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=qU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var YU=GU;function HU(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return ZU(e,t);case"image":return QU(e,t);case"video":return WU(e,t);case"audio":return KU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ZU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function QU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await El(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await El(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function WU(e,t){throw new Error("Function not implemented.")}async function KU(e,t){throw new Error("Function not implemented.")}var JU=HU;function XU(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var eR=XU,tR=class S1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new S1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=tR;function rR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new t1(e.cesdk.engine,A1),l=e.lock??!0?eR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(C1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await JU(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Lg=rR;function iR(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=YU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=nR(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=d1.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(fo);return S=VU(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Bi(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Bi(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Lg({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Lg({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function nR(e){return e.map(t=>t==="ly.img.separator"?t:zl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var oR=iR;async function aR(e){let t=await oR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await RU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var lR=aR,sR=typeof global=="object"&&global&&global.Object===Object&&global,M1=sR,uR=typeof self=="object"&&self&&self.Object===Object&&self,cR=M1||uR||Function("return this")(),ae=cR,dR=ae.Symbol,Zt=dR,j1=Object.prototype,pR=j1.hasOwnProperty,gR=j1.toString,Oi=Zt?Zt.toStringTag:void 0;function fR(e){var t=pR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=gR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var yR=fR,mR=Object.prototype,bR=mR.toString;function hR(e){return bR.call(e)}var vR=hR,wR="[object Null]",kR="[object Undefined]",Tg=Zt?Zt.toStringTag:void 0;function xR(e){return e==null?e===void 0?kR:wR:Tg&&Tg in Object(e)?yR(e):vR(e)}var Wi=xR;function IR(e){return e!=null&&typeof e=="object"}var Vl=IR,Dee=Array.isArray;function CR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $1=CR,AR="[object AsyncFunction]",SR="[object Function]",MR="[object GeneratorFunction]",jR="[object Proxy]";function $R(e){if(!$1(e))return!1;var t=Wi(e);return t==SR||t==MR||t==AR||t==jR}var ER=$R,_R=ae["__core-js_shared__"],xl=_R,Og=function(){var e=/[^.]+$/.exec(xl&&xl.keys&&xl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function LR(e){return!!Og&&Og in e}var TR=LR,OR=Function.prototype,NR=OR.toString;function DR(e){if(e!=null){try{return NR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=DR,PR=/[\\^$.*+?()[\]{}|]/g,zR=/^\[object .+?Constructor\]$/,UR=Function.prototype,RR=Object.prototype,FR=UR.toString,VR=RR.hasOwnProperty,BR=RegExp("^"+FR.call(VR).replace(PR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qR(e){if(!$1(e)||TR(e))return!1;var t=ER(e)?BR:zR;return t.test(Be(e))}var GR=qR;function YR(e,t){return e?.[t]}var HR=YR;function ZR(e,t){var r=HR(e,t);return GR(r)?r:void 0}var Xt=ZR,QR=Xt(ae,"WeakMap"),Ll=QR;function WR(e,t){return e===t||e!==e&&t!==t}var KR=WR,JR=9007199254740991;function XR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JR}var eF=XR,Pee=Object.prototype,tF="[object Arguments]";function rF(e){return Vl(e)&&Wi(e)==tF}var Ng=rF,E1=Object.prototype,iF=E1.hasOwnProperty,nF=E1.propertyIsEnumerable,zee=Ng(function(){return arguments}())?Ng:function(e){return Vl(e)&&iF.call(e,"callee")&&!nF.call(e,"callee")},_1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dg=_1&&typeof module=="object"&&module&&!module.nodeType&&module,oF=Dg&&Dg.exports===_1,Pg=oF?ae.Buffer:void 0,Uee=Pg?Pg.isBuffer:void 0,aF="[object Arguments]",lF="[object Array]",sF="[object Boolean]",uF="[object Date]",cF="[object Error]",dF="[object Function]",pF="[object Map]",gF="[object Number]",fF="[object Object]",yF="[object RegExp]",mF="[object Set]",bF="[object String]",hF="[object WeakMap]",vF="[object ArrayBuffer]",wF="[object DataView]",kF="[object Float32Array]",xF="[object Float64Array]",IF="[object Int8Array]",CF="[object Int16Array]",AF="[object Int32Array]",SF="[object Uint8Array]",MF="[object Uint8ClampedArray]",jF="[object Uint16Array]",$F="[object Uint32Array]",F={};F[kF]=F[xF]=F[IF]=F[CF]=F[AF]=F[SF]=F[MF]=F[jF]=F[$F]=!0;F[aF]=F[lF]=F[vF]=F[sF]=F[wF]=F[uF]=F[cF]=F[dF]=F[pF]=F[gF]=F[fF]=F[yF]=F[mF]=F[bF]=F[hF]=!1;function EF(e){return Vl(e)&&eF(e.length)&&!!F[Wi(e)]}var _F=EF;function LF(e){return function(t){return e(t)}}var TF=LF,L1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=L1&&typeof module=="object"&&module&&!module.nodeType&&module,OF=Ri&&Ri.exports===L1,Il=OF&&M1.process,NF=function(){try{var e=Ri&&Ri.require&&Ri.require("util").types;return e||Il&&Il.binding&&Il.binding("util")}catch{}}(),zg=NF,Ug=zg&&zg.isTypedArray,Ree=Ug?TF(Ug):_F,DF=Object.prototype,Fee=DF.hasOwnProperty;function PF(e,t){return function(r){return e(t(r))}}var zF=PF,Vee=zF(Object.keys,Object),UF=Object.prototype,Bee=UF.hasOwnProperty,RF=Xt(Object,"create"),qi=RF;function FF(){this.__data__=qi?qi(null):{},this.size=0}var VF=FF;function BF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qF=BF,GF="__lodash_hash_undefined__",YF=Object.prototype,HF=YF.hasOwnProperty;function ZF(e){var t=this.__data__;if(qi){var r=t[e];return r===GF?void 0:r}return HF.call(t,e)?t[e]:void 0}var QF=ZF,WF=Object.prototype,KF=WF.hasOwnProperty;function JF(e){var t=this.__data__;return qi?t[e]!==void 0:KF.call(t,e)}var XF=JF,eV="__lodash_hash_undefined__";function tV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qi&&t===void 0?eV:t,this}var rV=tV;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=VF;er.prototype.delete=qF;er.prototype.get=QF;er.prototype.has=XF;er.prototype.set=rV;var Rg=er;function iV(){this.__data__=[],this.size=0}var nV=iV;function oV(e,t){for(var r=e.length;r--;)if(KR(e[r][0],t))return r;return-1}var mo=oV,aV=Array.prototype,lV=aV.splice;function sV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lV.call(t,r,1),--this.size,!0}var uV=sV;function cV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var dV=cV;function pV(e){return mo(this.__data__,e)>-1}var gV=pV;function fV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var yV=fV;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=nV;tr.prototype.delete=uV;tr.prototype.get=dV;tr.prototype.has=gV;tr.prototype.set=yV;var bo=tr,mV=Xt(ae,"Map"),Gi=mV;function bV(){this.size=0,this.__data__={hash:new Rg,map:new(Gi||bo),string:new Rg}}var hV=bV;function vV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wV=vV;function kV(e,t){var r=e.__data__;return wV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ho=kV;function xV(e){var t=ho(this,e).delete(e);return this.size-=t?1:0,t}var IV=xV;function CV(e){return ho(this,e).get(e)}var AV=CV;function SV(e){return ho(this,e).has(e)}var MV=SV;function jV(e,t){var r=ho(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $V=jV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=hV;rr.prototype.delete=IV;rr.prototype.get=AV;rr.prototype.has=MV;rr.prototype.set=$V;var T1=rr;function EV(){this.__data__=new bo,this.size=0}var _V=EV;function LV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var TV=LV;function OV(e){return this.__data__.get(e)}var NV=OV;function DV(e){return this.__data__.has(e)}var PV=DV,zV=200;function UV(e,t){var r=this.__data__;if(r instanceof bo){var i=r.__data__;if(!Gi||i.length<zV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new T1(i)}return r.set(e,t),this.size=r.size,this}var RV=UV;function Ki(e){var t=this.__data__=new bo(e);this.size=t.size}Ki.prototype.clear=_V;Ki.prototype.delete=TV;Ki.prototype.get=NV;Ki.prototype.has=PV;Ki.prototype.set=RV;var FV=Object.prototype,qee=FV.propertyIsEnumerable,VV=Xt(ae,"DataView"),Tl=VV,BV=Xt(ae,"Promise"),Ol=BV,qV=Xt(ae,"Set"),Nl=qV,Fg="[object Map]",GV="[object Object]",Vg="[object Promise]",Bg="[object Set]",qg="[object WeakMap]",Gg="[object DataView]",YV=Be(Tl),HV=Be(Gi),ZV=Be(Ol),QV=Be(Nl),WV=Be(Ll),Gt=Wi;(Tl&&Gt(new Tl(new ArrayBuffer(1)))!=Gg||Gi&&Gt(new Gi)!=Fg||Ol&&Gt(Ol.resolve())!=Vg||Nl&&Gt(new Nl)!=Bg||Ll&&Gt(new Ll)!=qg)&&(Gt=function(e){var t=Wi(e),r=t==GV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case YV:return Gg;case HV:return Fg;case ZV:return Vg;case QV:return Bg;case WV:return qg}return t});var Gee=ae.Uint8Array,KV="__lodash_hash_undefined__";function JV(e){return this.__data__.set(e,KV),this}var XV=JV;function eB(e){return this.__data__.has(e)}var tB=eB;function Dl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new T1;++t<r;)this.add(e[t])}Dl.prototype.add=Dl.prototype.push=XV;Dl.prototype.has=tB;var Yg=Zt?Zt.prototype:void 0,Yee=Yg?Yg.valueOf:void 0,rB=Object.prototype,Hee=rB.hasOwnProperty,iB=Object.prototype,Zee=iB.hasOwnProperty,Qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Wee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Kee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function nB(e){return e==null?[]:Array.isArray(e)?e:[e]}var oB=nB;function aB(e){return`
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=Ti(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ti(n,o)}else"customPrompt"in e?a=Ti(n,"custom"):a=Ti(n,"improved");else a=Ti(n,"generated");return 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 Ti(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function $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 v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function A1(e){return new Promise(t=>{setTimeout(t,e)})}var LU=IU,S1="USER_CANCEL";function TU(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}),LU({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}:Lz(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=TU;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,g=zl.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=hU(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);Tz(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}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&Lg(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Lg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function 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:g,panel:p})=>({id:g.id,label:Bi(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function Lg(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(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var 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 Tg(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)?Tg(o.children):n??[]}return Tg(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),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await El(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function 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:g}=await rR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var 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(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=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)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Bi(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Bi(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Og({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Og({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function 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,bR=E1.toString,Oi=Zt?Zt.toStringTag:void 0;function hR(e){var t=mR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=bR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var vR=hR,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]",LR="[object Proxy]";function TR(e){if(!_1(e))return!1;var t=Wi(e);return t==ER||t==_R||t==$R||t==LR}var OR=TR,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"),Ll=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,L1=Object.prototype,lF=L1.hasOwnProperty,sF=L1.propertyIsEnumerable,Vee=Pg(function(){return arguments}())?Pg:function(e){return Vl(e)&&lF.call(e,"callee")&&!sF.call(e,"callee")},T1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zg=T1&&typeof module=="object"&&module&&!module.nodeType&&module,uF=zg&&zg.exports===T1,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]",bF="[object Number]",hF="[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]",LF="[object Uint16Array]",TF="[object Uint32Array]",F={};F[AF]=F[SF]=F[MF]=F[jF]=F[$F]=F[EF]=F[_F]=F[LF]=F[TF]=!0;F[cF]=F[dF]=F[IF]=F[pF]=F[CF]=F[gF]=F[fF]=F[yF]=F[mF]=F[bF]=F[hF]=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 bV=mV;function hV(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=hV;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=bV;tr.prototype.set=vV;var bo=tr,wV=Xt(ae,"Map"),Gi=wV;function kV(){this.size=0,this.__data__={hash:new Vg,map:new(Gi||bo),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 ho=AV;function SV(e){var t=ho(this,e).delete(e);return this.size-=t?1:0,t}var MV=SV;function jV(e){return ho(this,e).get(e)}var $V=jV;function EV(e){return ho(this,e).has(e)}var _V=EV;function LV(e,t){var r=ho(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var TV=LV;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=TV;var N1=rr;function OV(){this.__data__=new bo,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 bo){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 bo(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"),Tl=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(Tl),KV=Be(Gi),JV=Be(Ol),XV=Be(Nl),eB=Be(Ll),Gt=Wi;(Tl&&Gt(new Tl(new ArrayBuffer(1)))!=Hg||Gi&&Gt(new Gi)!=Bg||Ol&&Gt(Ol.resolve())!=qg||Nl&&Gt(new Nl)!=Gg||Ll&&Gt(new Ll)!=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`
416
416
  You are an AI writing assistant tasked with improving a given text based on a specific type of improvement requested. Your goal is to enhance the text while maintaining its original meaning and intent.
417
417
 
418
418
  Here is the original text you will be working with:
@@ -436,7 +436,7 @@ Please follow these steps to improve the text:
436
436
  7. If you cannot make any meaningful improvements, return the original text as is.
437
437
 
438
438
  Once you have made the improvements, only return the improved text and nothing else.
439
- `}var lB=aB,vo="improve",Hg=`ly.img.${vo}`,sB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,uB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function cB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${uB}`]:"Improve Writing"}}),{id:Hg,type:"quick",kind:"text",scopes:["text/edit"],label:`${sB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Hg}.button`,{label:cB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:lB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),pB=dB;function gB(e){return`
439
+ `}var dB=cB,vo="improve",Qg=`ly.img.${vo}`,pB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,gB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function fB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${gB}`]:"Improve Writing"}}),{id:Qg,type:"quick",kind:"text",scopes:["text/edit"],label:`${pB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Qg}.button`,{label:fB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:dB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),mB=yB;function bB(e){return`
440
440
  You are tasked with fixing spelling and grammar errors in a given text. Your goal is to improve the text while maintaining its original meaning and style. Here is the text you need to correct:
441
441
 
442
442
  <original_text>
@@ -466,7 +466,7 @@ Please follow these steps to complete the task:
466
466
  After making the necessary corrections, please provide only the improved output and nothing else.
467
467
 
468
468
  Remember to preserve the original structure and formatting of the text as much as possible while making your corrections.
469
- `}var fB=gB,wo="fix",Zg=`ly.img.${wo}`,yB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,mB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function bB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var hB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${mB}`]:"Fix Spelling & Grammar"}}),{id:Zg,type:"quick",kind:"text",scopes:["text/edit"],label:`${yB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Zg}.button`,{label:bB(a),icon:"@imgly/CheckmarkAll",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:fB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to fix text. Please try again.",duration:"medium"})}}})}}),vB=hB;function wB(e){return`
469
+ `}var hB=bB,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:hB(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`
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 kB=wB,ko="shorter",Qg=`ly.img.${ko}`,xB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,IB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function CB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var AB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${IB}`]:"Make Shorter"}}),{id:Qg,type:"quick",kind:"text",scopes:["text/edit"],label:`${xB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Qg}.button`,{label:CB(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:kB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),SB=AB;function MB(e){return`
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`
501
501
  You are tasked with expanding a given text to make it longer. Here's how to proceed:
502
502
 
503
503
  First, you will be provided with the original text:
@@ -531,7 +531,7 @@ Only return the longer text and nothing else.
531
531
  Make sure to only return the expanded text and nothing else. Do not include any additional information or comments in your response about what you have done.
532
532
 
533
533
  Do not add the original text or the original_text tags to the response.
534
- `}var jB=MB,xo="longer",Wg=`ly.img.${xo}`,$B=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,EB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function _B(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var LB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${EB}`]:"Make Longer"}}),{id:Wg,type:"quick",kind:"text",scopes:["text/edit"],label:`${$B}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Wg}.button`,{label:_B(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:jB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),TB=LB;function OB(e,t){return`
534
+ `}var LB=_B,xo="longer",Jg=`ly.img.${xo}`,TB=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,OB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function NB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var DB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${OB}`]:"Make Longer"}}),{id:Jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${TB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Jg}.button`,{label:NB(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:LB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),PB=DB;function zB(e,t){return`
535
535
  You will be given a piece of text and a desired tone. Your task is to rewrite the text to match the desired tone while preserving the original meaning and key information. Here's how to proceed:
536
536
 
537
537
  First, you will be provided with the original text:
@@ -553,7 +553,7 @@ To change the tone of the text:
553
553
  6. Only return the rewritten text without any additional commentary, tags or explanation.
554
554
 
555
555
  Now, rewrite the text to match the desired tone. Your response should contain only the rewritten text, without any additional explanations or comments. Do not use any tags in your response.
556
- `}var NB=OB,Io="changeTone",Ni=`ly.img.${Io}`,DB=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function Kg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var PB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],zB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${DB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:Kg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{PB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Kg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:NB(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),UB=zB,O1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},RB=Object.keys(O1);function FB(e,t){let r=O1[t]||t;return`
556
+ `}var UB=zB,Io="changeTone",Ni=`ly.img.${Io}`,RB=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function Xg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var FB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],VB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${RB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:Xg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{FB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Xg(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:UB(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),BB=VB,D1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},qB=Object.keys(D1);function GB(e,t){let r=D1[t]||t;return`
557
557
  You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
558
558
 
559
559
  1. Here is the source text to be translated:
@@ -569,7 +569,7 @@ ${r}
569
569
  3. Translate the source text into the target language. Ensure that you maintain the original meaning, tone, and style as closely as possible while adapting to the linguistic and cultural norms of the target language.
570
570
 
571
571
  4. Return only the translated text, without any additional comments, explanations, or metadata. Do not include the original text or any other information in your response.
572
- `}var VB=FB,Co="translate",Di=`ly.img.${Co}`,BB=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function Jg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=RB.map(e=>({id:e})),GB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Di,type:"quick",kind:"text",scopes:["text/edit"],label:`${BB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Di}.popover`,{label:Jg(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Di}.popover.section`,{children:()=>{a.builder.Menu(`${Di}.popover.menu`,{children:()=>{qB.forEach(s=>{t.Button(`${Di}.popover.menu.${s.id}`,{label:Jg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:VB(l,s.id),language:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to translate text. Please try again.",duration:"medium"})}}})})}})}})}})}}),YB=GB;function HB(e,t){return`
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`
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 ZB=HB,Ao="changeTextTo",Ie=`ly.img.${Ao}`,Xg=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,e1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var QB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${e1}`]:"Change Text to...",[`${e1}.prompt`]:"Change Text to...",[`${Xg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Xg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getString(g,"text/text");await a({prompt:ZB(p,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),WB=QB,N1="@imgly/plugin-ai-text-generation-web",KB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function JB(e){return{async initialize({cesdk:t}){if(t==null)return;_z(t,N1,"1.74.0-nightly.20260421"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(vN,kN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),XB(e);let r=zl.get();r.register(pB({cesdk:t})),r.register(vB({cesdk:t})),r.register(SB({cesdk:t})),r.register(TB({cesdk:t})),r.register(UB({cesdk:t})),r.register(YB({cesdk:t})),r.register(WB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(oB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await zU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await lR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:KB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function XB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var eq=JB,tq=e=>({name:N1,version:"1.74.0-nightly.20260421",...eq(e)}),D1=tq;var rq=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var iq=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},nq=typeof global=="object"&&global&&global.Object===Object&&global,vf=nq,oq=typeof self=="object"&&self&&self.Object===Object&&self,aq=vf||oq||Function("return this")(),le=aq,lq=le.Symbol,ar=lq,wf=Object.prototype,sq=wf.hasOwnProperty,uq=wf.toString,Ji=ar?ar.toStringTag:void 0;function cq(e){var t=sq.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=uq.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var dq=cq,pq=Object.prototype,gq=pq.toString;function fq(e){return gq.call(e)}var yq=fq,mq="[object Null]",bq="[object Undefined]",P1=ar?ar.toStringTag:void 0;function hq(e){return e==null?e===void 0?bq:mq:P1&&P1 in Object(e)?dq(e):yq(e)}var dn=hq;function vq(e){return e!=null&&typeof e=="object"}var ss=vq,rte=Array.isArray;function wq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var kf=wq,kq="[object AsyncFunction]",xq="[object Function]",Iq="[object GeneratorFunction]",Cq="[object Proxy]";function Aq(e){if(!kf(e))return!1;var t=dn(e);return t==xq||t==Iq||t==kq||t==Cq}var Sq=Aq,Mq=le["__core-js_shared__"],Bl=Mq,z1=function(){var e=/[^.]+$/.exec(Bl&&Bl.keys&&Bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jq(e){return!!z1&&z1 in e}var $q=jq,Eq=Function.prototype,_q=Eq.toString;function Lq(e){if(e!=null){try{return _q.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Lq,Tq=/[\\^$.*+?()[\]{}|]/g,Oq=/^\[object .+?Constructor\]$/,Nq=Function.prototype,Dq=Object.prototype,Pq=Nq.toString,zq=Dq.hasOwnProperty,Uq=RegExp("^"+Pq.call(zq).replace(Tq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Rq(e){if(!kf(e)||$q(e))return!1;var t=Sq(e)?Uq:Oq;return t.test(qe(e))}var Fq=Rq;function Vq(e,t){return e?.[t]}var Bq=Vq;function qq(e,t){var r=Bq(e,t);return Fq(r)?r:void 0}var sr=qq,Gq=sr(le,"WeakMap"),Wl=Gq;function Yq(e,t){return e===t||e!==e&&t!==t}var Hq=Yq,Zq=9007199254740991;function Qq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Zq}var Wq=Qq,ite=Object.prototype,Kq="[object Arguments]";function Jq(e){return ss(e)&&dn(e)==Kq}var U1=Jq,xf=Object.prototype,Xq=xf.hasOwnProperty,eG=xf.propertyIsEnumerable,nte=U1(function(){return arguments}())?U1:function(e){return ss(e)&&Xq.call(e,"callee")&&!eG.call(e,"callee")},If=typeof exports=="object"&&exports&&!exports.nodeType&&exports,R1=If&&typeof module=="object"&&module&&!module.nodeType&&module,tG=R1&&R1.exports===If,F1=tG?le.Buffer:void 0,ote=F1?F1.isBuffer:void 0,rG="[object Arguments]",iG="[object Array]",nG="[object Boolean]",oG="[object Date]",aG="[object Error]",lG="[object Function]",sG="[object Map]",uG="[object Number]",cG="[object Object]",dG="[object RegExp]",pG="[object Set]",gG="[object String]",fG="[object WeakMap]",yG="[object ArrayBuffer]",mG="[object DataView]",bG="[object Float32Array]",hG="[object Float64Array]",vG="[object Int8Array]",wG="[object Int16Array]",kG="[object Int32Array]",xG="[object Uint8Array]",IG="[object Uint8ClampedArray]",CG="[object Uint16Array]",AG="[object Uint32Array]",V={};V[bG]=V[hG]=V[vG]=V[wG]=V[kG]=V[xG]=V[IG]=V[CG]=V[AG]=!0;V[rG]=V[iG]=V[yG]=V[nG]=V[mG]=V[oG]=V[aG]=V[lG]=V[sG]=V[uG]=V[cG]=V[dG]=V[pG]=V[gG]=V[fG]=!1;function SG(e){return ss(e)&&Wq(e.length)&&!!V[dn(e)]}var MG=SG;function jG(e){return function(t){return e(t)}}var $G=jG,Cf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Cf&&typeof module=="object"&&module&&!module.nodeType&&module,EG=on&&on.exports===Cf,ql=EG&&vf.process,_G=function(){try{var e=on&&on.require&&on.require("util").types;return e||ql&&ql.binding&&ql.binding("util")}catch{}}(),V1=_G,B1=V1&&V1.isTypedArray,ate=B1?$G(B1):MG,LG=Object.prototype,lte=LG.hasOwnProperty;function TG(e,t){return function(r){return e(t(r))}}var OG=TG,ste=OG(Object.keys,Object),NG=Object.prototype,ute=NG.hasOwnProperty,DG=sr(Object,"create"),ln=DG;function PG(){this.__data__=ln?ln(null):{},this.size=0}var zG=PG;function UG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RG=UG,FG="__lodash_hash_undefined__",VG=Object.prototype,BG=VG.hasOwnProperty;function qG(e){var t=this.__data__;if(ln){var r=t[e];return r===FG?void 0:r}return BG.call(t,e)?t[e]:void 0}var GG=qG,YG=Object.prototype,HG=YG.hasOwnProperty;function ZG(e){var t=this.__data__;return ln?t[e]!==void 0:HG.call(t,e)}var QG=ZG,WG="__lodash_hash_undefined__";function KG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?WG:t,this}var JG=KG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=zG;ur.prototype.delete=RG;ur.prototype.get=GG;ur.prototype.has=QG;ur.prototype.set=JG;var q1=ur;function XG(){this.__data__=[],this.size=0}var eY=XG;function tY(e,t){for(var r=e.length;r--;)if(Hq(e[r][0],t))return r;return-1}var So=tY,rY=Array.prototype,iY=rY.splice;function nY(e){var t=this.__data__,r=So(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iY.call(t,r,1),--this.size,!0}var oY=nY;function aY(e){var t=this.__data__,r=So(t,e);return r<0?void 0:t[r][1]}var lY=aY;function sY(e){return So(this.__data__,e)>-1}var uY=sY;function cY(e,t){var r=this.__data__,i=So(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dY=cY;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=eY;cr.prototype.delete=oY;cr.prototype.get=lY;cr.prototype.has=uY;cr.prototype.set=dY;var Mo=cr,pY=sr(le,"Map"),sn=pY;function gY(){this.size=0,this.__data__={hash:new q1,map:new(sn||Mo),string:new q1}}var fY=gY;function yY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mY=yY;function bY(e,t){var r=e.__data__;return mY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jo=bY;function hY(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t}var vY=hY;function wY(e){return jo(this,e).get(e)}var kY=wY;function xY(e){return jo(this,e).has(e)}var IY=xY;function CY(e,t){var r=jo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AY=CY;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=fY;dr.prototype.delete=vY;dr.prototype.get=kY;dr.prototype.has=IY;dr.prototype.set=AY;var Af=dr;function SY(){this.__data__=new Mo,this.size=0}var MY=SY;function jY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $Y=jY;function EY(e){return this.__data__.get(e)}var _Y=EY;function LY(e){return this.__data__.has(e)}var TY=LY,OY=200;function NY(e,t){var r=this.__data__;if(r instanceof Mo){var i=r.__data__;if(!sn||i.length<OY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Af(i)}return r.set(e,t),this.size=r.size,this}var DY=NY;function pn(e){var t=this.__data__=new Mo(e);this.size=t.size}pn.prototype.clear=MY;pn.prototype.delete=$Y;pn.prototype.get=_Y;pn.prototype.has=TY;pn.prototype.set=DY;var PY=Object.prototype,cte=PY.propertyIsEnumerable,zY=sr(le,"DataView"),Kl=zY,UY=sr(le,"Promise"),Jl=UY,RY=sr(le,"Set"),Xl=RY,G1="[object Map]",FY="[object Object]",Y1="[object Promise]",H1="[object Set]",Z1="[object WeakMap]",Q1="[object DataView]",VY=qe(Kl),BY=qe(sn),qY=qe(Jl),GY=qe(Xl),YY=qe(Wl),ir=dn;(Kl&&ir(new Kl(new ArrayBuffer(1)))!=Q1||sn&&ir(new sn)!=G1||Jl&&ir(Jl.resolve())!=Y1||Xl&&ir(new Xl)!=H1||Wl&&ir(new Wl)!=Z1)&&(ir=function(e){var t=dn(e),r=t==FY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case VY:return Q1;case BY:return G1;case qY:return Y1;case GY:return H1;case YY:return Z1}return t});var dte=le.Uint8Array,HY="__lodash_hash_undefined__";function ZY(e){return this.__data__.set(e,HY),this}var QY=ZY;function WY(e){return this.__data__.has(e)}var KY=WY;function es(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Af;++t<r;)this.add(e[t])}es.prototype.add=es.prototype.push=QY;es.prototype.has=KY;var W1=ar?ar.prototype:void 0,pte=W1?W1.valueOf:void 0,JY=Object.prototype,gte=JY.hasOwnProperty,XY=Object.prototype,fte=XY.hasOwnProperty,yte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),bte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Sf(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function eH(e,t){let r=await Sf(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function tH(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Sf(i,t)}function rH(e){return e!==void 0}var iH=rH;function us(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function gn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function fn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Mf=class jf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},nH=class $f{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new $f),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function oH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function aH({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var lH=aH,Gl="ly.img.ai.temp";async function sH(e,t){return e.engine.asset.findAllSources().includes(Gl)||e.engine.asset.addLocalSource(Gl),e.engine.asset.apply(Gl,t)}function uH(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Ef(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function cH(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function dH(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function cs(e){return e instanceof Error&&e.name==="AbortError"}function pH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function gH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
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[g]=o.block.findAllSelected(),p=o.block.getString(g,"text/text");await a({prompt:JB(p,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),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.74.0-rc.1"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(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.74.0-rc.1",...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="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var 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 g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},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,bq=mq.toString;function hq(e){return bq.call(e)}var vq=hq,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 Lq(e){return!!R1&&R1 in e}var Tq=Lq,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)||Tq(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]",bG="[object String]",hG="[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[bG]=V[hG]=!1;function EG(e){return ss(e)&&eG(e.length)&&!!V[dn(e)]}var _G=EG;function LG(e){return function(t){return e(t)}}var TG=LG,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?TG(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 bY(){this.size=0,this.__data__={hash:new Y1,map:new(sn||Mo),string:new Y1}}var hY=bY;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=hY;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 LY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var TY=LY;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=TY;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,bte=rH.hasOwnProperty,iH=Object.prototype,hte=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 g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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 Lf(){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 bH(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 fH(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var yH=fH;function mH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),bH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:uH(e)}))}function bH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var K1=mH,hH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ds=hH;function vH(e,t,r){switch(t){case"image":return wH(e,r[t]);case"video":return kH(e,r[t]);case"sticker":return xH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function wH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function kH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ds,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function xH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var IH=vH;async function CH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return AH(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return SH(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return MH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return jH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function AH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function SH(e,t,r){let i=t.width,n=t.height,a=await cH(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function MH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function jH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var _f=CH;function $H(e){switch(e.userFlow){case"placeholder":return _H(e);case"generation-only":return EH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function EH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ef(),c=await _f(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function _H(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Ef(),c=IH(s,a,o);if(i=await sH(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await _f(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(cs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var LH=$H;function ps(e){return`${e}.generating`}function TH(e){return`${e}.abort`}function OH(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(TH(d),()=>{}),y=c.global(ps(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await LH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){K1(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;NH(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(cs(b))return;K1(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function NH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Lf=OH;function ts(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function DH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ps(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Lf(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var PH=DH;function Tf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function tn(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Tf(e,t.$ref),n={...tn(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=tn(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>tn(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=tn(e,t[n],r));return i}return t}function zH(e){return tn(e,{...e})}function UH(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function RH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return FH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function FH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=VH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function VH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Of=RH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Nf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Df(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?BH(e,c,r,i,n,a,o,s):Pf(e,c,r,i,n,a,o,s);case"boolean":return zf(e,c,r,i,n,a,o,s);case"number":case"integer":return Uf(e,c,r,i,n,a,o,s);case"object":return rs(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return qH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function rs(e,t,r,i,n,a,o,s){let c=Of(t.schema??{},i).reduce((l,u)=>{let d=Df(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Pf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=fn(d,m,f,t.schema.default,""),k=l(g,v),w=GH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function BH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),{labels:y,icons:f}=Nf(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),v=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function zf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Uf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function qH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Nf(t.schema),x=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Pf,boolean:zf,integer:Uf,object:rs},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:je(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>rs(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=fn(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function GH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var YH=Df,HH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function J1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function X1(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||J1(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||J1(p);n[a(l.id,p)]=y}})}});let c={...HH,...n};Object.keys(c).length>0&&us(r.cesdk,{en:c})}function ef(e){return typeof e.document=="function"?e.document():e.document}function tf(e,t,r){let i=zH(e),n=Tf(i,t.inputReference);if(!UH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Of(a,t);return{inputSchema:a,properties:o}}function rf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=YH(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Lf(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function ZH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=ef(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=tf(c,s,a.debug);return X1(y,i,r,i.kind),rf(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ef(s)).then(p=>{let{inputSchema:y,properties:f}=tf(p,s,a.debug);X1(f,i,r,i.kind),u=rf(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var QH=ZH;async function WH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return PH(e,t);case"schema":return QH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var KH=WH;function JH(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new rq(o,r)),o}return i}var XH=JH;function eZ(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var tZ=eZ,Yl="@imgly/plugin-ai-generation",rZ=`
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 hH(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=hH;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 LH(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 LH(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 Tf=jH;function TH(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=Lf(),c=await Tf(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=Lf(),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),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Tf(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=TH;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:g}}=t,p=c.global(PH(d),()=>{}),y=c.global(ps(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await 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(b.status==="aborted")return;if(b.status==="error"){X1(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;UH(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(cs(b))return;X1(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function 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:g}=s(c,{cesdk:a,isGenerating:u});return Of(c,t,n,d,g,{...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,g=`${r.id}.${d}`,p=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=fn(d,m,f,t.schema.default,""),k=l(g,v),w=QH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function HH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),{labels:y,icons:f}=Pf(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),v=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Rf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function ZH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Pf(t.schema),x=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Uf,boolean:Rf,integer:Ff,object:rs},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:je(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>rs(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=fn(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function 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(g=>{let p=String(g),y=d[p]||ef(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||ef(p);n[a(l.id,p)]=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(f=>{let m=WH(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Of(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,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:p,properties:y}=nf(c,s,a.debug);return tf(y,i,r,i.kind),of(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(rf(s)).then(p=>{let{inputSchema:y,properties:f}=nf(p,s,a.debug);tf(f,i,r,i.kind),u=of(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var 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=`
590
590
  <svg>
591
591
  <symbol
592
592
  fill="none"
@@ -647,8 +647,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
647
647
 
648
648
  </symbol>
649
649
  </svg>
650
- `,iZ=rZ;function nZ(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Rf(2e3),await oZ(t,e,r)):i(t,r)}async function oZ(e,t,r){switch(t.kind){case"image":return aZ(e,t,r);case"video":return lZ(e,t,r);case"text":return sZ(e,t,r);case"audio":return cZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function aZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await tH(s,r),l=await eH(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
- `,"+")}`}}async function lZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function sZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Xi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Xi(n,o)}else"customPrompt"in e?a=Xi(n,"custom"):a=Xi(n,"improved");else a=Xi(n,"generated");return uZ(a,r.abortSignal)}async function*uZ(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Rf(100)}return{kind:"text",text:e}}function Xi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function cZ(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:dZ(220,i),duration:i,thumbnailUrl:void 0}}function dZ(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return pZ(i,44100)}function pZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Rf(e){return new Promise(t=>{setTimeout(t,e)})}var gZ=nZ,fZ="USER_CANCEL";function yZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=oH([...e.provider.output.middleware??[],...r?.middlewares??[],lH({enable:r?.debug}),gZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:dH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return cs(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===fZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var mZ=yZ;async function bZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Mf.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=XH(a),s=tZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=mZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await KH(a,c);pH(r.cesdk,"@imgly/plugin-ai-generation",iZ);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return nH.get().register(u),u}var Hl=bZ;function hZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new iq(n,r,i);return r.engine.asset.addSource(a),a.id}var vZ=hZ;function rn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function wZ(e,t,r,i){let{cesdk:n}=r;us(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Hl(e,u,r,i)));o.push(...l),a=xZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Hl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Hl(e,d,r,i)));o.push(...u),a=kZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=vZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(iH)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function kZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&nf(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&nf(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function xZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:ts(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function nf(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ps(r.id),!1).value)}var IZ=wZ,CZ="@imgly/plugin-ai-sticker-generation",AZ=`
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 v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vf(e){return new Promise(t=>{setTimeout(t,e)})}var bZ=sZ,hZ="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}),bZ({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===hZ?{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,g=$f.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=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}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&af(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&af(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function 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:g,panel:p})=>({id:g.id,label:ts(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function 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=`
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
- `,SZ=AZ,MZ=typeof global=="object"&&global&&global.Object===Object&&global,Ff=MZ,jZ=typeof self=="object"&&self&&self.Object===Object&&self,$Z=Ff||jZ||Function("return this")(),se=$Z,EZ=se.Symbol,lr=EZ,Vf=Object.prototype,_Z=Vf.hasOwnProperty,LZ=Vf.toString,en=lr?lr.toStringTag:void 0;function TZ(e){var t=_Z.call(e,en),r=e[en];try{e[en]=void 0;var i=!0}catch{}var n=LZ.call(e);return i&&(t?e[en]=r:delete e[en]),n}var OZ=TZ,NZ=Object.prototype,DZ=NZ.toString;function PZ(e){return DZ.call(e)}var zZ=PZ,UZ="[object Null]",RZ="[object Undefined]",of=lr?lr.toStringTag:void 0;function FZ(e){return e==null?e===void 0?RZ:UZ:of&&of in Object(e)?OZ(e):zZ(e)}var yn=FZ;function VZ(e){return e!=null&&typeof e=="object"}var gs=VZ,hte=Array.isArray;function BZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bf=BZ,qZ="[object AsyncFunction]",GZ="[object Function]",YZ="[object GeneratorFunction]",HZ="[object Proxy]";function ZZ(e){if(!Bf(e))return!1;var t=yn(e);return t==GZ||t==YZ||t==qZ||t==HZ}var QZ=ZZ,WZ=se["__core-js_shared__"],Zl=WZ,af=function(){var e=/[^.]+$/.exec(Zl&&Zl.keys&&Zl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function KZ(e){return!!af&&af in e}var JZ=KZ,XZ=Function.prototype,eQ=XZ.toString;function tQ(e){if(e!=null){try{return eQ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=tQ,rQ=/[\\^$.*+?()[\]{}|]/g,iQ=/^\[object .+?Constructor\]$/,nQ=Function.prototype,oQ=Object.prototype,aQ=nQ.toString,lQ=oQ.hasOwnProperty,sQ=RegExp("^"+aQ.call(lQ).replace(rQ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function uQ(e){if(!Bf(e)||JZ(e))return!1;var t=QZ(e)?sQ:iQ;return t.test(Ge(e))}var cQ=uQ;function dQ(e,t){return e?.[t]}var pQ=dQ;function gQ(e,t){var r=pQ(e,t);return cQ(r)?r:void 0}var pr=gQ,fQ=pr(se,"WeakMap"),is=fQ;function yQ(e,t){return e===t||e!==e&&t!==t}var mQ=yQ,bQ=9007199254740991;function hQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bQ}var vQ=hQ,vte=Object.prototype,wQ="[object Arguments]";function kQ(e){return gs(e)&&yn(e)==wQ}var lf=kQ,qf=Object.prototype,xQ=qf.hasOwnProperty,IQ=qf.propertyIsEnumerable,wte=lf(function(){return arguments}())?lf:function(e){return gs(e)&&xQ.call(e,"callee")&&!IQ.call(e,"callee")},Gf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sf=Gf&&typeof module=="object"&&module&&!module.nodeType&&module,CQ=sf&&sf.exports===Gf,uf=CQ?se.Buffer:void 0,kte=uf?uf.isBuffer:void 0,AQ="[object Arguments]",SQ="[object Array]",MQ="[object Boolean]",jQ="[object Date]",$Q="[object Error]",EQ="[object Function]",_Q="[object Map]",LQ="[object Number]",TQ="[object Object]",OQ="[object RegExp]",NQ="[object Set]",DQ="[object String]",PQ="[object WeakMap]",zQ="[object ArrayBuffer]",UQ="[object DataView]",RQ="[object Float32Array]",FQ="[object Float64Array]",VQ="[object Int8Array]",BQ="[object Int16Array]",qQ="[object Int32Array]",GQ="[object Uint8Array]",YQ="[object Uint8ClampedArray]",HQ="[object Uint16Array]",ZQ="[object Uint32Array]",B={};B[RQ]=B[FQ]=B[VQ]=B[BQ]=B[qQ]=B[GQ]=B[YQ]=B[HQ]=B[ZQ]=!0;B[AQ]=B[SQ]=B[zQ]=B[MQ]=B[UQ]=B[jQ]=B[$Q]=B[EQ]=B[_Q]=B[LQ]=B[TQ]=B[OQ]=B[NQ]=B[DQ]=B[PQ]=!1;function QQ(e){return gs(e)&&vQ(e.length)&&!!B[yn(e)]}var WQ=QQ;function KQ(e){return function(t){return e(t)}}var JQ=KQ,Yf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,an=Yf&&typeof module=="object"&&module&&!module.nodeType&&module,XQ=an&&an.exports===Yf,Ql=XQ&&Ff.process,eW=function(){try{var e=an&&an.require&&an.require("util").types;return e||Ql&&Ql.binding&&Ql.binding("util")}catch{}}(),cf=eW,df=cf&&cf.isTypedArray,xte=df?JQ(df):WQ,tW=Object.prototype,Ite=tW.hasOwnProperty;function rW(e,t){return function(r){return e(t(r))}}var iW=rW,Cte=iW(Object.keys,Object),nW=Object.prototype,Ate=nW.hasOwnProperty,oW=pr(Object,"create"),un=oW;function aW(){this.__data__=un?un(null):{},this.size=0}var lW=aW;function sW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var uW=sW,cW="__lodash_hash_undefined__",dW=Object.prototype,pW=dW.hasOwnProperty;function gW(e){var t=this.__data__;if(un){var r=t[e];return r===cW?void 0:r}return pW.call(t,e)?t[e]:void 0}var fW=gW,yW=Object.prototype,mW=yW.hasOwnProperty;function bW(e){var t=this.__data__;return un?t[e]!==void 0:mW.call(t,e)}var hW=bW,vW="__lodash_hash_undefined__";function wW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=un&&t===void 0?vW:t,this}var kW=wW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=lW;gr.prototype.delete=uW;gr.prototype.get=fW;gr.prototype.has=hW;gr.prototype.set=kW;var pf=gr;function xW(){this.__data__=[],this.size=0}var IW=xW;function CW(e,t){for(var r=e.length;r--;)if(mQ(e[r][0],t))return r;return-1}var $o=CW,AW=Array.prototype,SW=AW.splice;function MW(e){var t=this.__data__,r=$o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():SW.call(t,r,1),--this.size,!0}var jW=MW;function $W(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var EW=$W;function _W(e){return $o(this.__data__,e)>-1}var LW=_W;function TW(e,t){var r=this.__data__,i=$o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var OW=TW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=IW;fr.prototype.delete=jW;fr.prototype.get=EW;fr.prototype.has=LW;fr.prototype.set=OW;var Eo=fr,NW=pr(se,"Map"),cn=NW;function DW(){this.size=0,this.__data__={hash:new pf,map:new(cn||Eo),string:new pf}}var PW=DW;function zW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var UW=zW;function RW(e,t){var r=e.__data__;return UW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _o=RW;function FW(e){var t=_o(this,e).delete(e);return this.size-=t?1:0,t}var VW=FW;function BW(e){return _o(this,e).get(e)}var qW=BW;function GW(e){return _o(this,e).has(e)}var YW=GW;function HW(e,t){var r=_o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ZW=HW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=PW;yr.prototype.delete=VW;yr.prototype.get=qW;yr.prototype.has=YW;yr.prototype.set=ZW;var Hf=yr;function QW(){this.__data__=new Eo,this.size=0}var WW=QW;function KW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var JW=KW;function XW(e){return this.__data__.get(e)}var eK=XW;function tK(e){return this.__data__.has(e)}var rK=tK,iK=200;function nK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!cn||i.length<iK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Hf(i)}return r.set(e,t),this.size=r.size,this}var oK=nK;function mn(e){var t=this.__data__=new Eo(e);this.size=t.size}mn.prototype.clear=WW;mn.prototype.delete=JW;mn.prototype.get=eK;mn.prototype.has=rK;mn.prototype.set=oK;var aK=Object.prototype,Ste=aK.propertyIsEnumerable,lK=pr(se,"DataView"),ns=lK,sK=pr(se,"Promise"),os=sK,uK=pr(se,"Set"),as=uK,gf="[object Map]",cK="[object Object]",ff="[object Promise]",yf="[object Set]",mf="[object WeakMap]",bf="[object DataView]",dK=Ge(ns),pK=Ge(cn),gK=Ge(os),fK=Ge(as),yK=Ge(is),nr=yn;(ns&&nr(new ns(new ArrayBuffer(1)))!=bf||cn&&nr(new cn)!=gf||os&&nr(os.resolve())!=ff||as&&nr(new as)!=yf||is&&nr(new is)!=mf)&&(nr=function(e){var t=yn(e),r=t==cK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case dK:return bf;case pK:return gf;case gK:return ff;case fK:return yf;case yK:return mf}return t});var Mte=se.Uint8Array,mK="__lodash_hash_undefined__";function bK(e){return this.__data__.set(e,mK),this}var hK=bK;function vK(e){return this.__data__.has(e)}var wK=vK;function ls(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Hf;++t<r;)this.add(e[t])}ls.prototype.add=ls.prototype.push=hK;ls.prototype.has=wK;var hf=lr?lr.prototype:void 0,jte=hf?hf.valueOf:void 0,kK=Object.prototype,$te=kK.hasOwnProperty,xK=Object.prototype,Ete=xK.hasOwnProperty,_te=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Lte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Tte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function IK(e){return e==null?[]:Array.isArray(e)?e:[e]}var CK=IK;function AK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function SK(e){return typeof e?.translate=="function"}function MK(e,t,r){return e&&AK(e)&&SK(e.i18n)?e.i18n.translate(t):r}var nn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function jK(e){return{async initialize({cesdk:t}){if(t==null)return;gH(t,nn,"1.74.0-nightly.20260421"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Mf.get(),i=`${nn}.action.label`;t.ui.addIconSet(CZ,SZ),us(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:nn,pluginId:nn,label:MK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(CK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await IZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),yH({cesdk:t,panelId:Se})):n()}}}var $K=jK,EK=e=>({name:nn,version:"1.74.0-nightly.20260421",...$K(e)}),Zf=EK;var fs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,g=[...this.getCurrentAssets()];if(c&&c.length>0&&(g=g.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(g=g.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();g=g.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];g=g.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&g.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?g.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&g.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let p=g.length,y=r*i,f=y+i,v=g.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<p?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:p}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=_K(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Qf(e,t,r=[]){return new fs(e,t,r)}function _K(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var bn="ly.img.ai.apps";var Y=au("apps"),LK=512,TK=128,Wf=e=>({async initialize({cesdk:t}){if(t==null)return;lu(t,bn,"1.74.0-nightly.20260421");let{providers:r}=e;await t.addPlugin(D1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Tc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Qd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(cg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Zf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),zK(t),OK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function OK(e,t){PK(e);let r=NK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{Cn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?Cn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(g=>{g.startsWith("ly.img.ai.")&&g!==l&&e.ui.closePanel(g),!u&&g==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(g)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function NK(e,t){let r=Cn.get(),i=Qf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?DK(t.baseURL,o):void 0,width:LK,height:TK}}).filter(Ds)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function DK(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function PK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});return b===u||b==="All"}):!0});if(d.length===0)return;let g=s;g==null&&(g=`libraries.${a}.label`);let p=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:g,icon:f,isDisabled:y,isSelected:p,onClick:()=>{p?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}function zK(e){nu(e,su)}var UK=e=>({name:bn,version:"1.74.0-nightly.20260421",...Wf(e)}),Jte=UK;export{Jte as default};
665
+ `,EZ=$Z,_Z=typeof global=="object"&&global&&global.Object===Object&&global,Bf=_Z,LZ=typeof self=="object"&&self&&self.Object===Object&&self,TZ=Bf||LZ||Function("return this")(),se=TZ,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 bQ(e,t){var r=mQ(e,t);return fQ(r)?r:void 0}var pr=bQ,hQ=pr(se,"WeakMap"),is=hQ;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]",LQ="[object Date]",TQ="[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[LQ]=B[TQ]=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 bW(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 hW=bW,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=hW;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 LW=_W;function TW(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var OW=TW;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=LW;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]",bf="[object Set]",hf="[object WeakMap]",vf="[object DataView]",yK=Ge(ns),mK=Ge(cn),bK=Ge(os),hK=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)!=bf||is&&nr(new is)!=hf)&&(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 bK:return mf;case hK:return bf;case vK:return hf}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,Lte=wf?wf.valueOf:void 0,AK=Object.prototype,Tte=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 LK(e){return{async initialize({cesdk:t}){if(t==null)return;bH(t,nn,"1.74.0-rc.1"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=$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 TK=LK,OK=e=>({name:nn,version:"1.74.0-rc.1",...TK(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,g=[...this.getCurrentAssets()];if(c&&c.length>0&&(g=g.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(g=g.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();g=g.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];g=g.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&g.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?g.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&g.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let p=g.length,y=r*i,f=y+i,v=g.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<p?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:p}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=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 bn="ly.img.ai.apps";var Y=au("apps"),DK=512,PK=128,Jf=e=>({async initialize({cesdk:t}){if(t==null)return;lu(t,bn,"1.74.0-rc.1");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(g=>{g.startsWith("ly.img.ai.")&&g!==l&&e.ui.closePanel(g),!u&&g==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(g)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function 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 v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});return b===u||b==="All"}):!0});if(d.length===0)return;let g=s;g==null&&(g=`libraries.${a}.label`);let p=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:g,icon:f,isDisabled:y,isSelected:p,onClick:()=>{p?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}function VK(e){nu(e,su)}var BK=e=>({name:bn,version:"1.74.0-rc.1",...Jf(e)}),rre=BK;export{rre as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js: