@imgly/plugin-ai-apps-web 1.83.0-nightly.20260917 → 1.83.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- var ty=typeof global=="object"&&global&&global.Object===Object&&global,Ls=ty,ry=typeof self=="object"&&self&&self.Object===Object&&self,iy=Ls||ry||Function("return this")(),K=iy,ny=K.Symbol,Ze=ny,Ts=Object.prototype,oy=Ts.hasOwnProperty,ay=Ts.toString,br=Ze?Ze.toStringTag:void 0;function ly(e){var t=oy.call(e,br),r=e[br];try{e[br]=void 0;var i=!0}catch{}var n=ay.call(e);return i&&(t?e[br]=r:delete e[br]),n}var sy=ly,uy=Object.prototype,cy=uy.toString;function dy(e){return cy.call(e)}var py=dy,gy="[object Null]",fy="[object Undefined]",hs=Ze?Ze.toStringTag:void 0;function yy(e){return e==null?e===void 0?fy:gy:hs&&hs in Object(e)?sy(e):py(e)}var kr=yy;function my(e){return e!=null&&typeof e=="object"}var Ro=my,fJ=Array.isArray;function by(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Os=by,hy="[object AsyncFunction]",vy="[object Function]",wy="[object GeneratorFunction]",ky="[object Proxy]";function xy(e){if(!Os(e))return!1;var t=kr(e);return t==vy||t==wy||t==hy||t==ky}var Iy=xy,Cy=K["__core-js_shared__"],To=Cy,vs=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ay(e){return!!vs&&vs in e}var Sy=Ay,My=Function.prototype,jy=My.toString;function $y(e){if(e!=null){try{return jy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=$y,_y=/[\\^$.*+?()[\]{}|]/g,Ey=/^\[object .+?Constructor\]$/,Ly=Function.prototype,Ty=Object.prototype,Oy=Ly.toString,Ny=Ty.hasOwnProperty,Dy=RegExp("^"+Oy.call(Ny).replace(_y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Py(e){if(!Os(e)||Sy(e))return!1;var t=Iy(e)?Dy:Ey;return t.test($e(e))}var zy=Py;function Uy(e,t){return e?.[t]}var Ry=Uy;function Fy(e,t){var r=Ry(e,t);return zy(r)?r:void 0}var Qe=Fy,Vy=Qe(K,"WeakMap"),No=Vy;function By(e,t){return e===t||e!==e&&t!==t}var qy=By,Gy=9007199254740991;function Hy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gy}var Yy=Hy;var yJ=Object.prototype;var Zy="[object Arguments]";function Qy(e){return Ro(e)&&kr(e)==Zy}var ws=Qy,Ns=Object.prototype,Wy=Ns.hasOwnProperty,Ky=Ns.propertyIsEnumerable,mJ=ws(function(){return arguments}())?ws:function(e){return Ro(e)&&Wy.call(e,"callee")&&!Ky.call(e,"callee")};var Ds=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ks=Ds&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=ks&&ks.exports===Ds,xs=Jy?K.Buffer:void 0,bJ=xs?xs.isBuffer:void 0;var Xy="[object Arguments]",em="[object Array]",tm="[object Boolean]",rm="[object Date]",im="[object Error]",nm="[object Function]",om="[object Map]",am="[object Number]",lm="[object Object]",sm="[object RegExp]",um="[object Set]",cm="[object String]",dm="[object WeakMap]",pm="[object ArrayBuffer]",gm="[object DataView]",fm="[object Float32Array]",ym="[object Float64Array]",mm="[object Int8Array]",bm="[object Int16Array]",hm="[object Int32Array]",vm="[object Uint8Array]",wm="[object Uint8ClampedArray]",km="[object Uint16Array]",xm="[object Uint32Array]",T={};T[fm]=T[ym]=T[mm]=T[bm]=T[hm]=T[vm]=T[wm]=T[km]=T[xm]=!0;T[Xy]=T[em]=T[pm]=T[tm]=T[gm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=T[cm]=T[dm]=!1;function Im(e){return Ro(e)&&Yy(e.length)&&!!T[kr(e)]}var Cm=Im;function Am(e){return function(t){return e(t)}}var Sm=Am,Ps=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Ps&&typeof module=="object"&&module&&!module.nodeType&&module,Mm=hr&&hr.exports===Ps,Oo=Mm&&Ls.process,jm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||Oo&&Oo.binding&&Oo.binding("util")}catch{}}(),Is=jm,Cs=Is&&Is.isTypedArray,hJ=Cs?Sm(Cs):Cm;var $m=Object.prototype,vJ=$m.hasOwnProperty;function _m(e,t){return function(r){return e(t(r))}}var Em=_m,wJ=Em(Object.keys,Object);var Lm=Object.prototype,kJ=Lm.hasOwnProperty;var Tm=Qe(Object,"create"),vr=Tm;function Om(){this.__data__=vr?vr(null):{},this.size=0}var Nm=Om;function Dm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Pm=Dm,zm="__lodash_hash_undefined__",Um=Object.prototype,Rm=Um.hasOwnProperty;function Fm(e){var t=this.__data__;if(vr){var r=t[e];return r===zm?void 0:r}return Rm.call(t,e)?t[e]:void 0}var Vm=Fm,Bm=Object.prototype,qm=Bm.hasOwnProperty;function Gm(e){var t=this.__data__;return vr?t[e]!==void 0:qm.call(t,e)}var Hm=Gm,Ym="__lodash_hash_undefined__";function Zm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vr&&t===void 0?Ym:t,this}var Qm=Zm;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=Nm;We.prototype.delete=Pm;We.prototype.get=Vm;We.prototype.has=Hm;We.prototype.set=Qm;var As=We;function Wm(){this.__data__=[],this.size=0}var Km=Wm;function Jm(e,t){for(var r=e.length;r--;)if(qy(e[r][0],t))return r;return-1}var gn=Jm,Xm=Array.prototype,eb=Xm.splice;function tb(e){var t=this.__data__,r=gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eb.call(t,r,1),--this.size,!0}var rb=tb;function ib(e){var t=this.__data__,r=gn(t,e);return r<0?void 0:t[r][1]}var nb=ib;function ob(e){return gn(this.__data__,e)>-1}var ab=ob;function lb(e,t){var r=this.__data__,i=gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sb=lb;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=Km;Ke.prototype.delete=rb;Ke.prototype.get=nb;Ke.prototype.has=ab;Ke.prototype.set=sb;var fn=Ke,ub=Qe(K,"Map"),wr=ub;function cb(){this.size=0,this.__data__={hash:new As,map:new(wr||fn),string:new As}}var db=cb;function pb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gb=pb;function fb(e,t){var r=e.__data__;return gb(t)?r[typeof t=="string"?"string":"hash"]:r.map}var yn=fb;function yb(e){var t=yn(this,e).delete(e);return this.size-=t?1:0,t}var mb=yb;function bb(e){return yn(this,e).get(e)}var hb=bb;function vb(e){return yn(this,e).has(e)}var wb=vb;function kb(e,t){var r=yn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xb=kb;function Je(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Je.prototype.clear=db;Je.prototype.delete=mb;Je.prototype.get=hb;Je.prototype.has=wb;Je.prototype.set=xb;var zs=Je;function Ib(){this.__data__=new fn,this.size=0}var Cb=Ib;function Ab(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Sb=Ab;function Mb(e){return this.__data__.get(e)}var jb=Mb;function $b(e){return this.__data__.has(e)}var _b=$b,Eb=200;function Lb(e,t){var r=this.__data__;if(r instanceof fn){var i=r.__data__;if(!wr||i.length<Eb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zs(i)}return r.set(e,t),this.size=r.size,this}var Tb=Lb;function xr(e){var t=this.__data__=new fn(e);this.size=t.size}xr.prototype.clear=Cb;xr.prototype.delete=Sb;xr.prototype.get=jb;xr.prototype.has=_b;xr.prototype.set=Tb;var Ob=Object.prototype,xJ=Ob.propertyIsEnumerable;var Nb=Qe(K,"DataView"),Do=Nb,Db=Qe(K,"Promise"),Po=Db,Pb=Qe(K,"Set"),zo=Pb,Ss="[object Map]",zb="[object Object]",Ms="[object Promise]",js="[object Set]",$s="[object WeakMap]",_s="[object DataView]",Ub=$e(Do),Rb=$e(wr),Fb=$e(Po),Vb=$e(zo),Bb=$e(No),Ye=kr;(Do&&Ye(new Do(new ArrayBuffer(1)))!=_s||wr&&Ye(new wr)!=Ss||Po&&Ye(Po.resolve())!=Ms||zo&&Ye(new zo)!=js||No&&Ye(new No)!=$s)&&(Ye=function(e){var t=kr(e),r=t==zb?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ub:return _s;case Rb:return Ss;case Fb:return Ms;case Vb:return js;case Bb:return $s}return t});var IJ=K.Uint8Array;var qb="__lodash_hash_undefined__";function Gb(e){return this.__data__.set(e,qb),this}var Hb=Gb;function Yb(e){return this.__data__.has(e)}var Zb=Yb;function Uo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zs;++t<r;)this.add(e[t])}Uo.prototype.add=Uo.prototype.push=Hb;Uo.prototype.has=Zb;var Es=Ze?Ze.prototype:void 0,CJ=Es?Es.valueOf:void 0;var Qb=Object.prototype,AJ=Qb.hasOwnProperty;var Wb=Object.prototype,SJ=Wb.hasOwnProperty;var MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Kb(e){return e!==void 0}var Us=Kb;var Jb=typeof global=="object"&&global&&global.Object===Object&&global,eu=Jb,Xb=typeof self=="object"&&self&&self.Object===Object&&self,eh=eu||Xb||Function("return this")(),J=eh,th=J.Symbol,et=th,tu=Object.prototype,rh=tu.hasOwnProperty,ih=tu.toString,Ir=et?et.toStringTag:void 0;function nh(e){var t=rh.call(e,Ir),r=e[Ir];try{e[Ir]=void 0;var i=!0}catch{}var n=ih.call(e);return i&&(t?e[Ir]=r:delete e[Ir]),n}var oh=nh,ah=Object.prototype,lh=ah.toString;function sh(e){return lh.call(e)}var uh=sh,ch="[object Null]",dh="[object Undefined]",Rs=et?et.toStringTag:void 0;function ph(e){return e==null?e===void 0?dh:ch:Rs&&Rs in Object(e)?oh(e):uh(e)}var Mr=ph;function gh(e){return e!=null&&typeof e=="object"}var Qo=gh,EJ=Array.isArray;function fh(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ru=fh,yh="[object AsyncFunction]",mh="[object Function]",bh="[object GeneratorFunction]",hh="[object Proxy]";function vh(e){if(!ru(e))return!1;var t=Mr(e);return t==mh||t==bh||t==yh||t==hh}var wh=vh,kh=J["__core-js_shared__"],Fo=kh,Fs=function(){var e=/[^.]+$/.exec(Fo&&Fo.keys&&Fo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function xh(e){return!!Fs&&Fs in e}var Ih=xh,Ch=Function.prototype,Ah=Ch.toString;function Sh(e){if(e!=null){try{return Ah.call(e)}catch{}try{return e+""}catch{}}return""}var _e=Sh,Mh=/[\\^$.*+?()[\]{}|]/g,jh=/^\[object .+?Constructor\]$/,$h=Function.prototype,_h=Object.prototype,Eh=$h.toString,Lh=_h.hasOwnProperty,Th=RegExp("^"+Eh.call(Lh).replace(Mh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oh(e){if(!ru(e)||Ih(e))return!1;var t=wh(e)?Th:jh;return t.test(_e(e))}var Nh=Oh;function Dh(e,t){return e?.[t]}var Ph=Dh;function zh(e,t){var r=Ph(e,t);return Nh(r)?r:void 0}var tt=zh,Uh=tt(J,"WeakMap"),qo=Uh;function Rh(e,t){return e===t||e!==e&&t!==t}var Fh=Rh,Vh=9007199254740991;function Bh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vh}var qh=Bh,LJ=Object.prototype,Gh="[object Arguments]";function Hh(e){return Qo(e)&&Mr(e)==Gh}var Vs=Hh,iu=Object.prototype,Yh=iu.hasOwnProperty,Zh=iu.propertyIsEnumerable,TJ=Vs(function(){return arguments}())?Vs:function(e){return Qo(e)&&Yh.call(e,"callee")&&!Zh.call(e,"callee")},nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bs=nu&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Bs&&Bs.exports===nu,qs=Qh?J.Buffer:void 0,OJ=qs?qs.isBuffer:void 0,Wh="[object Arguments]",Kh="[object Array]",Jh="[object Boolean]",Xh="[object Date]",e0="[object Error]",t0="[object Function]",r0="[object Map]",i0="[object Number]",n0="[object Object]",o0="[object RegExp]",a0="[object Set]",l0="[object String]",s0="[object WeakMap]",u0="[object ArrayBuffer]",c0="[object DataView]",d0="[object Float32Array]",p0="[object Float64Array]",g0="[object Int8Array]",f0="[object Int16Array]",y0="[object Int32Array]",m0="[object Uint8Array]",b0="[object Uint8ClampedArray]",h0="[object Uint16Array]",v0="[object Uint32Array]",O={};O[d0]=O[p0]=O[g0]=O[f0]=O[y0]=O[m0]=O[b0]=O[h0]=O[v0]=!0;O[Wh]=O[Kh]=O[u0]=O[Jh]=O[c0]=O[Xh]=O[e0]=O[t0]=O[r0]=O[i0]=O[n0]=O[o0]=O[a0]=O[l0]=O[s0]=!1;function w0(e){return Qo(e)&&qh(e.length)&&!!O[Mr(e)]}var k0=w0;function x0(e){return function(t){return e(t)}}var I0=x0,ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Cr=ou&&typeof module=="object"&&module&&!module.nodeType&&module,C0=Cr&&Cr.exports===ou,Vo=C0&&eu.process,A0=function(){try{var e=Cr&&Cr.require&&Cr.require("util").types;return e||Vo&&Vo.binding&&Vo.binding("util")}catch{}}(),Gs=A0,Hs=Gs&&Gs.isTypedArray,NJ=Hs?I0(Hs):k0,S0=Object.prototype,DJ=S0.hasOwnProperty;function M0(e,t){return function(r){return e(t(r))}}var j0=M0,PJ=j0(Object.keys,Object),$0=Object.prototype,zJ=$0.hasOwnProperty,_0=tt(Object,"create"),Ar=_0;function E0(){this.__data__=Ar?Ar(null):{},this.size=0}var L0=E0;function T0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O0=T0,N0="__lodash_hash_undefined__",D0=Object.prototype,P0=D0.hasOwnProperty;function z0(e){var t=this.__data__;if(Ar){var r=t[e];return r===N0?void 0:r}return P0.call(t,e)?t[e]:void 0}var U0=z0,R0=Object.prototype,F0=R0.hasOwnProperty;function V0(e){var t=this.__data__;return Ar?t[e]!==void 0:F0.call(t,e)}var B0=V0,q0="__lodash_hash_undefined__";function G0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ar&&t===void 0?q0:t,this}var H0=G0;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=L0;rt.prototype.delete=O0;rt.prototype.get=U0;rt.prototype.has=B0;rt.prototype.set=H0;var Ys=rt;function Y0(){this.__data__=[],this.size=0}var Z0=Y0;function Q0(e,t){for(var r=e.length;r--;)if(Fh(e[r][0],t))return r;return-1}var mn=Q0,W0=Array.prototype,K0=W0.splice;function J0(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():K0.call(t,r,1),--this.size,!0}var X0=J0;function e2(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var t2=e2;function r2(e){return mn(this.__data__,e)>-1}var i2=r2;function n2(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var o2=n2;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=Z0;it.prototype.delete=X0;it.prototype.get=t2;it.prototype.has=i2;it.prototype.set=o2;var bn=it,a2=tt(J,"Map"),Sr=a2;function l2(){this.size=0,this.__data__={hash:new Ys,map:new(Sr||bn),string:new Ys}}var s2=l2;function u2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var c2=u2;function d2(e,t){var r=e.__data__;return c2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=d2;function p2(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var g2=p2;function f2(e){return hn(this,e).get(e)}var y2=f2;function m2(e){return hn(this,e).has(e)}var b2=m2;function h2(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var v2=h2;function nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}nt.prototype.clear=s2;nt.prototype.delete=g2;nt.prototype.get=y2;nt.prototype.has=b2;nt.prototype.set=v2;var au=nt;function w2(){this.__data__=new bn,this.size=0}var k2=w2;function x2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var I2=x2;function C2(e){return this.__data__.get(e)}var A2=C2;function S2(e){return this.__data__.has(e)}var M2=S2,j2=200;function $2(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!Sr||i.length<j2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new au(i)}return r.set(e,t),this.size=r.size,this}var _2=$2;function jr(e){var t=this.__data__=new bn(e);this.size=t.size}jr.prototype.clear=k2;jr.prototype.delete=I2;jr.prototype.get=A2;jr.prototype.has=M2;jr.prototype.set=_2;var E2=Object.prototype,UJ=E2.propertyIsEnumerable,L2=tt(J,"DataView"),Go=L2,T2=tt(J,"Promise"),Ho=T2,O2=tt(J,"Set"),Yo=O2,Zs="[object Map]",N2="[object Object]",Qs="[object Promise]",Ws="[object Set]",Ks="[object WeakMap]",Js="[object DataView]",D2=_e(Go),P2=_e(Sr),z2=_e(Ho),U2=_e(Yo),R2=_e(qo),Xe=Mr;(Go&&Xe(new Go(new ArrayBuffer(1)))!=Js||Sr&&Xe(new Sr)!=Zs||Ho&&Xe(Ho.resolve())!=Qs||Yo&&Xe(new Yo)!=Ws||qo&&Xe(new qo)!=Ks)&&(Xe=function(e){var t=Mr(e),r=t==N2?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case D2:return Js;case P2:return Zs;case z2:return Qs;case U2:return Ws;case R2:return Ks}return t});var RJ=J.Uint8Array,F2="__lodash_hash_undefined__";function V2(e){return this.__data__.set(e,F2),this}var B2=V2;function q2(e){return this.__data__.has(e)}var G2=q2;function Zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new au;++t<r;)this.add(e[t])}Zo.prototype.add=Zo.prototype.push=B2;Zo.prototype.has=G2;var Xs=et?et.prototype:void 0,FJ=Xs?Xs.valueOf:void 0,H2=Object.prototype,VJ=H2.hasOwnProperty,Y2=Object.prototype,BJ=Y2.hasOwnProperty,qJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),GJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),HJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lu(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 vn=class su{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 su),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 Z2="ly.img.ai";function uu(e){return`${Z2}.${e}`}function cu(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 ty=typeof global=="object"&&global&&global.Object===Object&&global,Ls=ty,ry=typeof self=="object"&&self&&self.Object===Object&&self,iy=Ls||ry||Function("return this")(),K=iy,ny=K.Symbol,Ze=ny,Ts=Object.prototype,oy=Ts.hasOwnProperty,ay=Ts.toString,br=Ze?Ze.toStringTag:void 0;function ly(e){var t=oy.call(e,br),r=e[br];try{e[br]=void 0;var i=!0}catch{}var n=ay.call(e);return i&&(t?e[br]=r:delete e[br]),n}var sy=ly,uy=Object.prototype,cy=uy.toString;function dy(e){return cy.call(e)}var py=dy,gy="[object Null]",fy="[object Undefined]",hs=Ze?Ze.toStringTag:void 0;function yy(e){return e==null?e===void 0?fy:gy:hs&&hs in Object(e)?sy(e):py(e)}var kr=yy;function my(e){return e!=null&&typeof e=="object"}var No=my,fJ=Array.isArray;function by(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Os=by,hy="[object AsyncFunction]",vy="[object Function]",wy="[object GeneratorFunction]",ky="[object Proxy]";function xy(e){if(!Os(e))return!1;var t=kr(e);return t==vy||t==wy||t==hy||t==ky}var Iy=xy,Cy=K["__core-js_shared__"],jo=Cy,vs=function(){var e=/[^.]+$/.exec(jo&&jo.keys&&jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ay(e){return!!vs&&vs in e}var Sy=Ay,My=Function.prototype,jy=My.toString;function $y(e){if(e!=null){try{return jy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=$y,_y=/[\\^$.*+?()[\]{}|]/g,Ey=/^\[object .+?Constructor\]$/,Ly=Function.prototype,Ty=Object.prototype,Oy=Ly.toString,Ny=Ty.hasOwnProperty,Dy=RegExp("^"+Oy.call(Ny).replace(_y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Py(e){if(!Os(e)||Sy(e))return!1;var t=Iy(e)?Dy:Ey;return t.test($e(e))}var zy=Py;function Uy(e,t){return e?.[t]}var Ry=Uy;function Fy(e,t){var r=Ry(e,t);return zy(r)?r:void 0}var Qe=Fy,Vy=Qe(K,"WeakMap"),_o=Vy;function By(e,t){return e===t||e!==e&&t!==t}var qy=By,Gy=9007199254740991;function Hy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gy}var Yy=Hy;var yJ=Object.prototype;var Zy="[object Arguments]";function Qy(e){return No(e)&&kr(e)==Zy}var ws=Qy,Ns=Object.prototype,Wy=Ns.hasOwnProperty,Ky=Ns.propertyIsEnumerable,mJ=ws(function(){return arguments}())?ws:function(e){return No(e)&&Wy.call(e,"callee")&&!Ky.call(e,"callee")};var Ds=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ks=Ds&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=ks&&ks.exports===Ds,xs=Jy?K.Buffer:void 0,bJ=xs?xs.isBuffer:void 0;var Xy="[object Arguments]",em="[object Array]",tm="[object Boolean]",rm="[object Date]",im="[object Error]",nm="[object Function]",om="[object Map]",am="[object Number]",lm="[object Object]",sm="[object RegExp]",um="[object Set]",cm="[object String]",dm="[object WeakMap]",pm="[object ArrayBuffer]",gm="[object DataView]",fm="[object Float32Array]",ym="[object Float64Array]",mm="[object Int8Array]",bm="[object Int16Array]",hm="[object Int32Array]",vm="[object Uint8Array]",wm="[object Uint8ClampedArray]",km="[object Uint16Array]",xm="[object Uint32Array]",T={};T[fm]=T[ym]=T[mm]=T[bm]=T[hm]=T[vm]=T[wm]=T[km]=T[xm]=!0;T[Xy]=T[em]=T[pm]=T[tm]=T[gm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=T[cm]=T[dm]=!1;function Im(e){return No(e)&&Yy(e.length)&&!!T[kr(e)]}var Cm=Im;function Am(e){return function(t){return e(t)}}var Sm=Am,Ps=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Ps&&typeof module=="object"&&module&&!module.nodeType&&module,Mm=hr&&hr.exports===Ps,$o=Mm&&Ls.process,jm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||$o&&$o.binding&&$o.binding("util")}catch{}}(),Is=jm,Cs=Is&&Is.isTypedArray,hJ=Cs?Sm(Cs):Cm;var $m=Object.prototype,vJ=$m.hasOwnProperty;function _m(e,t){return function(r){return e(t(r))}}var Em=_m,wJ=Em(Object.keys,Object);var Lm=Object.prototype,kJ=Lm.hasOwnProperty;var Tm=Qe(Object,"create"),vr=Tm;function Om(){this.__data__=vr?vr(null):{},this.size=0}var Nm=Om;function Dm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Pm=Dm,zm="__lodash_hash_undefined__",Um=Object.prototype,Rm=Um.hasOwnProperty;function Fm(e){var t=this.__data__;if(vr){var r=t[e];return r===zm?void 0:r}return Rm.call(t,e)?t[e]:void 0}var Vm=Fm,Bm=Object.prototype,qm=Bm.hasOwnProperty;function Gm(e){var t=this.__data__;return vr?t[e]!==void 0:qm.call(t,e)}var Hm=Gm,Ym="__lodash_hash_undefined__";function Zm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vr&&t===void 0?Ym:t,this}var Qm=Zm;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=Nm;We.prototype.delete=Pm;We.prototype.get=Vm;We.prototype.has=Hm;We.prototype.set=Qm;var As=We;function Wm(){this.__data__=[],this.size=0}var Km=Wm;function Jm(e,t){for(var r=e.length;r--;)if(qy(e[r][0],t))return r;return-1}var gn=Jm,Xm=Array.prototype,eb=Xm.splice;function tb(e){var t=this.__data__,r=gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eb.call(t,r,1),--this.size,!0}var rb=tb;function ib(e){var t=this.__data__,r=gn(t,e);return r<0?void 0:t[r][1]}var nb=ib;function ob(e){return gn(this.__data__,e)>-1}var ab=ob;function lb(e,t){var r=this.__data__,i=gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sb=lb;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=Km;Ke.prototype.delete=rb;Ke.prototype.get=nb;Ke.prototype.has=ab;Ke.prototype.set=sb;var fn=Ke,ub=Qe(K,"Map"),wr=ub;function cb(){this.size=0,this.__data__={hash:new As,map:new(wr||fn),string:new As}}var db=cb;function pb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gb=pb;function fb(e,t){var r=e.__data__;return gb(t)?r[typeof t=="string"?"string":"hash"]:r.map}var yn=fb;function yb(e){var t=yn(this,e).delete(e);return this.size-=t?1:0,t}var mb=yb;function bb(e){return yn(this,e).get(e)}var hb=bb;function vb(e){return yn(this,e).has(e)}var wb=vb;function kb(e,t){var r=yn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xb=kb;function Je(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Je.prototype.clear=db;Je.prototype.delete=mb;Je.prototype.get=hb;Je.prototype.has=wb;Je.prototype.set=xb;var zs=Je;function Ib(){this.__data__=new fn,this.size=0}var Cb=Ib;function Ab(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Sb=Ab;function Mb(e){return this.__data__.get(e)}var jb=Mb;function $b(e){return this.__data__.has(e)}var _b=$b,Eb=200;function Lb(e,t){var r=this.__data__;if(r instanceof fn){var i=r.__data__;if(!wr||i.length<Eb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zs(i)}return r.set(e,t),this.size=r.size,this}var Tb=Lb;function xr(e){var t=this.__data__=new fn(e);this.size=t.size}xr.prototype.clear=Cb;xr.prototype.delete=Sb;xr.prototype.get=jb;xr.prototype.has=_b;xr.prototype.set=Tb;var Ob=Object.prototype,xJ=Ob.propertyIsEnumerable;var Nb=Qe(K,"DataView"),Eo=Nb,Db=Qe(K,"Promise"),Lo=Db,Pb=Qe(K,"Set"),To=Pb,Ss="[object Map]",zb="[object Object]",Ms="[object Promise]",js="[object Set]",$s="[object WeakMap]",_s="[object DataView]",Ub=$e(Eo),Rb=$e(wr),Fb=$e(Lo),Vb=$e(To),Bb=$e(_o),Ye=kr;(Eo&&Ye(new Eo(new ArrayBuffer(1)))!=_s||wr&&Ye(new wr)!=Ss||Lo&&Ye(Lo.resolve())!=Ms||To&&Ye(new To)!=js||_o&&Ye(new _o)!=$s)&&(Ye=function(e){var t=kr(e),r=t==zb?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ub:return _s;case Rb:return Ss;case Fb:return Ms;case Vb:return js;case Bb:return $s}return t});var IJ=K.Uint8Array;var qb="__lodash_hash_undefined__";function Gb(e){return this.__data__.set(e,qb),this}var Hb=Gb;function Yb(e){return this.__data__.has(e)}var Zb=Yb;function Oo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zs;++t<r;)this.add(e[t])}Oo.prototype.add=Oo.prototype.push=Hb;Oo.prototype.has=Zb;var Es=Ze?Ze.prototype:void 0,CJ=Es?Es.valueOf:void 0;var Qb=Object.prototype,AJ=Qb.hasOwnProperty;var Wb=Object.prototype,SJ=Wb.hasOwnProperty;var MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Kb(e){return e!==void 0}var Us=Kb;var Jb=typeof global=="object"&&global&&global.Object===Object&&global,eu=Jb,Xb=typeof self=="object"&&self&&self.Object===Object&&self,eh=eu||Xb||Function("return this")(),J=eh,th=J.Symbol,et=th,tu=Object.prototype,rh=tu.hasOwnProperty,ih=tu.toString,Ir=et?et.toStringTag:void 0;function nh(e){var t=rh.call(e,Ir),r=e[Ir];try{e[Ir]=void 0;var i=!0}catch{}var n=ih.call(e);return i&&(t?e[Ir]=r:delete e[Ir]),n}var oh=nh,ah=Object.prototype,lh=ah.toString;function sh(e){return lh.call(e)}var uh=sh,ch="[object Null]",dh="[object Undefined]",Rs=et?et.toStringTag:void 0;function ph(e){return e==null?e===void 0?dh:ch:Rs&&Rs in Object(e)?oh(e):uh(e)}var Mr=ph;function gh(e){return e!=null&&typeof e=="object"}var qo=gh,EJ=Array.isArray;function fh(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ru=fh,yh="[object AsyncFunction]",mh="[object Function]",bh="[object GeneratorFunction]",hh="[object Proxy]";function vh(e){if(!ru(e))return!1;var t=Mr(e);return t==mh||t==bh||t==yh||t==hh}var wh=vh,kh=J["__core-js_shared__"],Do=kh,Fs=function(){var e=/[^.]+$/.exec(Do&&Do.keys&&Do.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function xh(e){return!!Fs&&Fs in e}var Ih=xh,Ch=Function.prototype,Ah=Ch.toString;function Sh(e){if(e!=null){try{return Ah.call(e)}catch{}try{return e+""}catch{}}return""}var _e=Sh,Mh=/[\\^$.*+?()[\]{}|]/g,jh=/^\[object .+?Constructor\]$/,$h=Function.prototype,_h=Object.prototype,Eh=$h.toString,Lh=_h.hasOwnProperty,Th=RegExp("^"+Eh.call(Lh).replace(Mh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oh(e){if(!ru(e)||Ih(e))return!1;var t=wh(e)?Th:jh;return t.test(_e(e))}var Nh=Oh;function Dh(e,t){return e?.[t]}var Ph=Dh;function zh(e,t){var r=Ph(e,t);return Nh(r)?r:void 0}var tt=zh,Uh=tt(J,"WeakMap"),Uo=Uh;function Rh(e,t){return e===t||e!==e&&t!==t}var Fh=Rh,Vh=9007199254740991;function Bh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vh}var qh=Bh,LJ=Object.prototype,Gh="[object Arguments]";function Hh(e){return qo(e)&&Mr(e)==Gh}var Vs=Hh,iu=Object.prototype,Yh=iu.hasOwnProperty,Zh=iu.propertyIsEnumerable,TJ=Vs(function(){return arguments}())?Vs:function(e){return qo(e)&&Yh.call(e,"callee")&&!Zh.call(e,"callee")},nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bs=nu&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Bs&&Bs.exports===nu,qs=Qh?J.Buffer:void 0,OJ=qs?qs.isBuffer:void 0,Wh="[object Arguments]",Kh="[object Array]",Jh="[object Boolean]",Xh="[object Date]",e0="[object Error]",t0="[object Function]",r0="[object Map]",i0="[object Number]",n0="[object Object]",o0="[object RegExp]",a0="[object Set]",l0="[object String]",s0="[object WeakMap]",u0="[object ArrayBuffer]",c0="[object DataView]",d0="[object Float32Array]",p0="[object Float64Array]",g0="[object Int8Array]",f0="[object Int16Array]",y0="[object Int32Array]",m0="[object Uint8Array]",b0="[object Uint8ClampedArray]",h0="[object Uint16Array]",v0="[object Uint32Array]",O={};O[d0]=O[p0]=O[g0]=O[f0]=O[y0]=O[m0]=O[b0]=O[h0]=O[v0]=!0;O[Wh]=O[Kh]=O[u0]=O[Jh]=O[c0]=O[Xh]=O[e0]=O[t0]=O[r0]=O[i0]=O[n0]=O[o0]=O[a0]=O[l0]=O[s0]=!1;function w0(e){return qo(e)&&qh(e.length)&&!!O[Mr(e)]}var k0=w0;function x0(e){return function(t){return e(t)}}var I0=x0,ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Cr=ou&&typeof module=="object"&&module&&!module.nodeType&&module,C0=Cr&&Cr.exports===ou,Po=C0&&eu.process,A0=function(){try{var e=Cr&&Cr.require&&Cr.require("util").types;return e||Po&&Po.binding&&Po.binding("util")}catch{}}(),Gs=A0,Hs=Gs&&Gs.isTypedArray,NJ=Hs?I0(Hs):k0,S0=Object.prototype,DJ=S0.hasOwnProperty;function M0(e,t){return function(r){return e(t(r))}}var j0=M0,PJ=j0(Object.keys,Object),$0=Object.prototype,zJ=$0.hasOwnProperty,_0=tt(Object,"create"),Ar=_0;function E0(){this.__data__=Ar?Ar(null):{},this.size=0}var L0=E0;function T0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O0=T0,N0="__lodash_hash_undefined__",D0=Object.prototype,P0=D0.hasOwnProperty;function z0(e){var t=this.__data__;if(Ar){var r=t[e];return r===N0?void 0:r}return P0.call(t,e)?t[e]:void 0}var U0=z0,R0=Object.prototype,F0=R0.hasOwnProperty;function V0(e){var t=this.__data__;return Ar?t[e]!==void 0:F0.call(t,e)}var B0=V0,q0="__lodash_hash_undefined__";function G0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ar&&t===void 0?q0:t,this}var H0=G0;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=L0;rt.prototype.delete=O0;rt.prototype.get=U0;rt.prototype.has=B0;rt.prototype.set=H0;var Ys=rt;function Y0(){this.__data__=[],this.size=0}var Z0=Y0;function Q0(e,t){for(var r=e.length;r--;)if(Fh(e[r][0],t))return r;return-1}var mn=Q0,W0=Array.prototype,K0=W0.splice;function J0(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():K0.call(t,r,1),--this.size,!0}var X0=J0;function e2(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var t2=e2;function r2(e){return mn(this.__data__,e)>-1}var i2=r2;function n2(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var o2=n2;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=Z0;it.prototype.delete=X0;it.prototype.get=t2;it.prototype.has=i2;it.prototype.set=o2;var bn=it,a2=tt(J,"Map"),Sr=a2;function l2(){this.size=0,this.__data__={hash:new Ys,map:new(Sr||bn),string:new Ys}}var s2=l2;function u2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var c2=u2;function d2(e,t){var r=e.__data__;return c2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=d2;function p2(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var g2=p2;function f2(e){return hn(this,e).get(e)}var y2=f2;function m2(e){return hn(this,e).has(e)}var b2=m2;function h2(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var v2=h2;function nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}nt.prototype.clear=s2;nt.prototype.delete=g2;nt.prototype.get=y2;nt.prototype.has=b2;nt.prototype.set=v2;var au=nt;function w2(){this.__data__=new bn,this.size=0}var k2=w2;function x2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var I2=x2;function C2(e){return this.__data__.get(e)}var A2=C2;function S2(e){return this.__data__.has(e)}var M2=S2,j2=200;function $2(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!Sr||i.length<j2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new au(i)}return r.set(e,t),this.size=r.size,this}var _2=$2;function jr(e){var t=this.__data__=new bn(e);this.size=t.size}jr.prototype.clear=k2;jr.prototype.delete=I2;jr.prototype.get=A2;jr.prototype.has=M2;jr.prototype.set=_2;var E2=Object.prototype,UJ=E2.propertyIsEnumerable,L2=tt(J,"DataView"),Ro=L2,T2=tt(J,"Promise"),Fo=T2,O2=tt(J,"Set"),Vo=O2,Zs="[object Map]",N2="[object Object]",Qs="[object Promise]",Ws="[object Set]",Ks="[object WeakMap]",Js="[object DataView]",D2=_e(Ro),P2=_e(Sr),z2=_e(Fo),U2=_e(Vo),R2=_e(Uo),Xe=Mr;(Ro&&Xe(new Ro(new ArrayBuffer(1)))!=Js||Sr&&Xe(new Sr)!=Zs||Fo&&Xe(Fo.resolve())!=Qs||Vo&&Xe(new Vo)!=Ws||Uo&&Xe(new Uo)!=Ks)&&(Xe=function(e){var t=Mr(e),r=t==N2?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case D2:return Js;case P2:return Zs;case z2:return Qs;case U2:return Ws;case R2:return Ks}return t});var RJ=J.Uint8Array,F2="__lodash_hash_undefined__";function V2(e){return this.__data__.set(e,F2),this}var B2=V2;function q2(e){return this.__data__.has(e)}var G2=q2;function Bo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new au;++t<r;)this.add(e[t])}Bo.prototype.add=Bo.prototype.push=B2;Bo.prototype.has=G2;var Xs=et?et.prototype:void 0,FJ=Xs?Xs.valueOf:void 0,H2=Object.prototype,VJ=H2.hasOwnProperty,Y2=Object.prototype,BJ=Y2.hasOwnProperty,qJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),GJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),HJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lu(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 vn=class su{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 su),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 Z2="ly.img.ai";function uu(e){return`${Z2}.${e}`}function cu(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 Bo="@imgly/plugin-ai-generation",YJ=`
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 zo="@imgly/plugin-ai-generation",YJ=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -19,7 +19,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
19
19
  fill="none"
20
20
  xmlns="http://www.w3.org/2000/svg"
21
21
  viewBox="0 0 24 24"
22
- id="${Bo}/image"
22
+ id="${zo}/image"
23
23
  >
24
24
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
25
25
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -31,7 +31,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
31
31
  fill="none"
32
32
  xmlns="http://www.w3.org/2000/svg"
33
33
  viewBox="0 0 24 24"
34
- id="${Bo}/video"
34
+ id="${zo}/video"
35
35
  >
36
36
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
37
37
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -42,7 +42,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
42
42
  fill="none"
43
43
  xmlns="http://www.w3.org/2000/svg"
44
44
  viewBox="0 0 24 24"
45
- id="${Bo}/audio"
45
+ id="${zo}/audio"
46
46
  >
47
47
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
48
48
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -73,10 +73,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
73
73
 
74
74
  </symbol>
75
75
  </svg>
76
- `;var ZJ=5*60*1e3;var du={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"}};function W2(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var me=W2,K2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{lt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),lt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function lt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=lt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=lt(n,t,a)}return e}var J2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},X2=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)}},nc=X2,e4=typeof global=="object"&&global&&global.Object===Object&&global,oc=e4,t4=typeof self=="object"&&self&&self.Object===Object&&self,r4=oc||t4||Function("return this")(),X=r4,i4=X.Symbol,st=i4,ac=Object.prototype,n4=ac.hasOwnProperty,o4=ac.toString,$r=st?st.toStringTag:void 0;function a4(e){var t=n4.call(e,$r),r=e[$r];try{e[$r]=void 0;var i=!0}catch{}var n=o4.call(e);return i&&(t?e[$r]=r:delete e[$r]),n}var l4=a4,s4=Object.prototype,u4=s4.toString;function c4(e){return u4.call(e)}var d4=c4,p4="[object Null]",g4="[object Undefined]",pu=st?st.toStringTag:void 0;function f4(e){return e==null?e===void 0?g4:p4:pu&&pu in Object(e)?l4(e):d4(e)}var Br=f4;function y4(e){return e!=null&&typeof e=="object"}var ha=y4,KJ=Array.isArray;function m4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var lc=m4,b4="[object AsyncFunction]",h4="[object Function]",v4="[object GeneratorFunction]",w4="[object Proxy]";function k4(e){if(!lc(e))return!1;var t=Br(e);return t==h4||t==v4||t==b4||t==w4}var x4=k4,I4=X["__core-js_shared__"],Wo=I4,gu=function(){var e=/[^.]+$/.exec(Wo&&Wo.keys&&Wo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function C4(e){return!!gu&&gu in e}var A4=C4,S4=Function.prototype,M4=S4.toString;function j4(e){if(e!=null){try{return M4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=j4,$4=/[\\^$.*+?()[\]{}|]/g,_4=/^\[object .+?Constructor\]$/,E4=Function.prototype,L4=Object.prototype,T4=E4.toString,O4=L4.hasOwnProperty,N4=RegExp("^"+T4.call(O4).replace($4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function D4(e){if(!lc(e)||A4(e))return!1;var t=x4(e)?N4:_4;return t.test(Le(e))}var P4=D4;function z4(e,t){return e?.[t]}var U4=z4;function R4(e,t){var r=U4(e,t);return P4(r)?r:void 0}var ct=R4,F4=ct(X,"WeakMap"),oa=F4;function V4(e,t){return e===t||e!==e&&t!==t}var B4=V4,q4=9007199254740991;function G4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q4}var H4=G4,JJ=Object.prototype,Y4="[object Arguments]";function Z4(e){return ha(e)&&Br(e)==Y4}var fu=Z4,sc=Object.prototype,Q4=sc.hasOwnProperty,W4=sc.propertyIsEnumerable,XJ=fu(function(){return arguments}())?fu:function(e){return ha(e)&&Q4.call(e,"callee")&&!W4.call(e,"callee")},uc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yu=uc&&typeof module=="object"&&module&&!module.nodeType&&module,K4=yu&&yu.exports===uc,mu=K4?X.Buffer:void 0,eX=mu?mu.isBuffer:void 0,J4="[object Arguments]",X4="[object Array]",e5="[object Boolean]",t5="[object Date]",r5="[object Error]",i5="[object Function]",n5="[object Map]",o5="[object Number]",a5="[object Object]",l5="[object RegExp]",s5="[object Set]",u5="[object String]",c5="[object WeakMap]",d5="[object ArrayBuffer]",p5="[object DataView]",g5="[object Float32Array]",f5="[object Float64Array]",y5="[object Int8Array]",m5="[object Int16Array]",b5="[object Int32Array]",h5="[object Uint8Array]",v5="[object Uint8ClampedArray]",w5="[object Uint16Array]",k5="[object Uint32Array]",N={};N[g5]=N[f5]=N[y5]=N[m5]=N[b5]=N[h5]=N[v5]=N[w5]=N[k5]=!0;N[J4]=N[X4]=N[d5]=N[e5]=N[p5]=N[t5]=N[r5]=N[i5]=N[n5]=N[o5]=N[a5]=N[l5]=N[s5]=N[u5]=N[c5]=!1;function x5(e){return ha(e)&&H4(e.length)&&!!N[Br(e)]}var I5=x5;function C5(e){return function(t){return e(t)}}var A5=C5,cc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=cc&&typeof module=="object"&&module&&!module.nodeType&&module,S5=Dr&&Dr.exports===cc,Ko=S5&&oc.process,M5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Ko&&Ko.binding&&Ko.binding("util")}catch{}}(),bu=M5,hu=bu&&bu.isTypedArray,tX=hu?A5(hu):I5,j5=Object.prototype,rX=j5.hasOwnProperty;function $5(e,t){return function(r){return e(t(r))}}var _5=$5,iX=_5(Object.keys,Object),E5=Object.prototype,nX=E5.hasOwnProperty,L5=ct(Object,"create"),zr=L5;function T5(){this.__data__=zr?zr(null):{},this.size=0}var O5=T5;function N5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var D5=N5,P5="__lodash_hash_undefined__",z5=Object.prototype,U5=z5.hasOwnProperty;function R5(e){var t=this.__data__;if(zr){var r=t[e];return r===P5?void 0:r}return U5.call(t,e)?t[e]:void 0}var F5=R5,V5=Object.prototype,B5=V5.hasOwnProperty;function q5(e){var t=this.__data__;return zr?t[e]!==void 0:B5.call(t,e)}var G5=q5,H5="__lodash_hash_undefined__";function Y5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?H5:t,this}var Z5=Y5;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=O5;dt.prototype.delete=D5;dt.prototype.get=F5;dt.prototype.has=G5;dt.prototype.set=Z5;var vu=dt;function Q5(){this.__data__=[],this.size=0}var W5=Q5;function K5(e,t){for(var r=e.length;r--;)if(B4(e[r][0],t))return r;return-1}var $n=K5,J5=Array.prototype,X5=J5.splice;function e3(e){var t=this.__data__,r=$n(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():X5.call(t,r,1),--this.size,!0}var t3=e3;function r3(e){var t=this.__data__,r=$n(t,e);return r<0?void 0:t[r][1]}var i3=r3;function n3(e){return $n(this.__data__,e)>-1}var o3=n3;function a3(e,t){var r=this.__data__,i=$n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var l3=a3;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=W5;pt.prototype.delete=t3;pt.prototype.get=i3;pt.prototype.has=o3;pt.prototype.set=l3;var _n=pt,s3=ct(X,"Map"),Ur=s3;function u3(){this.size=0,this.__data__={hash:new vu,map:new(Ur||_n),string:new vu}}var c3=u3;function d3(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p3=d3;function g3(e,t){var r=e.__data__;return p3(t)?r[typeof t=="string"?"string":"hash"]:r.map}var En=g3;function f3(e){var t=En(this,e).delete(e);return this.size-=t?1:0,t}var y3=f3;function m3(e){return En(this,e).get(e)}var b3=m3;function h3(e){return En(this,e).has(e)}var v3=h3;function w3(e,t){var r=En(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var k3=w3;function gt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gt.prototype.clear=c3;gt.prototype.delete=y3;gt.prototype.get=b3;gt.prototype.has=v3;gt.prototype.set=k3;var dc=gt;function x3(){this.__data__=new _n,this.size=0}var I3=x3;function C3(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var A3=C3;function S3(e){return this.__data__.get(e)}var M3=S3;function j3(e){return this.__data__.has(e)}var $3=j3,_3=200;function E3(e,t){var r=this.__data__;if(r instanceof _n){var i=r.__data__;if(!Ur||i.length<_3-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new dc(i)}return r.set(e,t),this.size=r.size,this}var L3=E3;function qr(e){var t=this.__data__=new _n(e);this.size=t.size}qr.prototype.clear=I3;qr.prototype.delete=A3;qr.prototype.get=M3;qr.prototype.has=$3;qr.prototype.set=L3;var T3=Object.prototype,oX=T3.propertyIsEnumerable,O3=ct(X,"DataView"),aa=O3,N3=ct(X,"Promise"),la=N3,D3=ct(X,"Set"),sa=D3,wu="[object Map]",P3="[object Object]",ku="[object Promise]",xu="[object Set]",Iu="[object WeakMap]",Cu="[object DataView]",z3=Le(aa),U3=Le(Ur),R3=Le(la),F3=Le(sa),V3=Le(oa),ot=Br;(aa&&ot(new aa(new ArrayBuffer(1)))!=Cu||Ur&&ot(new Ur)!=wu||la&&ot(la.resolve())!=ku||sa&&ot(new sa)!=xu||oa&&ot(new oa)!=Iu)&&(ot=function(e){var t=Br(e),r=t==P3?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case z3:return Cu;case U3:return wu;case R3:return ku;case F3:return xu;case V3:return Iu}return t});var aX=X.Uint8Array,B3="__lodash_hash_undefined__";function q3(e){return this.__data__.set(e,B3),this}var G3=q3;function H3(e){return this.__data__.has(e)}var Y3=H3;function ua(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new dc;++t<r;)this.add(e[t])}ua.prototype.add=ua.prototype.push=G3;ua.prototype.has=Y3;var Au=st?st.prototype:void 0,lX=Au?Au.valueOf:void 0,Z3=Object.prototype,sX=Z3.hasOwnProperty,Q3=Object.prototype,uX=Q3.hasOwnProperty,cX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function pc(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 ca(e,t){let r=await pc(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 W3(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 pc(i,t)}function K3(e){return e!==void 0}var Ln=K3;function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hr(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}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 J3(e){return Array.isArray(e)?e:e?[e]:[]}function X3(e,t){return t?e:e[0]??""}function gc(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function fc(e,t){return J3(e.ui.experimental.getGlobalStateValue(t.stateId))}function e9(e,t){let r=gc().get(t);return r==null?!1:fc(e,r).length<r.maxCount}function t9(e,t,r){let i=gc().get(t);if(i==null)return!1;let n=fc(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,X3([...n,r],i.isList)),!0)}var va=class yc{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 yc),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))}},mc=class bc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new bc),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 r9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i9({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 n9=i9,Jo="ly.img.ai.temp";async function o9(e,t){return e.engine.asset.findAllSources().includes(Jo)||e.engine.asset.addLocalSource(Jo),e.engine.asset.apply(Jo,t)}function a9(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 hc(){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 l9(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 s9(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 wa(e){return e instanceof Error&&e.name==="AbortError"}function u9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function c9(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!
76
+ `;var ZJ=5*60*1e3;var du={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"}};function W2(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var me=W2,K2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{lt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),lt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function lt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=lt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=lt(n,t,a)}return e}var J2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},X2=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)}},nc=X2,e4=typeof global=="object"&&global&&global.Object===Object&&global,oc=e4,t4=typeof self=="object"&&self&&self.Object===Object&&self,r4=oc||t4||Function("return this")(),X=r4,i4=X.Symbol,st=i4,ac=Object.prototype,n4=ac.hasOwnProperty,o4=ac.toString,$r=st?st.toStringTag:void 0;function a4(e){var t=n4.call(e,$r),r=e[$r];try{e[$r]=void 0;var i=!0}catch{}var n=o4.call(e);return i&&(t?e[$r]=r:delete e[$r]),n}var l4=a4,s4=Object.prototype,u4=s4.toString;function c4(e){return u4.call(e)}var d4=c4,p4="[object Null]",g4="[object Undefined]",pu=st?st.toStringTag:void 0;function f4(e){return e==null?e===void 0?g4:p4:pu&&pu in Object(e)?l4(e):d4(e)}var Br=f4;function y4(e){return e!=null&&typeof e=="object"}var fa=y4,KJ=Array.isArray;function m4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var lc=m4,b4="[object AsyncFunction]",h4="[object Function]",v4="[object GeneratorFunction]",w4="[object Proxy]";function k4(e){if(!lc(e))return!1;var t=Br(e);return t==h4||t==v4||t==b4||t==w4}var x4=k4,I4=X["__core-js_shared__"],Go=I4,gu=function(){var e=/[^.]+$/.exec(Go&&Go.keys&&Go.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function C4(e){return!!gu&&gu in e}var A4=C4,S4=Function.prototype,M4=S4.toString;function j4(e){if(e!=null){try{return M4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=j4,$4=/[\\^$.*+?()[\]{}|]/g,_4=/^\[object .+?Constructor\]$/,E4=Function.prototype,L4=Object.prototype,T4=E4.toString,O4=L4.hasOwnProperty,N4=RegExp("^"+T4.call(O4).replace($4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function D4(e){if(!lc(e)||A4(e))return!1;var t=x4(e)?N4:_4;return t.test(Le(e))}var P4=D4;function z4(e,t){return e?.[t]}var U4=z4;function R4(e,t){var r=U4(e,t);return P4(r)?r:void 0}var ct=R4,F4=ct(X,"WeakMap"),ea=F4;function V4(e,t){return e===t||e!==e&&t!==t}var B4=V4,q4=9007199254740991;function G4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q4}var H4=G4,JJ=Object.prototype,Y4="[object Arguments]";function Z4(e){return fa(e)&&Br(e)==Y4}var fu=Z4,sc=Object.prototype,Q4=sc.hasOwnProperty,W4=sc.propertyIsEnumerable,XJ=fu(function(){return arguments}())?fu:function(e){return fa(e)&&Q4.call(e,"callee")&&!W4.call(e,"callee")},uc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yu=uc&&typeof module=="object"&&module&&!module.nodeType&&module,K4=yu&&yu.exports===uc,mu=K4?X.Buffer:void 0,eX=mu?mu.isBuffer:void 0,J4="[object Arguments]",X4="[object Array]",e5="[object Boolean]",t5="[object Date]",r5="[object Error]",i5="[object Function]",n5="[object Map]",o5="[object Number]",a5="[object Object]",l5="[object RegExp]",s5="[object Set]",u5="[object String]",c5="[object WeakMap]",d5="[object ArrayBuffer]",p5="[object DataView]",g5="[object Float32Array]",f5="[object Float64Array]",y5="[object Int8Array]",m5="[object Int16Array]",b5="[object Int32Array]",h5="[object Uint8Array]",v5="[object Uint8ClampedArray]",w5="[object Uint16Array]",k5="[object Uint32Array]",N={};N[g5]=N[f5]=N[y5]=N[m5]=N[b5]=N[h5]=N[v5]=N[w5]=N[k5]=!0;N[J4]=N[X4]=N[d5]=N[e5]=N[p5]=N[t5]=N[r5]=N[i5]=N[n5]=N[o5]=N[a5]=N[l5]=N[s5]=N[u5]=N[c5]=!1;function x5(e){return fa(e)&&H4(e.length)&&!!N[Br(e)]}var I5=x5;function C5(e){return function(t){return e(t)}}var A5=C5,cc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=cc&&typeof module=="object"&&module&&!module.nodeType&&module,S5=Dr&&Dr.exports===cc,Ho=S5&&oc.process,M5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Ho&&Ho.binding&&Ho.binding("util")}catch{}}(),bu=M5,hu=bu&&bu.isTypedArray,tX=hu?A5(hu):I5,j5=Object.prototype,rX=j5.hasOwnProperty;function $5(e,t){return function(r){return e(t(r))}}var _5=$5,iX=_5(Object.keys,Object),E5=Object.prototype,nX=E5.hasOwnProperty,L5=ct(Object,"create"),zr=L5;function T5(){this.__data__=zr?zr(null):{},this.size=0}var O5=T5;function N5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var D5=N5,P5="__lodash_hash_undefined__",z5=Object.prototype,U5=z5.hasOwnProperty;function R5(e){var t=this.__data__;if(zr){var r=t[e];return r===P5?void 0:r}return U5.call(t,e)?t[e]:void 0}var F5=R5,V5=Object.prototype,B5=V5.hasOwnProperty;function q5(e){var t=this.__data__;return zr?t[e]!==void 0:B5.call(t,e)}var G5=q5,H5="__lodash_hash_undefined__";function Y5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?H5:t,this}var Z5=Y5;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=O5;dt.prototype.delete=D5;dt.prototype.get=F5;dt.prototype.has=G5;dt.prototype.set=Z5;var vu=dt;function Q5(){this.__data__=[],this.size=0}var W5=Q5;function K5(e,t){for(var r=e.length;r--;)if(B4(e[r][0],t))return r;return-1}var jn=K5,J5=Array.prototype,X5=J5.splice;function e3(e){var t=this.__data__,r=jn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():X5.call(t,r,1),--this.size,!0}var t3=e3;function r3(e){var t=this.__data__,r=jn(t,e);return r<0?void 0:t[r][1]}var i3=r3;function n3(e){return jn(this.__data__,e)>-1}var o3=n3;function a3(e,t){var r=this.__data__,i=jn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var l3=a3;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=W5;pt.prototype.delete=t3;pt.prototype.get=i3;pt.prototype.has=o3;pt.prototype.set=l3;var $n=pt,s3=ct(X,"Map"),Ur=s3;function u3(){this.size=0,this.__data__={hash:new vu,map:new(Ur||$n),string:new vu}}var c3=u3;function d3(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p3=d3;function g3(e,t){var r=e.__data__;return p3(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _n=g3;function f3(e){var t=_n(this,e).delete(e);return this.size-=t?1:0,t}var y3=f3;function m3(e){return _n(this,e).get(e)}var b3=m3;function h3(e){return _n(this,e).has(e)}var v3=h3;function w3(e,t){var r=_n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var k3=w3;function gt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gt.prototype.clear=c3;gt.prototype.delete=y3;gt.prototype.get=b3;gt.prototype.has=v3;gt.prototype.set=k3;var dc=gt;function x3(){this.__data__=new $n,this.size=0}var I3=x3;function C3(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var A3=C3;function S3(e){return this.__data__.get(e)}var M3=S3;function j3(e){return this.__data__.has(e)}var $3=j3,_3=200;function E3(e,t){var r=this.__data__;if(r instanceof $n){var i=r.__data__;if(!Ur||i.length<_3-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new dc(i)}return r.set(e,t),this.size=r.size,this}var L3=E3;function qr(e){var t=this.__data__=new $n(e);this.size=t.size}qr.prototype.clear=I3;qr.prototype.delete=A3;qr.prototype.get=M3;qr.prototype.has=$3;qr.prototype.set=L3;var T3=Object.prototype,oX=T3.propertyIsEnumerable,O3=ct(X,"DataView"),ta=O3,N3=ct(X,"Promise"),ra=N3,D3=ct(X,"Set"),ia=D3,wu="[object Map]",P3="[object Object]",ku="[object Promise]",xu="[object Set]",Iu="[object WeakMap]",Cu="[object DataView]",z3=Le(ta),U3=Le(Ur),R3=Le(ra),F3=Le(ia),V3=Le(ea),ot=Br;(ta&&ot(new ta(new ArrayBuffer(1)))!=Cu||Ur&&ot(new Ur)!=wu||ra&&ot(ra.resolve())!=ku||ia&&ot(new ia)!=xu||ea&&ot(new ea)!=Iu)&&(ot=function(e){var t=Br(e),r=t==P3?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case z3:return Cu;case U3:return wu;case R3:return ku;case F3:return xu;case V3:return Iu}return t});var aX=X.Uint8Array,B3="__lodash_hash_undefined__";function q3(e){return this.__data__.set(e,B3),this}var G3=q3;function H3(e){return this.__data__.has(e)}var Y3=H3;function na(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new dc;++t<r;)this.add(e[t])}na.prototype.add=na.prototype.push=G3;na.prototype.has=Y3;var Au=st?st.prototype:void 0,lX=Au?Au.valueOf:void 0,Z3=Object.prototype,sX=Z3.hasOwnProperty,Q3=Object.prototype,uX=Q3.hasOwnProperty,cX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function pc(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 oa(e,t){let r=await pc(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 W3(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 pc(i,t)}function K3(e){return e!==void 0}var En=K3;function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hr(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}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 J3(e){return Array.isArray(e)?e:e?[e]:[]}function X3(e,t){return t?e:e[0]??""}function gc(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function fc(e,t){return J3(e.ui.experimental.getGlobalStateValue(t.stateId))}function e9(e,t){let r=gc().get(t);return r==null?!1:fc(e,r).length<r.maxCount}function t9(e,t,r){let i=gc().get(t);if(i==null)return!1;let n=fc(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,X3([...n,r],i.isList)),!0)}var ya=class yc{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 yc),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))}},mc=class bc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new bc),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 r9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i9({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 n9=i9,Yo="ly.img.ai.temp";async function o9(e,t){return e.engine.asset.findAllSources().includes(Yo)||e.engine.asset.addLocalSource(Yo),e.engine.asset.apply(Yo,t)}function a9(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 hc(){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 l9(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 s9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ma(e){return e instanceof Error&&e.name==="AbortError"}function u9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function c9(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!
77
77
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
78
78
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
79
- 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 d9(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 p9=d9;function g9(){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 ft=g9;function f9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),y9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a9(e)}))}function y9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var da=f9,m9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ka=m9;function b9(e,t,r){switch(t){case"image":return h9(e,r[t]);case"video":return v9(e,r[t]);case"sticker":return w9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function v9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ka,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function w9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ka,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var k9=b9;async function x9(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 I9(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 C9(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 A9(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 S9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function I9(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 C9(e,t,r){let i=t.width,n=t.height,a=await l9(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 A9(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 S9(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 vc=x9;function M9(e){switch(e.userFlow){case"placeholder":return $9(e);case"generation-only":return j9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function j9(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=hc(),c=await vc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function $9(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=hc(),c=k9(s,a,o);if(i=await o9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await vc(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)&&(wa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var _9=M9;function xa(e){return`${e}.generating`}function E9(e){return`${e}.abort`}function L9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(E9(d),()=>{}),y=c.global(xa(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await _9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){da(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;T9(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(wa(b))return;da(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function T9(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 wc=L9;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function O9({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(xa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return wc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var N9=O9;function kc(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 Or(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=kc(e,t.$ref),n={...Or(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Or(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Or(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Or(e,t[n],r));return i}return t}function D9(e){return Or(e,{...e})}function P9(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 z9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return U9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function U9(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=R9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function R9(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 xc=z9;function Ic(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 Cc(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?F9(e,c,r,i,n,a,o,s):Ac(e,c,r,i,n,a,o,s);case"boolean":return Sc(e,c,r,i,n,a,o,s);case"number":case"integer":return Mc(e,c,r,i,n,a,o,s);case"object":return pa(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 V9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function pa(e,t,r,i,n,a,o,s){let c=xc(t.schema??{},i).reduce((l,u)=>{let d=Cc(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 Ac(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=me(r.id,o,d,"placeholder"),f=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Hr(d,h,f,t.schema.default,""),v=l(p,m),k=B9(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function F9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),{labels:y,icons:f}=Ic(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:me(r.id,o,d,x),icon:f[x]})),m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hr(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Sc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hr(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Mc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Hr(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function V9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Ic(t.schema),I=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ac,boolean:Sc,integer:Mc,object:pa},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:me(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>pa(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Hr(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function B9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var q9=Cc,G9={"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 Su(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Mu(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Su(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Su(g);n[a(l.id,g)]=y}})}});let c={...G9,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function ju(e){return typeof e.document=="function"?e.document():e.document}function $u(e,t,r){let i=D9(e),n=kc(i,t.inputReference);if(!P9(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=xc(a,t);return{inputSchema:a,properties:o}}function _u(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=q9(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];wc(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function H9(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=ju(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=$u(c,s,a.debug);return Mu(y,i,r,i.kind),_u(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ju(s)).then(g=>{let{inputSchema:y,properties:f}=$u(g,s,a.debug);Mu(f,i,r,i.kind),u=_u(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var Y9=H9;async function Z9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return N9(e,t);case"schema":return Y9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Q9=Z9;function W9(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new K2(o,r)),o}return i}var K9=W9;function J9(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 X9=J9,Xo="@imgly/plugin-ai-generation",ev=`
79
+ 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 d9(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 p9=d9;function g9(){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 ft=g9;function f9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),y9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a9(e)}))}function y9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var aa=f9,m9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ba=m9;function b9(e,t,r){switch(t){case"image":return h9(e,r[t]);case"video":return v9(e,r[t]);case"sticker":return w9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(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 v9(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 w9(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 k9=b9;async function x9(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 I9(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 C9(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 A9(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 S9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function I9(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 C9(e,t,r){let i=t.width,n=t.height,a=await l9(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 A9(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 S9(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 vc=x9;function M9(e){switch(e.userFlow){case"placeholder":return $9(e);case"generation-only":return j9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function j9(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=hc(),c=await vc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function $9(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=hc(),c=k9(s,a,o);if(i=await o9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await vc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ma(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var _9=M9;function ha(e){return`${e}.generating`}function E9(e){return`${e}.abort`}function L9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(E9(d),()=>{}),y=c.global(ha(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await _9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){aa(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;T9(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(ma(b))return;aa(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function T9(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 wc=L9;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function O9({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return wc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var N9=O9;function kc(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 Or(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=kc(e,t.$ref),n={...Or(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Or(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Or(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Or(e,t[n],r));return i}return t}function D9(e){return Or(e,{...e})}function P9(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 z9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return U9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function U9(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=R9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function R9(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 xc=z9;function Ic(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 Cc(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?F9(e,c,r,i,n,a,o,s):Ac(e,c,r,i,n,a,o,s);case"boolean":return Sc(e,c,r,i,n,a,o,s);case"number":case"integer":return Mc(e,c,r,i,n,a,o,s);case"object":return la(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return V9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function la(e,t,r,i,n,a,o,s){let c=xc(t.schema??{},i).reduce((l,u)=>{let d=Cc(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 Ac(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=me(r.id,o,d,"placeholder"),f=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Hr(d,h,f,t.schema.default,""),v=l(p,m),k=B9(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function F9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),{labels:y,icons:f}=Ic(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:me(r.id,o,d,x),icon:f[x]})),m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hr(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Sc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hr(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Mc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Hr(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function V9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Ic(t.schema),I=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ac,boolean:Sc,integer:Mc,object:la},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:me(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>la(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Hr(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function B9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var q9=Cc,G9={"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 Su(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Mu(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Su(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Su(g);n[a(l.id,g)]=y}})}});let c={...G9,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function ju(e){return typeof e.document=="function"?e.document():e.document}function $u(e,t,r){let i=D9(e),n=kc(i,t.inputReference);if(!P9(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=xc(a,t);return{inputSchema:a,properties:o}}function _u(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=q9(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];wc(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function H9(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=ju(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=$u(c,s,a.debug);return Mu(y,i,r,i.kind),_u(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ju(s)).then(g=>{let{inputSchema:y,properties:f}=$u(g,s,a.debug);Mu(f,i,r,i.kind),u=_u(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var Y9=H9;async function Z9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return N9(e,t);case"schema":return Y9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Q9=Z9;function W9(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new K2(o,r)),o}return i}var K9=W9;function J9(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 X9=J9,Zo="@imgly/plugin-ai-generation",ev=`
80
80
  <svg>
81
81
  <symbol
82
82
  fill="none"
@@ -94,7 +94,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
94
94
  fill="none"
95
95
  xmlns="http://www.w3.org/2000/svg"
96
96
  viewBox="0 0 24 24"
97
- id="${Xo}/image"
97
+ id="${Zo}/image"
98
98
  >
99
99
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
100
100
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -106,7 +106,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
106
106
  fill="none"
107
107
  xmlns="http://www.w3.org/2000/svg"
108
108
  viewBox="0 0 24 24"
109
- id="${Xo}/video"
109
+ id="${Zo}/video"
110
110
  >
111
111
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
112
112
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -117,7 +117,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
117
117
  fill="none"
118
118
  xmlns="http://www.w3.org/2000/svg"
119
119
  viewBox="0 0 24 24"
120
- id="${Xo}/audio"
120
+ id="${Zo}/audio"
121
121
  >
122
122
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
123
123
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -148,8 +148,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
148
148
 
149
149
  </symbol>
150
150
  </svg>
151
- `,tv=ev;function rv(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 jc(2e3),await iv(t,e,r)):i(t,r)}async function iv(e,t,r){switch(t.kind){case"image":return nv(e,t,r);case"video":return ov(e,t,r);case"text":return av(e,t,r);case"audio":return sv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function nv(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 W3(s,r),l=await ca(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(`
152
- `,"+")}`}}async function ov(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function av(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 lv(a,r.abortSignal)}async function*lv(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 jc(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 sv(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:uv(220,i),duration:i,thumbnailUrl:void 0}}function uv(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 cv(i,44100)}function cv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function jc(e){return new Promise(t=>{setTimeout(t,e)})}var dv=rv,$c="USER_CANCEL";function pv(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r9([...e.provider.output.middleware??[],...r?.middlewares??[],n9({enable:r?.debug}),dv({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:s9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return wa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$c?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var gv=pv;async function fv(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=va.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=K9(a),s=X9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=gv({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Q9(a,c);u9(r.cesdk,"@imgly/plugin-ai-generation",tv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return mc.get().register(u),u}var ea=fv;function yv(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 J2(n,r,i);return r.engine.asset.addSource(a),a.id}var mv=yv;function jn(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 bv(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ea(e,u,r,i)));o.push(...l),a=vv({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ea(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ea(e,d,r,i)));o.push(...u),a=hv({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=mv({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Ln)}),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 hv({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:jn(e,`${A}.label`),icon:f.value!==A&&wv(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:jn(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:jn(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function vv({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Rr(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:jn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function wv(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(xa(r.id),!1).value)}var kv=bv,Tn="ly.img.ai.editMode",_c="ly.img.ai.metadata";async function xv(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 nc(n,_c),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var Iv=xv;function Cv(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 Av=Cv;function Sv(e){return`ly.img.ai.${e}.canvasMenu`}var Mv=Sv;function jv(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=jv(r);i!=null&&t.push(i)}return t}function $v(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Mv(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 _v=$v;function Ev(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 Lv(e,t);case"image":return Tv(e,t);case"video":return Ov(e,t);case"audio":return Nv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Lv(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 Tv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await ca(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await ca(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function Ov(e,t){throw new Error("Function not implemented.")}async function Nv(e,t){throw new Error("Function not implemented.")}var Dv=Ev;function Pv(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 zv=Pv,Uv=class Ec{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ec),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ee=Uv;function Rv(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(Ln)),c=new nc(e.cesdk.engine,_c),l=e.lock??!0?zv({engine:e.cesdk.engine,editModeToLockTo:Tn,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ee.get().register(u,{onCancelGeneration:()=>{o.abort($c),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await Dv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ee.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),da(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Lu=Rv;function Fv(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()===Tn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=_v({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=Vv(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))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,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=mc.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(Ln);return M=Av(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Rr($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Lu({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Lu({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function Vv(e){return e.map(t=>t==="ly.img.separator"?t:va.get().getBy({id:t,type:"quick"})[0]).filter(Ln)}var Bv=Fv;async function qv(e){let t=await Bv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await Iv({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Tn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ee.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Gv=qv,gX=5*60*1e3,Hv="@imgly/plugin-ai-image-generation",Yv=`
151
+ `,tv=ev;function rv(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 jc(2e3),await iv(t,e,r)):i(t,r)}async function iv(e,t,r){switch(t.kind){case"image":return nv(e,t,r);case"video":return ov(e,t,r);case"text":return av(e,t,r);case"audio":return sv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function nv(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 W3(s,r),l=await oa(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(`
152
+ `,"+")}`}}async function ov(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function av(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 lv(a,r.abortSignal)}async function*lv(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 jc(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 sv(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:uv(220,i),duration:i,thumbnailUrl:void 0}}function uv(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 cv(i,44100)}function cv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function jc(e){return new Promise(t=>{setTimeout(t,e)})}var dv=rv,$c="USER_CANCEL";function pv(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r9([...e.provider.output.middleware??[],...r?.middlewares??[],n9({enable:r?.debug}),dv({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:s9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ma(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$c?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var gv=pv;async function fv(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ya.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=K9(a),s=X9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=gv({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Q9(a,c);u9(r.cesdk,"@imgly/plugin-ai-generation",tv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return mc.get().register(u),u}var Qo=fv;function yv(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 J2(n,r,i);return r.engine.asset.addSource(a),a.id}var mv=yv;function sa(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function bv(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.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Qo(e,u,r,i)));o.push(...l),a=vv({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Qo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Qo(e,d,r,i)));o.push(...u),a=hv({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=mv({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(En)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function hv({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:sa(e,`${A}.label`),icon:f.value!==A&&wv(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:sa(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function vv({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Rr(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:sa(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function wv(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ha(r.id),!1).value)}var kv=bv,Ln="ly.img.ai.editMode",_c="ly.img.ai.metadata";async function xv(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 nc(n,_c),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var Iv=xv;function Cv(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 Av=Cv;function Sv(e){return`ly.img.ai.${e}.canvasMenu`}var Mv=Sv;function jv(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=jv(r);i!=null&&t.push(i)}return t}function $v(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Mv(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 _v=$v;function Ev(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 Lv(e,t);case"image":return Tv(e,t);case"video":return Ov(e,t);case"audio":return Nv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Lv(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 Tv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await oa(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await oa(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function Ov(e,t){throw new Error("Function not implemented.")}async function Nv(e,t){throw new Error("Function not implemented.")}var Dv=Ev;function Pv(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 zv=Pv,Uv=class Ec{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ec),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ee=Uv;function Rv(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(En)),c=new nc(e.cesdk.engine,_c),l=e.lock??!0?zv({engine:e.cesdk.engine,editModeToLockTo:Ln,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ee.get().register(u,{onCancelGeneration:()=>{o.abort($c),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await Dv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ee.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),aa(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Lu=Rv;function Fv(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()===Ln)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=_v({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=Vv(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))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,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=mc.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(En);return M=Av(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Rr($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Lu({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Lu({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function Vv(e){return e.map(t=>t==="ly.img.separator"?t:ya.get().getBy({id:t,type:"quick"})[0]).filter(En)}var Bv=Fv;async function qv(e){let t=await Bv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await Iv({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Ln){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ee.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Gv=qv,gX=5*60*1e3,Hv="@imgly/plugin-ai-image-generation",Yv=`
153
153
  <svg>
154
154
  <symbol
155
155
  fill="none"
@@ -163,10 +163,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
163
163
 
164
164
  </symbol>
165
165
  </svg>
166
- `,Zv=Yv,Qv=typeof global=="object"&&global&&global.Object===Object&&global,Lc=Qv,Wv=typeof self=="object"&&self&&self.Object===Object&&self,Kv=Lc||Wv||Function("return this")(),ee=Kv,Jv=ee.Symbol,ut=Jv,Tc=Object.prototype,Xv=Tc.hasOwnProperty,e8=Tc.toString,Er=ut?ut.toStringTag:void 0;function t8(e){var t=Xv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=e8.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var r8=t8,i8=Object.prototype,n8=i8.toString;function o8(e){return n8.call(e)}var a8=o8,l8="[object Null]",s8="[object Undefined]",Tu=ut?ut.toStringTag:void 0;function u8(e){return e==null?e===void 0?s8:l8:Tu&&Tu in Object(e)?r8(e):a8(e)}var Yr=u8;function c8(e){return e!=null&&typeof e=="object"}var Ia=c8,fX=Array.isArray;function d8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Oc=d8,p8="[object AsyncFunction]",g8="[object Function]",f8="[object GeneratorFunction]",y8="[object Proxy]";function m8(e){if(!Oc(e))return!1;var t=Yr(e);return t==g8||t==f8||t==p8||t==y8}var b8=m8,h8=ee["__core-js_shared__"],ta=h8,Ou=function(){var e=/[^.]+$/.exec(ta&&ta.keys&&ta.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v8(e){return!!Ou&&Ou in e}var w8=v8,k8=Function.prototype,x8=k8.toString;function I8(e){if(e!=null){try{return x8.call(e)}catch{}try{return e+""}catch{}}return""}var Te=I8,C8=/[\\^$.*+?()[\]{}|]/g,A8=/^\[object .+?Constructor\]$/,S8=Function.prototype,M8=Object.prototype,j8=S8.toString,$8=M8.hasOwnProperty,_8=RegExp("^"+j8.call($8).replace(C8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E8(e){if(!Oc(e)||w8(e))return!1;var t=b8(e)?_8:A8;return t.test(Te(e))}var L8=E8;function T8(e,t){return e?.[t]}var O8=T8;function N8(e,t){var r=O8(e,t);return L8(r)?r:void 0}var yt=N8,D8=yt(ee,"WeakMap"),ga=D8;function P8(e,t){return e===t||e!==e&&t!==t}var z8=P8,U8=9007199254740991;function R8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U8}var F8=R8,yX=Object.prototype,V8="[object Arguments]";function B8(e){return Ia(e)&&Yr(e)==V8}var Nu=B8,Nc=Object.prototype,q8=Nc.hasOwnProperty,G8=Nc.propertyIsEnumerable,mX=Nu(function(){return arguments}())?Nu:function(e){return Ia(e)&&q8.call(e,"callee")&&!G8.call(e,"callee")},Dc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Dc&&typeof module=="object"&&module&&!module.nodeType&&module,H8=Du&&Du.exports===Dc,Pu=H8?ee.Buffer:void 0,bX=Pu?Pu.isBuffer:void 0,Y8="[object Arguments]",Z8="[object Array]",Q8="[object Boolean]",W8="[object Date]",K8="[object Error]",J8="[object Function]",X8="[object Map]",e7="[object Number]",t7="[object Object]",r7="[object RegExp]",i7="[object Set]",n7="[object String]",o7="[object WeakMap]",a7="[object ArrayBuffer]",l7="[object DataView]",s7="[object Float32Array]",u7="[object Float64Array]",c7="[object Int8Array]",d7="[object Int16Array]",p7="[object Int32Array]",g7="[object Uint8Array]",f7="[object Uint8ClampedArray]",y7="[object Uint16Array]",m7="[object Uint32Array]",D={};D[s7]=D[u7]=D[c7]=D[d7]=D[p7]=D[g7]=D[f7]=D[y7]=D[m7]=!0;D[Y8]=D[Z8]=D[a7]=D[Q8]=D[l7]=D[W8]=D[K8]=D[J8]=D[X8]=D[e7]=D[t7]=D[r7]=D[i7]=D[n7]=D[o7]=!1;function b7(e){return Ia(e)&&F8(e.length)&&!!D[Yr(e)]}var h7=b7;function v7(e){return function(t){return e(t)}}var w7=v7,Pc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Pc&&typeof module=="object"&&module&&!module.nodeType&&module,k7=Pr&&Pr.exports===Pc,ra=k7&&Lc.process,x7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ra&&ra.binding&&ra.binding("util")}catch{}}(),zu=x7,Uu=zu&&zu.isTypedArray,hX=Uu?w7(Uu):h7,I7=Object.prototype,vX=I7.hasOwnProperty;function C7(e,t){return function(r){return e(t(r))}}var A7=C7,wX=A7(Object.keys,Object),S7=Object.prototype,kX=S7.hasOwnProperty,M7=yt(Object,"create"),Fr=M7;function j7(){this.__data__=Fr?Fr(null):{},this.size=0}var $7=j7;function _7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E7=_7,L7="__lodash_hash_undefined__",T7=Object.prototype,O7=T7.hasOwnProperty;function N7(e){var t=this.__data__;if(Fr){var r=t[e];return r===L7?void 0:r}return O7.call(t,e)?t[e]:void 0}var D7=N7,P7=Object.prototype,z7=P7.hasOwnProperty;function U7(e){var t=this.__data__;return Fr?t[e]!==void 0:z7.call(t,e)}var R7=U7,F7="__lodash_hash_undefined__";function V7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?F7:t,this}var B7=V7;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=$7;mt.prototype.delete=E7;mt.prototype.get=D7;mt.prototype.has=R7;mt.prototype.set=B7;var Ru=mt;function q7(){this.__data__=[],this.size=0}var G7=q7;function H7(e,t){for(var r=e.length;r--;)if(z8(e[r][0],t))return r;return-1}var On=H7,Y7=Array.prototype,Z7=Y7.splice;function Q7(e){var t=this.__data__,r=On(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z7.call(t,r,1),--this.size,!0}var W7=Q7;function K7(e){var t=this.__data__,r=On(t,e);return r<0?void 0:t[r][1]}var J7=K7;function X7(e){return On(this.__data__,e)>-1}var e6=X7;function t6(e,t){var r=this.__data__,i=On(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r6=t6;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=G7;bt.prototype.delete=W7;bt.prototype.get=J7;bt.prototype.has=e6;bt.prototype.set=r6;var Nn=bt,i6=yt(ee,"Map"),Vr=i6;function n6(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||Nn),string:new Ru}}var o6=n6;function a6(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l6=a6;function s6(e,t){var r=e.__data__;return l6(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Dn=s6;function u6(e){var t=Dn(this,e).delete(e);return this.size-=t?1:0,t}var c6=u6;function d6(e){return Dn(this,e).get(e)}var p6=d6;function g6(e){return Dn(this,e).has(e)}var f6=g6;function y6(e,t){var r=Dn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m6=y6;function ht(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ht.prototype.clear=o6;ht.prototype.delete=c6;ht.prototype.get=p6;ht.prototype.has=f6;ht.prototype.set=m6;var zc=ht;function b6(){this.__data__=new Nn,this.size=0}var h6=b6;function v6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w6=v6;function k6(e){return this.__data__.get(e)}var x6=k6;function I6(e){return this.__data__.has(e)}var C6=I6,A6=200;function S6(e,t){var r=this.__data__;if(r instanceof Nn){var i=r.__data__;if(!Vr||i.length<A6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zc(i)}return r.set(e,t),this.size=r.size,this}var M6=S6;function Zr(e){var t=this.__data__=new Nn(e);this.size=t.size}Zr.prototype.clear=h6;Zr.prototype.delete=w6;Zr.prototype.get=x6;Zr.prototype.has=C6;Zr.prototype.set=M6;var j6=Object.prototype,xX=j6.propertyIsEnumerable,$6=yt(ee,"DataView"),fa=$6,_6=yt(ee,"Promise"),ya=_6,E6=yt(ee,"Set"),ma=E6,Fu="[object Map]",L6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",T6=Te(fa),O6=Te(Vr),N6=Te(ya),D6=Te(ma),P6=Te(ga),at=Yr;(fa&&at(new fa(new ArrayBuffer(1)))!=Gu||Vr&&at(new Vr)!=Fu||ya&&at(ya.resolve())!=Vu||ma&&at(new ma)!=Bu||ga&&at(new ga)!=qu)&&(at=function(e){var t=Yr(e),r=t==L6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case T6:return Gu;case O6:return Fu;case N6:return Vu;case D6:return Bu;case P6:return qu}return t});var IX=ee.Uint8Array,z6="__lodash_hash_undefined__";function U6(e){return this.__data__.set(e,z6),this}var R6=U6;function F6(e){return this.__data__.has(e)}var V6=F6;function ba(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zc;++t<r;)this.add(e[t])}ba.prototype.add=ba.prototype.push=R6;ba.prototype.has=V6;var Hu=ut?ut.prototype:void 0,CX=Hu?Hu.valueOf:void 0,B6=Object.prototype,AX=B6.hasOwnProperty,q6=Object.prototype,SX=q6.hasOwnProperty,MX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function G6(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 Oe(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 G6(i,t)}function H6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=H6;function Y6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function Z6(e){return typeof e?.translate=="function"}function Q6(e,t,r){return e&&Y6(e)&&Z6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",W6=["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.createImage","ly.img.createVideo","ly.img.animateBetweenImages"],Pn="editImage",ue=`ly.img.${Pn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function kn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var K6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:ft(),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.PromptInput(`${ue}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(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:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),J6=K6,zn="swapBackground",ce=`ly.img.${zn}`,Qu=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function In(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 X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:ft(),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.PromptInput(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(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:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),ew=X6,Un="styleTransfer",Lr=`ly.img.${Un}`,tw=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Wu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var rw=[{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."}],iw=({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:Lr,type:"quick",kind:"image",label:`${tw}`,enable:ft(),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:()=>{rw.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 Oe(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"})}}})})}})}})}})}}),nw=iw,Rn="artistTransfer",Tr=`ly.img.${Rn}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Ku(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var aw=[{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."}],lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${ow}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{aw.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(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"})}}})})}})}})}})}}),sw=lw,Fn="createVariant",de=`ly.img.${Fn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function An(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 uw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!ft()(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.PromptInput(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(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:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let m=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(m,v)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let h=await Oe(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{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:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),cw=uw,Vn="createImage",Xu=`ly.img.${Vn}`,dw=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,ec=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function pw(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 gw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createImage",!0),H(e,{en:{[`${ec}`]:"Create Image from Reference...",[`${ec}.description`]:"Create an image from the selected image"}}),{id:Xu,type:"quick",kind:"image",label:`${dw}`,enable:ft(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Xu}.button`,{label:pw(n),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",isDisabled:!e9(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Oe(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.selectedProvider.fromImage",n),t9(e,n,o),e.ui.openPanel("ly.img.ai.image-generation"),i()}catch(a){console.error("Error opening image generation panel:",a)}}})}}),fw=gw,Bn="combineImages",pe=`ly.img.${Bn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ia}.apply`]:"Combine",[`${ia}`]:"Combine Images...",[`${ia}.prompt`]:"Image Combination Instructions",[`${tc}.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:`${tc}`,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.PromptInput(`${pe}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(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:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(y),m=o.block.getHeight(y),v=.02*Math.min(h,m)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(I=>Oe(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),mw=yw,qn="remixPage",rc=`ly.img.${qn}`,bw=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,hw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function vw(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 ww=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${hw}`]:"Turn Page into Image"}}),{id:rc,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${bw}`,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(`${rc}.button`,{label:vw(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(m=>{i.block.destroy(m)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),kw=ww,Gn="remixPageWithPrompt",ge=`ly.img.${Gn}`,ic=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,na=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function Mn(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 xw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${na}`]:"Remix Page...",[`${na}.prompt`]:"Remix Page Prompt",[`${ic}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${na}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ic}`,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.PromptInput(`${ge}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(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:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),m=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,I),o.block.appendChild(f,b),o.block.setWidth(b,h),o.block.setHeight(b,m),o.block.setPositionX(b,v),o.block.setPositionY(b,k);let x=o.block.createFill("image");o.block.setFill(b,x),o.block.setString(x,"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:Mn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),Iw=xw,fe="ly.img.ai.image-generation";function Cw(e){return{async initialize({cesdk:t}){if(t==null)return;c9(t,Nr,"1.83.0-nightly.20260917"),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=va.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Hv,Zv),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:Q6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});Aw(e),r.register(J6({cesdk:t})),r.register(ew({cesdk:t})),r.register(nw({cesdk:t})),r.register(sw({cesdk:t})),r.register(cw({cesdk:t})),r.register(fw({cesdk:t})),r.register(mw({cesdk:t})),r.register(kw({cesdk:t})),r.register(Iw({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 kv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Gv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:W6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Tn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),p9({cesdk:t,panelId:fe})):n()}}}function Aw(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 Sw=Cw,Mw=e=>({name:Nr,version:"1.83.0-nightly.20260917",...Sw(e)}),Uc=Mw;function jw(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var ve=jw,$w=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;kt(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=()=>{kt(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 kt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),kt(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 kt(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]=kt(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]=kt(n,t,a)}return e}var _w=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ew=typeof global=="object"&&global&&global.Object===Object&&global,Ad=Ew,Lw=typeof self=="object"&&self&&self.Object===Object&&self,Tw=Ad||Lw||Function("return this")(),te=Tw,Ow=te.Symbol,xt=Ow,Sd=Object.prototype,Nw=Sd.hasOwnProperty,Dw=Sd.toString,Qr=xt?xt.toStringTag:void 0;function Pw(e){var t=Nw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=Dw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var zw=Pw,Uw=Object.prototype,Rw=Uw.toString;function Fw(e){return Rw.call(e)}var Vw=Fw,Bw="[object Null]",qw="[object Undefined]",Rc=xt?xt.toStringTag:void 0;function Gw(e){return e==null?e===void 0?qw:Bw:Rc&&Rc in Object(e)?zw(e):Vw(e)}var ai=Gw;function Hw(e){return e!=null&&typeof e=="object"}var Ba=Hw,OX=Array.isArray;function Yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Md=Yw,Zw="[object AsyncFunction]",Qw="[object Function]",Ww="[object GeneratorFunction]",Kw="[object Proxy]";function Jw(e){if(!Md(e))return!1;var t=ai(e);return t==Qw||t==Ww||t==Zw||t==Kw}var Xw=Jw,ek=te["__core-js_shared__"],Ca=ek,Fc=function(){var e=/[^.]+$/.exec(Ca&&Ca.keys&&Ca.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tk(e){return!!Fc&&Fc in e}var rk=tk,ik=Function.prototype,nk=ik.toString;function ok(e){if(e!=null){try{return nk.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=ok,ak=/[\\^$.*+?()[\]{}|]/g,lk=/^\[object .+?Constructor\]$/,sk=Function.prototype,uk=Object.prototype,ck=sk.toString,dk=uk.hasOwnProperty,pk=RegExp("^"+ck.call(dk).replace(ak,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gk(e){if(!Md(e)||rk(e))return!1;var t=Xw(e)?pk:lk;return t.test(Ne(e))}var fk=gk;function yk(e,t){return e?.[t]}var mk=yk;function bk(e,t){var r=mk(e,t);return fk(r)?r:void 0}var Ct=bk,hk=Ct(te,"WeakMap"),Ea=hk;function vk(e,t){return e===t||e!==e&&t!==t}var wk=vk,kk=9007199254740991;function xk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kk}var Ik=xk,NX=Object.prototype,Ck="[object Arguments]";function Ak(e){return Ba(e)&&ai(e)==Ck}var Vc=Ak,jd=Object.prototype,Sk=jd.hasOwnProperty,Mk=jd.propertyIsEnumerable,DX=Vc(function(){return arguments}())?Vc:function(e){return Ba(e)&&Sk.call(e,"callee")&&!Mk.call(e,"callee")},$d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bc=$d&&typeof module=="object"&&module&&!module.nodeType&&module,jk=Bc&&Bc.exports===$d,qc=jk?te.Buffer:void 0,PX=qc?qc.isBuffer:void 0,$k="[object Arguments]",_k="[object Array]",Ek="[object Boolean]",Lk="[object Date]",Tk="[object Error]",Ok="[object Function]",Nk="[object Map]",Dk="[object Number]",Pk="[object Object]",zk="[object RegExp]",Uk="[object Set]",Rk="[object String]",Fk="[object WeakMap]",Vk="[object ArrayBuffer]",Bk="[object DataView]",qk="[object Float32Array]",Gk="[object Float64Array]",Hk="[object Int8Array]",Yk="[object Int16Array]",Zk="[object Int32Array]",Qk="[object Uint8Array]",Wk="[object Uint8ClampedArray]",Kk="[object Uint16Array]",Jk="[object Uint32Array]",P={};P[qk]=P[Gk]=P[Hk]=P[Yk]=P[Zk]=P[Qk]=P[Wk]=P[Kk]=P[Jk]=!0;P[$k]=P[_k]=P[Vk]=P[Ek]=P[Bk]=P[Lk]=P[Tk]=P[Ok]=P[Nk]=P[Dk]=P[Pk]=P[zk]=P[Uk]=P[Rk]=P[Fk]=!1;function Xk(e){return Ba(e)&&Ik(e.length)&&!!P[ai(e)]}var ex=Xk;function tx(e){return function(t){return e(t)}}var rx=tx,_d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=_d&&typeof module=="object"&&module&&!module.nodeType&&module,ix=ei&&ei.exports===_d,Aa=ix&&Ad.process,nx=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||Aa&&Aa.binding&&Aa.binding("util")}catch{}}(),Gc=nx,Hc=Gc&&Gc.isTypedArray,zX=Hc?rx(Hc):ex,ox=Object.prototype,UX=ox.hasOwnProperty;function ax(e,t){return function(r){return e(t(r))}}var lx=ax,RX=lx(Object.keys,Object),sx=Object.prototype,FX=sx.hasOwnProperty,ux=Ct(Object,"create"),ri=ux;function cx(){this.__data__=ri?ri(null):{},this.size=0}var dx=cx;function px(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gx=px,fx="__lodash_hash_undefined__",yx=Object.prototype,mx=yx.hasOwnProperty;function bx(e){var t=this.__data__;if(ri){var r=t[e];return r===fx?void 0:r}return mx.call(t,e)?t[e]:void 0}var hx=bx,vx=Object.prototype,wx=vx.hasOwnProperty;function kx(e){var t=this.__data__;return ri?t[e]!==void 0:wx.call(t,e)}var xx=kx,Ix="__lodash_hash_undefined__";function Cx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ri&&t===void 0?Ix: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=dx;At.prototype.delete=gx;At.prototype.get=hx;At.prototype.has=xx;At.prototype.set=Ax;var Yc=At;function Sx(){this.__data__=[],this.size=0}var Mx=Sx;function jx(e,t){for(var r=e.length;r--;)if(wk(e[r][0],t))return r;return-1}var Zn=jx,$x=Array.prototype,_x=$x.splice;function Ex(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_x.call(t,r,1),--this.size,!0}var Lx=Ex;function Tx(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var Ox=Tx;function Nx(e){return Zn(this.__data__,e)>-1}var Dx=Nx;function Px(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 zx=Px;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=Mx;St.prototype.delete=Lx;St.prototype.get=Ox;St.prototype.has=Dx;St.prototype.set=zx;var Qn=St,Ux=Ct(te,"Map"),ii=Ux;function Rx(){this.size=0,this.__data__={hash:new Yc,map:new(ii||Qn),string:new Yc}}var Fx=Rx;function Vx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bx=Vx;function qx(e,t){var r=e.__data__;return Bx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=qx;function Gx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var Hx=Gx;function Yx(e){return Wn(this,e).get(e)}var Zx=Yx;function Qx(e){return Wn(this,e).has(e)}var Wx=Qx;function Kx(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jx=Kx;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=Fx;Mt.prototype.delete=Hx;Mt.prototype.get=Zx;Mt.prototype.has=Wx;Mt.prototype.set=Jx;var Ed=Mt;function Xx(){this.__data__=new Qn,this.size=0}var eI=Xx;function tI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rI=tI;function iI(e){return this.__data__.get(e)}var nI=iI;function oI(e){return this.__data__.has(e)}var aI=oI,lI=200;function sI(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ii||i.length<lI-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ed(i)}return r.set(e,t),this.size=r.size,this}var uI=sI;function li(e){var t=this.__data__=new Qn(e);this.size=t.size}li.prototype.clear=eI;li.prototype.delete=rI;li.prototype.get=nI;li.prototype.has=aI;li.prototype.set=uI;var cI=Object.prototype,VX=cI.propertyIsEnumerable,dI=Ct(te,"DataView"),La=dI,pI=Ct(te,"Promise"),Ta=pI,gI=Ct(te,"Set"),Oa=gI,Zc="[object Map]",fI="[object Object]",Qc="[object Promise]",Wc="[object Set]",Kc="[object WeakMap]",Jc="[object DataView]",yI=Ne(La),mI=Ne(ii),bI=Ne(Ta),hI=Ne(Oa),vI=Ne(Ea),vt=ai;(La&&vt(new La(new ArrayBuffer(1)))!=Jc||ii&&vt(new ii)!=Zc||Ta&&vt(Ta.resolve())!=Qc||Oa&&vt(new Oa)!=Wc||Ea&&vt(new Ea)!=Kc)&&(vt=function(e){var t=ai(e),r=t==fI?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case yI:return Jc;case mI:return Zc;case bI:return Qc;case hI:return Wc;case vI:return Kc}return t});var BX=te.Uint8Array,wI="__lodash_hash_undefined__";function kI(e){return this.__data__.set(e,wI),this}var xI=kI;function II(e){return this.__data__.has(e)}var CI=II;function Na(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ed;++t<r;)this.add(e[t])}Na.prototype.add=Na.prototype.push=xI;Na.prototype.has=CI;var Xc=xt?xt.prototype:void 0,qX=Xc?Xc.valueOf:void 0,AI=Object.prototype,GX=AI.hasOwnProperty,SI=Object.prototype,HX=SI.hasOwnProperty,YX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MI(e,t){let r=await Ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ld(i,t)}function $I(e){return e!==void 0}var _I=$I;function si(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ui(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}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 EI(e){return Array.isArray(e)?e:e?[e]:[]}function LI(e,t){return t?e:e[0]??""}function Td(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function Od(e,t){return EI(e.ui.experimental.getGlobalStateValue(t.stateId))}function TI(e,t){let r=Td().get(t);return r==null?!1:Od(e,r).length<r.maxCount}function OI(e,t,r){let i=Td().get(t);if(i==null)return!1;let n=Od(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,LI([...n,r],i.isList)),!0)}var Hn=class Nd{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 Nd),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))}},NI=class Dd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Dd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function DI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function PI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var zI=PI,Sa="ly.img.ai.temp";async function UI(e,t){return e.engine.asset.findAllSources().includes(Sa)||e.engine.asset.addLocalSource(Sa),e.engine.asset.apply(Sa,t)}function RI(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 Pd(){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 FI(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 VI(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 qa(e){return e instanceof Error&&e.name==="AbortError"}function BI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function qI(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!
166
+ `,Zv=Yv,Qv=typeof global=="object"&&global&&global.Object===Object&&global,Lc=Qv,Wv=typeof self=="object"&&self&&self.Object===Object&&self,Kv=Lc||Wv||Function("return this")(),ee=Kv,Jv=ee.Symbol,ut=Jv,Tc=Object.prototype,Xv=Tc.hasOwnProperty,e8=Tc.toString,Er=ut?ut.toStringTag:void 0;function t8(e){var t=Xv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=e8.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var r8=t8,i8=Object.prototype,n8=i8.toString;function o8(e){return n8.call(e)}var a8=o8,l8="[object Null]",s8="[object Undefined]",Tu=ut?ut.toStringTag:void 0;function u8(e){return e==null?e===void 0?s8:l8:Tu&&Tu in Object(e)?r8(e):a8(e)}var Yr=u8;function c8(e){return e!=null&&typeof e=="object"}var va=c8,fX=Array.isArray;function d8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Oc=d8,p8="[object AsyncFunction]",g8="[object Function]",f8="[object GeneratorFunction]",y8="[object Proxy]";function m8(e){if(!Oc(e))return!1;var t=Yr(e);return t==g8||t==f8||t==p8||t==y8}var b8=m8,h8=ee["__core-js_shared__"],Wo=h8,Ou=function(){var e=/[^.]+$/.exec(Wo&&Wo.keys&&Wo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v8(e){return!!Ou&&Ou in e}var w8=v8,k8=Function.prototype,x8=k8.toString;function I8(e){if(e!=null){try{return x8.call(e)}catch{}try{return e+""}catch{}}return""}var Te=I8,C8=/[\\^$.*+?()[\]{}|]/g,A8=/^\[object .+?Constructor\]$/,S8=Function.prototype,M8=Object.prototype,j8=S8.toString,$8=M8.hasOwnProperty,_8=RegExp("^"+j8.call($8).replace(C8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E8(e){if(!Oc(e)||w8(e))return!1;var t=b8(e)?_8:A8;return t.test(Te(e))}var L8=E8;function T8(e,t){return e?.[t]}var O8=T8;function N8(e,t){var r=O8(e,t);return L8(r)?r:void 0}var yt=N8,D8=yt(ee,"WeakMap"),ua=D8;function P8(e,t){return e===t||e!==e&&t!==t}var z8=P8,U8=9007199254740991;function R8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U8}var F8=R8,yX=Object.prototype,V8="[object Arguments]";function B8(e){return va(e)&&Yr(e)==V8}var Nu=B8,Nc=Object.prototype,q8=Nc.hasOwnProperty,G8=Nc.propertyIsEnumerable,mX=Nu(function(){return arguments}())?Nu:function(e){return va(e)&&q8.call(e,"callee")&&!G8.call(e,"callee")},Dc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Dc&&typeof module=="object"&&module&&!module.nodeType&&module,H8=Du&&Du.exports===Dc,Pu=H8?ee.Buffer:void 0,bX=Pu?Pu.isBuffer:void 0,Y8="[object Arguments]",Z8="[object Array]",Q8="[object Boolean]",W8="[object Date]",K8="[object Error]",J8="[object Function]",X8="[object Map]",e7="[object Number]",t7="[object Object]",r7="[object RegExp]",i7="[object Set]",n7="[object String]",o7="[object WeakMap]",a7="[object ArrayBuffer]",l7="[object DataView]",s7="[object Float32Array]",u7="[object Float64Array]",c7="[object Int8Array]",d7="[object Int16Array]",p7="[object Int32Array]",g7="[object Uint8Array]",f7="[object Uint8ClampedArray]",y7="[object Uint16Array]",m7="[object Uint32Array]",D={};D[s7]=D[u7]=D[c7]=D[d7]=D[p7]=D[g7]=D[f7]=D[y7]=D[m7]=!0;D[Y8]=D[Z8]=D[a7]=D[Q8]=D[l7]=D[W8]=D[K8]=D[J8]=D[X8]=D[e7]=D[t7]=D[r7]=D[i7]=D[n7]=D[o7]=!1;function b7(e){return va(e)&&F8(e.length)&&!!D[Yr(e)]}var h7=b7;function v7(e){return function(t){return e(t)}}var w7=v7,Pc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Pc&&typeof module=="object"&&module&&!module.nodeType&&module,k7=Pr&&Pr.exports===Pc,Ko=k7&&Lc.process,x7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Ko&&Ko.binding&&Ko.binding("util")}catch{}}(),zu=x7,Uu=zu&&zu.isTypedArray,hX=Uu?w7(Uu):h7,I7=Object.prototype,vX=I7.hasOwnProperty;function C7(e,t){return function(r){return e(t(r))}}var A7=C7,wX=A7(Object.keys,Object),S7=Object.prototype,kX=S7.hasOwnProperty,M7=yt(Object,"create"),Fr=M7;function j7(){this.__data__=Fr?Fr(null):{},this.size=0}var $7=j7;function _7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E7=_7,L7="__lodash_hash_undefined__",T7=Object.prototype,O7=T7.hasOwnProperty;function N7(e){var t=this.__data__;if(Fr){var r=t[e];return r===L7?void 0:r}return O7.call(t,e)?t[e]:void 0}var D7=N7,P7=Object.prototype,z7=P7.hasOwnProperty;function U7(e){var t=this.__data__;return Fr?t[e]!==void 0:z7.call(t,e)}var R7=U7,F7="__lodash_hash_undefined__";function V7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?F7:t,this}var B7=V7;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=$7;mt.prototype.delete=E7;mt.prototype.get=D7;mt.prototype.has=R7;mt.prototype.set=B7;var Ru=mt;function q7(){this.__data__=[],this.size=0}var G7=q7;function H7(e,t){for(var r=e.length;r--;)if(z8(e[r][0],t))return r;return-1}var Tn=H7,Y7=Array.prototype,Z7=Y7.splice;function Q7(e){var t=this.__data__,r=Tn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z7.call(t,r,1),--this.size,!0}var W7=Q7;function K7(e){var t=this.__data__,r=Tn(t,e);return r<0?void 0:t[r][1]}var J7=K7;function X7(e){return Tn(this.__data__,e)>-1}var e6=X7;function t6(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 r6=t6;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=G7;bt.prototype.delete=W7;bt.prototype.get=J7;bt.prototype.has=e6;bt.prototype.set=r6;var On=bt,i6=yt(ee,"Map"),Vr=i6;function n6(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||On),string:new Ru}}var o6=n6;function a6(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l6=a6;function s6(e,t){var r=e.__data__;return l6(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=s6;function u6(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var c6=u6;function d6(e){return Nn(this,e).get(e)}var p6=d6;function g6(e){return Nn(this,e).has(e)}var f6=g6;function y6(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m6=y6;function ht(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ht.prototype.clear=o6;ht.prototype.delete=c6;ht.prototype.get=p6;ht.prototype.has=f6;ht.prototype.set=m6;var zc=ht;function b6(){this.__data__=new On,this.size=0}var h6=b6;function v6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w6=v6;function k6(e){return this.__data__.get(e)}var x6=k6;function I6(e){return this.__data__.has(e)}var C6=I6,A6=200;function S6(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Vr||i.length<A6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zc(i)}return r.set(e,t),this.size=r.size,this}var M6=S6;function Zr(e){var t=this.__data__=new On(e);this.size=t.size}Zr.prototype.clear=h6;Zr.prototype.delete=w6;Zr.prototype.get=x6;Zr.prototype.has=C6;Zr.prototype.set=M6;var j6=Object.prototype,xX=j6.propertyIsEnumerable,$6=yt(ee,"DataView"),ca=$6,_6=yt(ee,"Promise"),da=_6,E6=yt(ee,"Set"),pa=E6,Fu="[object Map]",L6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",T6=Te(ca),O6=Te(Vr),N6=Te(da),D6=Te(pa),P6=Te(ua),at=Yr;(ca&&at(new ca(new ArrayBuffer(1)))!=Gu||Vr&&at(new Vr)!=Fu||da&&at(da.resolve())!=Vu||pa&&at(new pa)!=Bu||ua&&at(new ua)!=qu)&&(at=function(e){var t=Yr(e),r=t==L6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case T6:return Gu;case O6:return Fu;case N6:return Vu;case D6:return Bu;case P6:return qu}return t});var IX=ee.Uint8Array,z6="__lodash_hash_undefined__";function U6(e){return this.__data__.set(e,z6),this}var R6=U6;function F6(e){return this.__data__.has(e)}var V6=F6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=R6;ga.prototype.has=V6;var Hu=ut?ut.prototype:void 0,CX=Hu?Hu.valueOf:void 0,B6=Object.prototype,AX=B6.hasOwnProperty,q6=Object.prototype,SX=q6.hasOwnProperty,MX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function G6(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 Oe(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 G6(i,t)}function H6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=H6;function Y6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function Z6(e){return typeof e?.translate=="function"}function Q6(e,t,r){return e&&Y6(e)&&Z6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",W6=["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.createImage","ly.img.createVideo","ly.img.animateBetweenImages"],Dn="editImage",ue=`ly.img.${Dn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function kn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Dn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var K6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:ft(),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.PromptInput(`${ue}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(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:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),J6=K6,Pn="swapBackground",ce=`ly.img.${Pn}`,Qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function In(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:ft(),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.PromptInput(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(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:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),ew=X6,zn="styleTransfer",Lr=`ly.img.${zn}`,tw=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Wu(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 rw=[{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."}],iw=({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:Lr,type:"quick",kind:"image",label:`${tw}`,enable:ft(),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:()=>{rw.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 Oe(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"})}}})})}})}})}})}}),nw=iw,Un="artistTransfer",Tr=`ly.img.${Un}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Ku(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var aw=[{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."}],lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${ow}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{aw.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(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"})}}})})}})}})}})}}),sw=lw,Rn="createVariant",de=`ly.img.${Rn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function An(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var uw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!ft()(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.PromptInput(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(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:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let m=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(m,v)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let h=await Oe(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{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:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),cw=uw,Fn="createImage",Xu=`ly.img.${Fn}`,dw=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,ec=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function pw(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 gw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createImage",!0),H(e,{en:{[`${ec}`]:"Create Image from Reference...",[`${ec}.description`]:"Create an image from the selected image"}}),{id:Xu,type:"quick",kind:"image",label:`${dw}`,enable:ft(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Xu}.button`,{label:pw(n),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",isDisabled:!e9(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Oe(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.selectedProvider.fromImage",n),t9(e,n,o),e.ui.openPanel("ly.img.ai.image-generation"),i()}catch(a){console.error("Error opening image generation panel:",a)}}})}}),fw=gw,Vn="combineImages",pe=`ly.img.${Vn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Jo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Sn(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 yw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${Jo}.apply`]:"Combine",[`${Jo}`]:"Combine Images...",[`${Jo}.prompt`]:"Image Combination Instructions",[`${tc}.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:`${tc}`,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.PromptInput(`${pe}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(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:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(y),m=o.block.getHeight(y),v=.02*Math.min(h,m)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(I=>Oe(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),mw=yw,Bn="remixPage",rc=`ly.img.${Bn}`,bw=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,hw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function vw(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 ww=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${hw}`]:"Turn Page into Image"}}),{id:rc,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${bw}`,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(`${rc}.button`,{label:vw(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(m=>{i.block.destroy(m)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),kw=ww,qn="remixPageWithPrompt",ge=`ly.img.${qn}`,ic=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,Xo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Mn(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 xw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${Xo}`]:"Remix Page...",[`${Xo}.prompt`]:"Remix Page Prompt",[`${ic}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Xo}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ic}`,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.PromptInput(`${ge}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(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:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),m=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,I),o.block.appendChild(f,b),o.block.setWidth(b,h),o.block.setHeight(b,m),o.block.setPositionX(b,v),o.block.setPositionY(b,k);let x=o.block.createFill("image");o.block.setFill(b,x),o.block.setString(x,"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:Mn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),Iw=xw,fe="ly.img.ai.image-generation";function Cw(e){return{async initialize({cesdk:t}){if(t==null)return;c9(t,Nr,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Hv,Zv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image","ly.img.plugin-ai-image-generation-web.defaults.fromText.label":"Text to Image","ly.img.plugin-ai-image-generation-web.defaults.fromImage.label":"Image to Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:Q6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});Aw(e),r.register(J6({cesdk:t})),r.register(ew({cesdk:t})),r.register(nw({cesdk:t})),r.register(sw({cesdk:t})),r.register(cw({cesdk:t})),r.register(fw({cesdk:t})),r.register(mw({cesdk:t})),r.register(kw({cesdk:t})),r.register(Iw({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 kv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Gv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:W6});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:Ln})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),p9({cesdk:t,panelId:fe})):n()}}}function Aw(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 Sw=Cw,Mw=e=>({name:Nr,version:"1.83.0-rc.0",...Sw(e)}),Uc=Mw;function jw(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var ve=jw,$w=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;kt(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=()=>{kt(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 kt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),kt(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 kt(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]=kt(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]=kt(n,t,a)}return e}var _w=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ew=typeof global=="object"&&global&&global.Object===Object&&global,Ad=Ew,Lw=typeof self=="object"&&self&&self.Object===Object&&self,Tw=Ad||Lw||Function("return this")(),te=Tw,Ow=te.Symbol,xt=Ow,Sd=Object.prototype,Nw=Sd.hasOwnProperty,Dw=Sd.toString,Qr=xt?xt.toStringTag:void 0;function Pw(e){var t=Nw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=Dw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var zw=Pw,Uw=Object.prototype,Rw=Uw.toString;function Fw(e){return Rw.call(e)}var Vw=Fw,Bw="[object Null]",qw="[object Undefined]",Rc=xt?xt.toStringTag:void 0;function Gw(e){return e==null?e===void 0?qw:Bw:Rc&&Rc in Object(e)?zw(e):Vw(e)}var ai=Gw;function Hw(e){return e!=null&&typeof e=="object"}var Ra=Hw,OX=Array.isArray;function Yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Md=Yw,Zw="[object AsyncFunction]",Qw="[object Function]",Ww="[object GeneratorFunction]",Kw="[object Proxy]";function Jw(e){if(!Md(e))return!1;var t=ai(e);return t==Qw||t==Ww||t==Zw||t==Kw}var Xw=Jw,ek=te["__core-js_shared__"],wa=ek,Fc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tk(e){return!!Fc&&Fc in e}var rk=tk,ik=Function.prototype,nk=ik.toString;function ok(e){if(e!=null){try{return nk.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=ok,ak=/[\\^$.*+?()[\]{}|]/g,lk=/^\[object .+?Constructor\]$/,sk=Function.prototype,uk=Object.prototype,ck=sk.toString,dk=uk.hasOwnProperty,pk=RegExp("^"+ck.call(dk).replace(ak,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gk(e){if(!Md(e)||rk(e))return!1;var t=Xw(e)?pk:lk;return t.test(Ne(e))}var fk=gk;function yk(e,t){return e?.[t]}var mk=yk;function bk(e,t){var r=mk(e,t);return fk(r)?r:void 0}var Ct=bk,hk=Ct(te,"WeakMap"),Ma=hk;function vk(e,t){return e===t||e!==e&&t!==t}var wk=vk,kk=9007199254740991;function xk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kk}var Ik=xk,NX=Object.prototype,Ck="[object Arguments]";function Ak(e){return Ra(e)&&ai(e)==Ck}var Vc=Ak,jd=Object.prototype,Sk=jd.hasOwnProperty,Mk=jd.propertyIsEnumerable,DX=Vc(function(){return arguments}())?Vc:function(e){return Ra(e)&&Sk.call(e,"callee")&&!Mk.call(e,"callee")},$d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bc=$d&&typeof module=="object"&&module&&!module.nodeType&&module,jk=Bc&&Bc.exports===$d,qc=jk?te.Buffer:void 0,PX=qc?qc.isBuffer:void 0,$k="[object Arguments]",_k="[object Array]",Ek="[object Boolean]",Lk="[object Date]",Tk="[object Error]",Ok="[object Function]",Nk="[object Map]",Dk="[object Number]",Pk="[object Object]",zk="[object RegExp]",Uk="[object Set]",Rk="[object String]",Fk="[object WeakMap]",Vk="[object ArrayBuffer]",Bk="[object DataView]",qk="[object Float32Array]",Gk="[object Float64Array]",Hk="[object Int8Array]",Yk="[object Int16Array]",Zk="[object Int32Array]",Qk="[object Uint8Array]",Wk="[object Uint8ClampedArray]",Kk="[object Uint16Array]",Jk="[object Uint32Array]",P={};P[qk]=P[Gk]=P[Hk]=P[Yk]=P[Zk]=P[Qk]=P[Wk]=P[Kk]=P[Jk]=!0;P[$k]=P[_k]=P[Vk]=P[Ek]=P[Bk]=P[Lk]=P[Tk]=P[Ok]=P[Nk]=P[Dk]=P[Pk]=P[zk]=P[Uk]=P[Rk]=P[Fk]=!1;function Xk(e){return Ra(e)&&Ik(e.length)&&!!P[ai(e)]}var ex=Xk;function tx(e){return function(t){return e(t)}}var rx=tx,_d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=_d&&typeof module=="object"&&module&&!module.nodeType&&module,ix=ei&&ei.exports===_d,ka=ix&&Ad.process,nx=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Gc=nx,Hc=Gc&&Gc.isTypedArray,zX=Hc?rx(Hc):ex,ox=Object.prototype,UX=ox.hasOwnProperty;function ax(e,t){return function(r){return e(t(r))}}var lx=ax,RX=lx(Object.keys,Object),sx=Object.prototype,FX=sx.hasOwnProperty,ux=Ct(Object,"create"),ri=ux;function cx(){this.__data__=ri?ri(null):{},this.size=0}var dx=cx;function px(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gx=px,fx="__lodash_hash_undefined__",yx=Object.prototype,mx=yx.hasOwnProperty;function bx(e){var t=this.__data__;if(ri){var r=t[e];return r===fx?void 0:r}return mx.call(t,e)?t[e]:void 0}var hx=bx,vx=Object.prototype,wx=vx.hasOwnProperty;function kx(e){var t=this.__data__;return ri?t[e]!==void 0:wx.call(t,e)}var xx=kx,Ix="__lodash_hash_undefined__";function Cx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ri&&t===void 0?Ix: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=dx;At.prototype.delete=gx;At.prototype.get=hx;At.prototype.has=xx;At.prototype.set=Ax;var Yc=At;function Sx(){this.__data__=[],this.size=0}var Mx=Sx;function jx(e,t){for(var r=e.length;r--;)if(wk(e[r][0],t))return r;return-1}var Hn=jx,$x=Array.prototype,_x=$x.splice;function Ex(e){var t=this.__data__,r=Hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_x.call(t,r,1),--this.size,!0}var Lx=Ex;function Tx(e){var t=this.__data__,r=Hn(t,e);return r<0?void 0:t[r][1]}var Ox=Tx;function Nx(e){return Hn(this.__data__,e)>-1}var Dx=Nx;function Px(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 zx=Px;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=Mx;St.prototype.delete=Lx;St.prototype.get=Ox;St.prototype.has=Dx;St.prototype.set=zx;var Yn=St,Ux=Ct(te,"Map"),ii=Ux;function Rx(){this.size=0,this.__data__={hash:new Yc,map:new(ii||Yn),string:new Yc}}var Fx=Rx;function Vx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bx=Vx;function qx(e,t){var r=e.__data__;return Bx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=qx;function Gx(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var Hx=Gx;function Yx(e){return Zn(this,e).get(e)}var Zx=Yx;function Qx(e){return Zn(this,e).has(e)}var Wx=Qx;function Kx(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jx=Kx;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=Fx;Mt.prototype.delete=Hx;Mt.prototype.get=Zx;Mt.prototype.has=Wx;Mt.prototype.set=Jx;var Ed=Mt;function Xx(){this.__data__=new Yn,this.size=0}var eI=Xx;function tI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rI=tI;function iI(e){return this.__data__.get(e)}var nI=iI;function oI(e){return this.__data__.has(e)}var aI=oI,lI=200;function sI(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ii||i.length<lI-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ed(i)}return r.set(e,t),this.size=r.size,this}var uI=sI;function li(e){var t=this.__data__=new Yn(e);this.size=t.size}li.prototype.clear=eI;li.prototype.delete=rI;li.prototype.get=nI;li.prototype.has=aI;li.prototype.set=uI;var cI=Object.prototype,VX=cI.propertyIsEnumerable,dI=Ct(te,"DataView"),ja=dI,pI=Ct(te,"Promise"),$a=pI,gI=Ct(te,"Set"),_a=gI,Zc="[object Map]",fI="[object Object]",Qc="[object Promise]",Wc="[object Set]",Kc="[object WeakMap]",Jc="[object DataView]",yI=Ne(ja),mI=Ne(ii),bI=Ne($a),hI=Ne(_a),vI=Ne(Ma),vt=ai;(ja&&vt(new ja(new ArrayBuffer(1)))!=Jc||ii&&vt(new ii)!=Zc||$a&&vt($a.resolve())!=Qc||_a&&vt(new _a)!=Wc||Ma&&vt(new Ma)!=Kc)&&(vt=function(e){var t=ai(e),r=t==fI?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case yI:return Jc;case mI:return Zc;case bI:return Qc;case hI:return Wc;case vI:return Kc}return t});var BX=te.Uint8Array,wI="__lodash_hash_undefined__";function kI(e){return this.__data__.set(e,wI),this}var xI=kI;function II(e){return this.__data__.has(e)}var CI=II;function Ea(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ed;++t<r;)this.add(e[t])}Ea.prototype.add=Ea.prototype.push=xI;Ea.prototype.has=CI;var Xc=xt?xt.prototype:void 0,qX=Xc?Xc.valueOf:void 0,AI=Object.prototype,GX=AI.hasOwnProperty,SI=Object.prototype,HX=SI.hasOwnProperty,YX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MI(e,t){let r=await Ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ld(i,t)}function $I(e){return e!==void 0}var _I=$I;function si(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ui(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}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 EI(e){return Array.isArray(e)?e:e?[e]:[]}function LI(e,t){return t?e:e[0]??""}function Td(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function Od(e,t){return EI(e.ui.experimental.getGlobalStateValue(t.stateId))}function TI(e,t){let r=Td().get(t);return r==null?!1:Od(e,r).length<r.maxCount}function OI(e,t,r){let i=Td().get(t);if(i==null)return!1;let n=Od(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,LI([...n,r],i.isList)),!0)}var Gn=class Nd{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 Nd),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))}},NI=class Dd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Dd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function DI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function PI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var zI=PI,xa="ly.img.ai.temp";async function UI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function RI(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 Pd(){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 FI(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 VI(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 Fa(e){return e instanceof Error&&e.name==="AbortError"}function BI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function qI(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!
167
167
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
168
168
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
169
- 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 GI(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 HI=GI;function YI(){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 ZI=YI;function QI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),WI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:RI(e)}))}function WI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var ed=QI,KI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ga=KI;function JI(e,t,r){switch(t){case"image":return XI(e,r[t]);case"video":return eC(e,r[t]);case"sticker":return tC(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function XI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ga,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function eC(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ga,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function tC(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ga,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var rC=JI;async function iC(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 nC(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 oC(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 aC(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 lC(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nC(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 oC(e,t,r){let i=t.width,n=t.height,a=await FI(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 aC(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 lC(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 zd=iC;function sC(e){switch(e.userFlow){case"placeholder":return cC(e);case"generation-only":return uC(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function uC(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=Pd(),c=await zd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function cC(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=Pd(),c=rC(s,a,o);if(i=await UI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await zd(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)&&(qa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dC=sC;function Ha(e){return`${e}.generating`}function pC(e){return`${e}.abort`}function gC(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(pC(d),()=>{}),y=c.global(Ha(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await dC({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ed(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;fC(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(qa(b))return;ed(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function fC(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 Ud=gC;function Da(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function yC({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ud(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var mC=yC;function Rd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Rd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function bC(e){return Jr(e,{...e})}function hC(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 vC(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return wC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function wC(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=kC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function kC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Fd=vC;function Vd(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 Bd(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?xC(e,c,r,i,n,a,o,s):qd(e,c,r,i,n,a,o,s);case"boolean":return Gd(e,c,r,i,n,a,o,s);case"number":case"integer":return Hd(e,c,r,i,n,a,o,s);case"object":return Pa(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 Pa(e,t,r,i,n,a,o,s){let c=Fd(t.schema??{},i).reduce((l,u)=>{let d=Bd(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 qd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=ve(r.id,o,d,"placeholder"),f=si(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=ui(d,h,f,t.schema.default,""),v=l(p,m),k=CC(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",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,p=`${r.id}.${d}`,g=ve(r.id,o,d),{labels:y,icons:f}=Vd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:ve(r.id,o,d,x),icon:f[x]})),m=si(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=ui(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Gd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=si(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ui(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Hd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=si(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=ui(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function IC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Vd(t.schema),I=si(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:qd,boolean:Gd,integer:Hd,object:Pa},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:ve(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Pa(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=ui(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function CC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var AC=Bd,SC={"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 td(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rd(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||td(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||td(g);n[a(l.id,g)]=y}})}});let c={...SC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function id(e){return typeof e.document=="function"?e.document():e.document}function nd(e,t,r){let i=bC(e),n=Rd(i,t.inputReference);if(!hC(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Fd(a,t);return{inputSchema:a,properties:o}}function od(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=AC(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Ud(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function MC(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=id(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nd(c,s,a.debug);return rd(y,i,r,i.kind),od(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(id(s)).then(g=>{let{inputSchema:y,properties:f}=nd(g,s,a.debug);rd(f,i,r,i.kind),u=od(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var jC=MC;async function $C(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return mC(e,t);case"schema":return jC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var _C=$C;function EC(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 $w(o,r)),o}return i}var LC=EC;function TC(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 OC=TC,Ma="@imgly/plugin-ai-generation",NC=`
169
+ 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 GI(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 HI=GI;function YI(){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 ZI=YI;function QI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),WI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:RI(e)}))}function WI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var ed=QI,KI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Va=KI;function JI(e,t,r){switch(t){case"image":return XI(e,r[t]);case"video":return eC(e,r[t]);case"sticker":return tC(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function XI(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 eC(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 tC(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 rC=JI;async function iC(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 nC(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 oC(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 aC(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 lC(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nC(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 oC(e,t,r){let i=t.width,n=t.height,a=await FI(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 aC(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 lC(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 zd=iC;function sC(e){switch(e.userFlow){case"placeholder":return cC(e);case"generation-only":return uC(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function uC(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=Pd(),c=await zd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function cC(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=Pd(),c=rC(s,a,o);if(i=await UI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await zd(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)&&(Fa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dC=sC;function Ba(e){return`${e}.generating`}function pC(e){return`${e}.abort`}function gC(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(pC(d),()=>{}),y=c.global(Ba(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await dC({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ed(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;fC(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(Fa(b))return;ed(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function fC(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 Ud=gC;function La(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function yC({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(Ba(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ud(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var mC=yC;function Rd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Rd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function bC(e){return Jr(e,{...e})}function hC(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 vC(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return wC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function wC(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=kC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function kC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Fd=vC;function Vd(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 Bd(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?xC(e,c,r,i,n,a,o,s):qd(e,c,r,i,n,a,o,s);case"boolean":return Gd(e,c,r,i,n,a,o,s);case"number":case"integer":return Hd(e,c,r,i,n,a,o,s);case"object":return Ta(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 Ta(e,t,r,i,n,a,o,s){let c=Fd(t.schema??{},i).reduce((l,u)=>{let d=Bd(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 qd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=ve(r.id,o,d,"placeholder"),f=si(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=ui(d,h,f,t.schema.default,""),v=l(p,m),k=CC(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",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,p=`${r.id}.${d}`,g=ve(r.id,o,d),{labels:y,icons:f}=Vd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:ve(r.id,o,d,x),icon:f[x]})),m=si(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=ui(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Gd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=si(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ui(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Hd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=si(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=ui(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function IC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Vd(t.schema),I=si(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:qd,boolean:Gd,integer:Hd,object:Ta},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:ve(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ta(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=ui(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function CC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var AC=Bd,SC={"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 td(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rd(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||td(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||td(g);n[a(l.id,g)]=y}})}});let c={...SC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function id(e){return typeof e.document=="function"?e.document():e.document}function nd(e,t,r){let i=bC(e),n=Rd(i,t.inputReference);if(!hC(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Fd(a,t);return{inputSchema:a,properties:o}}function od(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=AC(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Ud(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function MC(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=id(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nd(c,s,a.debug);return rd(y,i,r,i.kind),od(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(id(s)).then(g=>{let{inputSchema:y,properties:f}=nd(g,s,a.debug);rd(f,i,r,i.kind),u=od(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var jC=MC;async function $C(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return mC(e,t);case"schema":return jC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var _C=$C;function EC(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 $w(o,r)),o}return i}var LC=EC;function TC(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 OC=TC,Ia="@imgly/plugin-ai-generation",NC=`
170
170
  <svg>
171
171
  <symbol
172
172
  fill="none"
@@ -184,7 +184,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
184
184
  fill="none"
185
185
  xmlns="http://www.w3.org/2000/svg"
186
186
  viewBox="0 0 24 24"
187
- id="${Ma}/image"
187
+ id="${Ia}/image"
188
188
  >
189
189
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
190
190
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -196,7 +196,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
196
196
  fill="none"
197
197
  xmlns="http://www.w3.org/2000/svg"
198
198
  viewBox="0 0 24 24"
199
- id="${Ma}/video"
199
+ id="${Ia}/video"
200
200
  >
201
201
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
202
202
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -207,7 +207,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
207
207
  fill="none"
208
208
  xmlns="http://www.w3.org/2000/svg"
209
209
  viewBox="0 0 24 24"
210
- id="${Ma}/audio"
210
+ id="${Ia}/audio"
211
211
  >
212
212
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
213
213
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -239,10 +239,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
239
239
  </symbol>
240
240
  </svg>
241
241
  `,DC=NC;function PC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Yd(2e3),await zC(t,e,r)):i(t,r)}async function zC(e,t,r){switch(t.kind){case"image":return UC(e,t,r);case"video":return RC(e,t,r);case"text":return FC(e,t,r);case"audio":return BC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function UC(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 jI(s,r),l=await MI(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(`
242
- `,"+")}`}}async function RC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function FC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return VC(a,r.abortSignal)}async function*VC(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 Yd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function BC(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:qC(220,i),duration:i,thumbnailUrl:void 0}}function qC(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 GC(i,44100)}function GC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Yd(e){return new Promise(t=>{setTimeout(t,e)})}var HC=PC,YC="USER_CANCEL";function ZC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=DI([...e.provider.output.middleware??[],...r?.middlewares??[],zI({enable:r?.debug}),HC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:VI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return qa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===YC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var QC=ZC;async function WC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=LC(a),s=OC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=QC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _C(a,c);BI(r.cesdk,"@imgly/plugin-ai-generation",DC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return NI.get().register(u),u}var ja=WC;function KC(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 _w(n,r,i);return r.engine.asset.addSource(a),a.id}var JC=KC;function Yn(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 XC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ja(e,u,r,i)));o.push(...l),a=tA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ja(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ja(e,d,r,i)));o.push(...u),a=eA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=JC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_I)}),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 eA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Da(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Da(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Yn(e,`${A}.label`),icon:f.value!==A&&rA(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:Yn(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Yn(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function tA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Da(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Yn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rA(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ha(r.id),!1).value)}var iA=XC,WX=5*60*1e3,nA=typeof global=="object"&&global&&global.Object===Object&&global,Zd=nA,oA=typeof self=="object"&&self&&self.Object===Object&&self,aA=Zd||oA||Function("return this")(),re=aA,lA=re.Symbol,It=lA,Qd=Object.prototype,sA=Qd.hasOwnProperty,uA=Qd.toString,Kr=It?It.toStringTag:void 0;function cA(e){var t=sA.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=uA.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var dA=cA,pA=Object.prototype,gA=pA.toString;function fA(e){return gA.call(e)}var yA=fA,mA="[object Null]",bA="[object Undefined]",ad=It?It.toStringTag:void 0;function hA(e){return e==null?e===void 0?bA:mA:ad&&ad in Object(e)?dA(e):yA(e)}var di=hA;function vA(e){return e!=null&&typeof e=="object"}var Ya=vA,KX=Array.isArray;function wA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wd=wA,kA="[object AsyncFunction]",xA="[object Function]",IA="[object GeneratorFunction]",CA="[object Proxy]";function AA(e){if(!Wd(e))return!1;var t=di(e);return t==xA||t==IA||t==kA||t==CA}var SA=AA,MA=re["__core-js_shared__"],$a=MA,ld=function(){var e=/[^.]+$/.exec($a&&$a.keys&&$a.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jA(e){return!!ld&&ld in e}var $A=jA,_A=Function.prototype,EA=_A.toString;function LA(e){if(e!=null){try{return EA.call(e)}catch{}try{return e+""}catch{}}return""}var De=LA,TA=/[\\^$.*+?()[\]{}|]/g,OA=/^\[object .+?Constructor\]$/,NA=Function.prototype,DA=Object.prototype,PA=NA.toString,zA=DA.hasOwnProperty,UA=RegExp("^"+PA.call(zA).replace(TA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RA(e){if(!Wd(e)||$A(e))return!1;var t=SA(e)?UA:OA;return t.test(De(e))}var FA=RA;function VA(e,t){return e?.[t]}var BA=VA;function qA(e,t){var r=BA(e,t);return FA(r)?r:void 0}var jt=qA,GA=jt(re,"WeakMap"),za=GA;function HA(e,t){return e===t||e!==e&&t!==t}var YA=HA,ZA=9007199254740991;function QA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ZA}var WA=QA,JX=Object.prototype,KA="[object Arguments]";function JA(e){return Ya(e)&&di(e)==KA}var sd=JA,Kd=Object.prototype,XA=Kd.hasOwnProperty,eS=Kd.propertyIsEnumerable,XX=sd(function(){return arguments}())?sd:function(e){return Ya(e)&&XA.call(e,"callee")&&!eS.call(e,"callee")},Jd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ud=Jd&&typeof module=="object"&&module&&!module.nodeType&&module,tS=ud&&ud.exports===Jd,cd=tS?re.Buffer:void 0,eee=cd?cd.isBuffer:void 0,rS="[object Arguments]",iS="[object Array]",nS="[object Boolean]",oS="[object Date]",aS="[object Error]",lS="[object Function]",sS="[object Map]",uS="[object Number]",cS="[object Object]",dS="[object RegExp]",pS="[object Set]",gS="[object String]",fS="[object WeakMap]",yS="[object ArrayBuffer]",mS="[object DataView]",bS="[object Float32Array]",hS="[object Float64Array]",vS="[object Int8Array]",wS="[object Int16Array]",kS="[object Int32Array]",xS="[object Uint8Array]",IS="[object Uint8ClampedArray]",CS="[object Uint16Array]",AS="[object Uint32Array]",z={};z[bS]=z[hS]=z[vS]=z[wS]=z[kS]=z[xS]=z[IS]=z[CS]=z[AS]=!0;z[rS]=z[iS]=z[yS]=z[nS]=z[mS]=z[oS]=z[aS]=z[lS]=z[sS]=z[uS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=!1;function SS(e){return Ya(e)&&WA(e.length)&&!!z[di(e)]}var MS=SS;function jS(e){return function(t){return e(t)}}var $S=jS,Xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=Xd&&typeof module=="object"&&module&&!module.nodeType&&module,_S=ti&&ti.exports===Xd,_a=_S&&Zd.process,ES=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||_a&&_a.binding&&_a.binding("util")}catch{}}(),dd=ES,pd=dd&&dd.isTypedArray,tee=pd?$S(pd):MS,LS=Object.prototype,ree=LS.hasOwnProperty;function TS(e,t){return function(r){return e(t(r))}}var OS=TS,iee=OS(Object.keys,Object),NS=Object.prototype,nee=NS.hasOwnProperty,DS=jt(Object,"create"),ni=DS;function PS(){this.__data__=ni?ni(null):{},this.size=0}var zS=PS;function US(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RS=US,FS="__lodash_hash_undefined__",VS=Object.prototype,BS=VS.hasOwnProperty;function qS(e){var t=this.__data__;if(ni){var r=t[e];return r===FS?void 0:r}return BS.call(t,e)?t[e]:void 0}var GS=qS,HS=Object.prototype,YS=HS.hasOwnProperty;function ZS(e){var t=this.__data__;return ni?t[e]!==void 0:YS.call(t,e)}var QS=ZS,WS="__lodash_hash_undefined__";function KS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?WS:t,this}var JS=KS;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=zS;$t.prototype.delete=RS;$t.prototype.get=GS;$t.prototype.has=QS;$t.prototype.set=JS;var gd=$t;function XS(){this.__data__=[],this.size=0}var eM=XS;function tM(e,t){for(var r=e.length;r--;)if(YA(e[r][0],t))return r;return-1}var Kn=tM,rM=Array.prototype,iM=rM.splice;function nM(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iM.call(t,r,1),--this.size,!0}var oM=nM;function aM(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var lM=aM;function sM(e){return Kn(this.__data__,e)>-1}var uM=sM;function cM(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 dM=cM;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=eM;_t.prototype.delete=oM;_t.prototype.get=lM;_t.prototype.has=uM;_t.prototype.set=dM;var Jn=_t,pM=jt(re,"Map"),oi=pM;function gM(){this.size=0,this.__data__={hash:new gd,map:new(oi||Jn),string:new gd}}var fM=gM;function yM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mM=yM;function bM(e,t){var r=e.__data__;return mM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=bM;function hM(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var vM=hM;function wM(e){return Xn(this,e).get(e)}var kM=wM;function xM(e){return Xn(this,e).has(e)}var IM=xM;function CM(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AM=CM;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=fM;Et.prototype.delete=vM;Et.prototype.get=kM;Et.prototype.has=IM;Et.prototype.set=AM;var ep=Et;function SM(){this.__data__=new Jn,this.size=0}var MM=SM;function jM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $M=jM;function _M(e){return this.__data__.get(e)}var EM=_M;function LM(e){return this.__data__.has(e)}var TM=LM,OM=200;function NM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!oi||i.length<OM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ep(i)}return r.set(e,t),this.size=r.size,this}var DM=NM;function pi(e){var t=this.__data__=new Jn(e);this.size=t.size}pi.prototype.clear=MM;pi.prototype.delete=$M;pi.prototype.get=EM;pi.prototype.has=TM;pi.prototype.set=DM;var PM=Object.prototype,oee=PM.propertyIsEnumerable,zM=jt(re,"DataView"),Ua=zM,UM=jt(re,"Promise"),Ra=UM,RM=jt(re,"Set"),Fa=RM,fd="[object Map]",FM="[object Object]",yd="[object Promise]",md="[object Set]",bd="[object WeakMap]",hd="[object DataView]",VM=De(Ua),BM=De(oi),qM=De(Ra),GM=De(Fa),HM=De(za),wt=di;(Ua&&wt(new Ua(new ArrayBuffer(1)))!=hd||oi&&wt(new oi)!=fd||Ra&&wt(Ra.resolve())!=yd||Fa&&wt(new Fa)!=md||za&&wt(new za)!=bd)&&(wt=function(e){var t=di(e),r=t==FM?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case VM:return hd;case BM:return fd;case qM:return yd;case GM:return md;case HM:return bd}return t});var aee=re.Uint8Array,YM="__lodash_hash_undefined__";function ZM(e){return this.__data__.set(e,YM),this}var QM=ZM;function WM(e){return this.__data__.has(e)}var KM=WM;function Va(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ep;++t<r;)this.add(e[t])}Va.prototype.add=Va.prototype.push=QM;Va.prototype.has=KM;var vd=It?It.prototype:void 0,lee=vd?vd.valueOf:void 0,JM=Object.prototype,see=JM.hasOwnProperty,XM=Object.prototype,uee=XM.hasOwnProperty,cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ej(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 tp(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 ej(i,t)}function tj(e){return e==null?[]:Array.isArray(e)?e:[e]}var wd=tj;function rj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ij(e){return typeof e?.translate=="function"}function nj(e,t,r){return e&&rj(e)&&ij(e.i18n)?e.i18n.translate(t):r}var Xr="@imgly/plugin-ai-video-generation-web";var eo="createVideo",kd=`ly.img.${eo}`,oj=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,xd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function aj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var lj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${xd}`]:"Create Video from Reference...",[`${xd}.description`]:"Create a video from the selected image"}}),{id:kd,type:"quick",kind:"image",label:`${oj}`,enable:ZI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${kd}.button`,{label:aj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",isDisabled:!TI(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await tp(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",n),OI(e,n,o),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),sj=lj,to="animateBetweenImages",Id=`ly.img.${to}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,Cd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${Cd}`]:"Animate Between Images...",[`${Cd}.description`]:"Create a video transitioning between two images"}}),{id:Id,type:"quick",kind:"image",label:`${uj}`,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(`${Id}.button`,{label:cj(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=>tp(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"})}}})}}),pj=dj,be="ly.img.ai.video-generation";function gj(e){return{async initialize({cesdk:t}){if(t==null)return;qI(t,Xr,"1.83.0-nightly.20260917"),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=`${Xr}.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."}}),fj(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:Xr,pluginId:Xr,label:nj(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(wd(n).map(l=>l({cesdk:t}))),s=await Promise.all(wd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await iA("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(sj({cesdk:t})),Hn.get().register(pj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),HI({cesdk:t,panelId:be})):i()}}}function fj(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 yj=gj,mj=e=>({name:Xr,version:"1.83.0-nightly.20260917",...yj(e)}),rp=mj;function bj(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var xe=bj,hj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Ot(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=()=>{Ot(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 Ot(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Ot(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 Ot(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]=Ot(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]=Ot(n,t,a)}return e}var vj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wj=typeof global=="object"&&global&&global.Object===Object&&global,Fp=wj,kj=typeof self=="object"&&self&&self.Object===Object&&self,xj=Fp||kj||Function("return this")(),ie=xj,Ij=ie.Symbol,Nt=Ij,Vp=Object.prototype,Cj=Vp.hasOwnProperty,Aj=Vp.toString,gi=Nt?Nt.toStringTag:void 0;function Sj(e){var t=Cj.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=Aj.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var Mj=Sj,jj=Object.prototype,$j=jj.toString;function _j(e){return $j.call(e)}var Ej=_j,Lj="[object Null]",Tj="[object Undefined]",ip=Nt?Nt.toStringTag:void 0;function Oj(e){return e==null?e===void 0?Tj:Lj:ip&&ip in Object(e)?Mj(e):Ej(e)}var Ii=Oj;function Nj(e){return e!=null&&typeof e=="object"}var gl=Nj,mee=Array.isArray;function Dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bp=Dj,Pj="[object AsyncFunction]",zj="[object Function]",Uj="[object GeneratorFunction]",Rj="[object Proxy]";function Fj(e){if(!Bp(e))return!1;var t=Ii(e);return t==zj||t==Uj||t==Pj||t==Rj}var Vj=Fj,Bj=ie["__core-js_shared__"],Za=Bj,np=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qj(e){return!!np&&np in e}var Gj=qj,Hj=Function.prototype,Yj=Hj.toString;function Zj(e){if(e!=null){try{return Yj.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=Zj,Qj=/[\\^$.*+?()[\]{}|]/g,Wj=/^\[object .+?Constructor\]$/,Kj=Function.prototype,Jj=Object.prototype,Xj=Kj.toString,e$=Jj.hasOwnProperty,t$=RegExp("^"+Xj.call(e$).replace(Qj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function r$(e){if(!Bp(e)||Gj(e))return!1;var t=Vj(e)?t$:Wj;return t.test(Ue(e))}var i$=r$;function n$(e,t){return e?.[t]}var o$=n$;function a$(e,t){var r=o$(e,t);return i$(r)?r:void 0}var Pt=a$,l$=Pt(ie,"WeakMap"),tl=l$;function s$(e,t){return e===t||e!==e&&t!==t}var u$=s$,c$=9007199254740991;function d$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c$}var p$=d$,bee=Object.prototype,g$="[object Arguments]";function f$(e){return gl(e)&&Ii(e)==g$}var op=f$,qp=Object.prototype,y$=qp.hasOwnProperty,m$=qp.propertyIsEnumerable,hee=op(function(){return arguments}())?op:function(e){return gl(e)&&y$.call(e,"callee")&&!m$.call(e,"callee")},Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,b$=ap&&ap.exports===Gp,lp=b$?ie.Buffer:void 0,vee=lp?lp.isBuffer:void 0,h$="[object Arguments]",v$="[object Array]",w$="[object Boolean]",k$="[object Date]",x$="[object Error]",I$="[object Function]",C$="[object Map]",A$="[object Number]",S$="[object Object]",M$="[object RegExp]",j$="[object Set]",$$="[object String]",_$="[object WeakMap]",E$="[object ArrayBuffer]",L$="[object DataView]",T$="[object Float32Array]",O$="[object Float64Array]",N$="[object Int8Array]",D$="[object Int16Array]",P$="[object Int32Array]",z$="[object Uint8Array]",U$="[object Uint8ClampedArray]",R$="[object Uint16Array]",F$="[object Uint32Array]",U={};U[T$]=U[O$]=U[N$]=U[D$]=U[P$]=U[z$]=U[U$]=U[R$]=U[F$]=!0;U[h$]=U[v$]=U[E$]=U[w$]=U[L$]=U[k$]=U[x$]=U[I$]=U[C$]=U[A$]=U[S$]=U[M$]=U[j$]=U[$$]=U[_$]=!1;function V$(e){return gl(e)&&p$(e.length)&&!!U[Ii(e)]}var B$=V$;function q$(e){return function(t){return e(t)}}var G$=q$,Hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=Hp&&typeof module=="object"&&module&&!module.nodeType&&module,H$=bi&&bi.exports===Hp,Qa=H$&&Fp.process,Y$=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),sp=Y$,up=sp&&sp.isTypedArray,wee=up?G$(up):B$,Z$=Object.prototype,kee=Z$.hasOwnProperty;function Q$(e,t){return function(r){return e(t(r))}}var W$=Q$,xee=W$(Object.keys,Object),K$=Object.prototype,Iee=K$.hasOwnProperty,J$=Pt(Object,"create"),vi=J$;function X$(){this.__data__=vi?vi(null):{},this.size=0}var e_=X$;function t_(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var r_=t_,i_="__lodash_hash_undefined__",n_=Object.prototype,o_=n_.hasOwnProperty;function a_(e){var t=this.__data__;if(vi){var r=t[e];return r===i_?void 0:r}return o_.call(t,e)?t[e]:void 0}var l_=a_,s_=Object.prototype,u_=s_.hasOwnProperty;function c_(e){var t=this.__data__;return vi?t[e]!==void 0:u_.call(t,e)}var d_=c_,p_="__lodash_hash_undefined__";function g_(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vi&&t===void 0?p_:t,this}var f_=g_;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=e_;zt.prototype.delete=r_;zt.prototype.get=l_;zt.prototype.has=d_;zt.prototype.set=f_;var cp=zt;function y_(){this.__data__=[],this.size=0}var m_=y_;function b_(e,t){for(var r=e.length;r--;)if(u$(e[r][0],t))return r;return-1}var io=b_,h_=Array.prototype,v_=h_.splice;function w_(e){var t=this.__data__,r=io(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():v_.call(t,r,1),--this.size,!0}var k_=w_;function x_(e){var t=this.__data__,r=io(t,e);return r<0?void 0:t[r][1]}var I_=x_;function C_(e){return io(this.__data__,e)>-1}var A_=C_;function S_(e,t){var r=this.__data__,i=io(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var M_=S_;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=m_;Ut.prototype.delete=k_;Ut.prototype.get=I_;Ut.prototype.has=A_;Ut.prototype.set=M_;var no=Ut,j_=Pt(ie,"Map"),wi=j_;function $_(){this.size=0,this.__data__={hash:new cp,map:new(wi||no),string:new cp}}var __=$_;function E_(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var L_=E_;function T_(e,t){var r=e.__data__;return L_(t)?r[typeof t=="string"?"string":"hash"]:r.map}var oo=T_;function O_(e){var t=oo(this,e).delete(e);return this.size-=t?1:0,t}var N_=O_;function D_(e){return oo(this,e).get(e)}var P_=D_;function z_(e){return oo(this,e).has(e)}var U_=z_;function R_(e,t){var r=oo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var F_=R_;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=__;Rt.prototype.delete=N_;Rt.prototype.get=P_;Rt.prototype.has=U_;Rt.prototype.set=F_;var Yp=Rt;function V_(){this.__data__=new no,this.size=0}var B_=V_;function q_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var G_=q_;function H_(e){return this.__data__.get(e)}var Y_=H_;function Z_(e){return this.__data__.has(e)}var Q_=Z_,W_=200;function K_(e,t){var r=this.__data__;if(r instanceof no){var i=r.__data__;if(!wi||i.length<W_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var J_=K_;function Ci(e){var t=this.__data__=new no(e);this.size=t.size}Ci.prototype.clear=B_;Ci.prototype.delete=G_;Ci.prototype.get=Y_;Ci.prototype.has=Q_;Ci.prototype.set=J_;var X_=Object.prototype,Cee=X_.propertyIsEnumerable,eE=Pt(ie,"DataView"),rl=eE,tE=Pt(ie,"Promise"),il=tE,rE=Pt(ie,"Set"),nl=rE,dp="[object Map]",iE="[object Object]",pp="[object Promise]",gp="[object Set]",fp="[object WeakMap]",yp="[object DataView]",nE=Ue(rl),oE=Ue(wi),aE=Ue(il),lE=Ue(nl),sE=Ue(tl),Lt=Ii;(rl&&Lt(new rl(new ArrayBuffer(1)))!=yp||wi&&Lt(new wi)!=dp||il&&Lt(il.resolve())!=pp||nl&&Lt(new nl)!=gp||tl&&Lt(new tl)!=fp)&&(Lt=function(e){var t=Ii(e),r=t==iE?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case nE:return yp;case oE:return dp;case aE:return pp;case lE:return gp;case sE:return fp}return t});var Aee=ie.Uint8Array,uE="__lodash_hash_undefined__";function cE(e){return this.__data__.set(e,uE),this}var dE=cE;function pE(e){return this.__data__.has(e)}var gE=pE;function ol(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}ol.prototype.add=ol.prototype.push=dE;ol.prototype.has=gE;var mp=Nt?Nt.prototype:void 0,See=mp?mp.valueOf:void 0,fE=Object.prototype,Mee=fE.hasOwnProperty,yE=Object.prototype,jee=yE.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Zp(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 mE(e,t){let r=await Zp(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 bE(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 Zp(i,t)}function hE(e){return e!==void 0}var vE=hE;function Ai(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function fl(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 Qp=class Wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},wE=class Kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function kE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function xE({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 IE=xE,Wa="ly.img.ai.temp";async function CE(e,t){return e.engine.asset.findAllSources().includes(Wa)||e.engine.asset.addLocalSource(Wa),e.engine.asset.apply(Wa,t)}function AE(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 Jp(){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 SE(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 ME(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 yl(e){return e instanceof Error&&e.name==="AbortError"}function jE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function $E(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!
242
+ `,"+")}`}}async function RC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function FC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return VC(a,r.abortSignal)}async function*VC(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 Yd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function BC(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:qC(220,i),duration:i,thumbnailUrl:void 0}}function qC(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 GC(i,44100)}function GC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Yd(e){return new Promise(t=>{setTimeout(t,e)})}var HC=PC,YC="USER_CANCEL";function ZC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=DI([...e.provider.output.middleware??[],...r?.middlewares??[],zI({enable:r?.debug}),HC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:VI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===YC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var QC=ZC;async function WC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Gn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=LC(a),s=OC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=QC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _C(a,c);BI(r.cesdk,"@imgly/plugin-ai-generation",DC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return NI.get().register(u),u}var Ca=WC;function KC(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 _w(n,r,i);return r.engine.asset.addSource(a),a.id}var JC=KC;function Oa(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function XC(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.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=tA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=eA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=JC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_I)}),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 eA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Oa(e,`${A}.label`),icon:f.value!==A&&rA(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function tA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:La(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rA(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ba(r.id),!1).value)}var iA=XC,WX=5*60*1e3,nA=typeof global=="object"&&global&&global.Object===Object&&global,Zd=nA,oA=typeof self=="object"&&self&&self.Object===Object&&self,aA=Zd||oA||Function("return this")(),re=aA,lA=re.Symbol,It=lA,Qd=Object.prototype,sA=Qd.hasOwnProperty,uA=Qd.toString,Kr=It?It.toStringTag:void 0;function cA(e){var t=sA.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=uA.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var dA=cA,pA=Object.prototype,gA=pA.toString;function fA(e){return gA.call(e)}var yA=fA,mA="[object Null]",bA="[object Undefined]",ad=It?It.toStringTag:void 0;function hA(e){return e==null?e===void 0?bA:mA:ad&&ad in Object(e)?dA(e):yA(e)}var di=hA;function vA(e){return e!=null&&typeof e=="object"}var qa=vA,KX=Array.isArray;function wA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wd=wA,kA="[object AsyncFunction]",xA="[object Function]",IA="[object GeneratorFunction]",CA="[object Proxy]";function AA(e){if(!Wd(e))return!1;var t=di(e);return t==xA||t==IA||t==kA||t==CA}var SA=AA,MA=re["__core-js_shared__"],Aa=MA,ld=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jA(e){return!!ld&&ld in e}var $A=jA,_A=Function.prototype,EA=_A.toString;function LA(e){if(e!=null){try{return EA.call(e)}catch{}try{return e+""}catch{}}return""}var De=LA,TA=/[\\^$.*+?()[\]{}|]/g,OA=/^\[object .+?Constructor\]$/,NA=Function.prototype,DA=Object.prototype,PA=NA.toString,zA=DA.hasOwnProperty,UA=RegExp("^"+PA.call(zA).replace(TA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RA(e){if(!Wd(e)||$A(e))return!1;var t=SA(e)?UA:OA;return t.test(De(e))}var FA=RA;function VA(e,t){return e?.[t]}var BA=VA;function qA(e,t){var r=BA(e,t);return FA(r)?r:void 0}var jt=qA,GA=jt(re,"WeakMap"),Na=GA;function HA(e,t){return e===t||e!==e&&t!==t}var YA=HA,ZA=9007199254740991;function QA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ZA}var WA=QA,JX=Object.prototype,KA="[object Arguments]";function JA(e){return qa(e)&&di(e)==KA}var sd=JA,Kd=Object.prototype,XA=Kd.hasOwnProperty,eS=Kd.propertyIsEnumerable,XX=sd(function(){return arguments}())?sd:function(e){return qa(e)&&XA.call(e,"callee")&&!eS.call(e,"callee")},Jd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ud=Jd&&typeof module=="object"&&module&&!module.nodeType&&module,tS=ud&&ud.exports===Jd,cd=tS?re.Buffer:void 0,eee=cd?cd.isBuffer:void 0,rS="[object Arguments]",iS="[object Array]",nS="[object Boolean]",oS="[object Date]",aS="[object Error]",lS="[object Function]",sS="[object Map]",uS="[object Number]",cS="[object Object]",dS="[object RegExp]",pS="[object Set]",gS="[object String]",fS="[object WeakMap]",yS="[object ArrayBuffer]",mS="[object DataView]",bS="[object Float32Array]",hS="[object Float64Array]",vS="[object Int8Array]",wS="[object Int16Array]",kS="[object Int32Array]",xS="[object Uint8Array]",IS="[object Uint8ClampedArray]",CS="[object Uint16Array]",AS="[object Uint32Array]",z={};z[bS]=z[hS]=z[vS]=z[wS]=z[kS]=z[xS]=z[IS]=z[CS]=z[AS]=!0;z[rS]=z[iS]=z[yS]=z[nS]=z[mS]=z[oS]=z[aS]=z[lS]=z[sS]=z[uS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=!1;function SS(e){return qa(e)&&WA(e.length)&&!!z[di(e)]}var MS=SS;function jS(e){return function(t){return e(t)}}var $S=jS,Xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=Xd&&typeof module=="object"&&module&&!module.nodeType&&module,_S=ti&&ti.exports===Xd,Sa=_S&&Zd.process,ES=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),dd=ES,pd=dd&&dd.isTypedArray,tee=pd?$S(pd):MS,LS=Object.prototype,ree=LS.hasOwnProperty;function TS(e,t){return function(r){return e(t(r))}}var OS=TS,iee=OS(Object.keys,Object),NS=Object.prototype,nee=NS.hasOwnProperty,DS=jt(Object,"create"),ni=DS;function PS(){this.__data__=ni?ni(null):{},this.size=0}var zS=PS;function US(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RS=US,FS="__lodash_hash_undefined__",VS=Object.prototype,BS=VS.hasOwnProperty;function qS(e){var t=this.__data__;if(ni){var r=t[e];return r===FS?void 0:r}return BS.call(t,e)?t[e]:void 0}var GS=qS,HS=Object.prototype,YS=HS.hasOwnProperty;function ZS(e){var t=this.__data__;return ni?t[e]!==void 0:YS.call(t,e)}var QS=ZS,WS="__lodash_hash_undefined__";function KS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?WS:t,this}var JS=KS;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=zS;$t.prototype.delete=RS;$t.prototype.get=GS;$t.prototype.has=QS;$t.prototype.set=JS;var gd=$t;function XS(){this.__data__=[],this.size=0}var eM=XS;function tM(e,t){for(var r=e.length;r--;)if(YA(e[r][0],t))return r;return-1}var Qn=tM,rM=Array.prototype,iM=rM.splice;function nM(e){var t=this.__data__,r=Qn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iM.call(t,r,1),--this.size,!0}var oM=nM;function aM(e){var t=this.__data__,r=Qn(t,e);return r<0?void 0:t[r][1]}var lM=aM;function sM(e){return Qn(this.__data__,e)>-1}var uM=sM;function cM(e,t){var r=this.__data__,i=Qn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dM=cM;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=eM;_t.prototype.delete=oM;_t.prototype.get=lM;_t.prototype.has=uM;_t.prototype.set=dM;var Wn=_t,pM=jt(re,"Map"),oi=pM;function gM(){this.size=0,this.__data__={hash:new gd,map:new(oi||Wn),string:new gd}}var fM=gM;function yM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mM=yM;function bM(e,t){var r=e.__data__;return mM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Kn=bM;function hM(e){var t=Kn(this,e).delete(e);return this.size-=t?1:0,t}var vM=hM;function wM(e){return Kn(this,e).get(e)}var kM=wM;function xM(e){return Kn(this,e).has(e)}var IM=xM;function CM(e,t){var r=Kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AM=CM;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=fM;Et.prototype.delete=vM;Et.prototype.get=kM;Et.prototype.has=IM;Et.prototype.set=AM;var ep=Et;function SM(){this.__data__=new Wn,this.size=0}var MM=SM;function jM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $M=jM;function _M(e){return this.__data__.get(e)}var EM=_M;function LM(e){return this.__data__.has(e)}var TM=LM,OM=200;function NM(e,t){var r=this.__data__;if(r instanceof Wn){var i=r.__data__;if(!oi||i.length<OM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ep(i)}return r.set(e,t),this.size=r.size,this}var DM=NM;function pi(e){var t=this.__data__=new Wn(e);this.size=t.size}pi.prototype.clear=MM;pi.prototype.delete=$M;pi.prototype.get=EM;pi.prototype.has=TM;pi.prototype.set=DM;var PM=Object.prototype,oee=PM.propertyIsEnumerable,zM=jt(re,"DataView"),Da=zM,UM=jt(re,"Promise"),Pa=UM,RM=jt(re,"Set"),za=RM,fd="[object Map]",FM="[object Object]",yd="[object Promise]",md="[object Set]",bd="[object WeakMap]",hd="[object DataView]",VM=De(Da),BM=De(oi),qM=De(Pa),GM=De(za),HM=De(Na),wt=di;(Da&&wt(new Da(new ArrayBuffer(1)))!=hd||oi&&wt(new oi)!=fd||Pa&&wt(Pa.resolve())!=yd||za&&wt(new za)!=md||Na&&wt(new Na)!=bd)&&(wt=function(e){var t=di(e),r=t==FM?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case VM:return hd;case BM:return fd;case qM:return yd;case GM:return md;case HM:return bd}return t});var aee=re.Uint8Array,YM="__lodash_hash_undefined__";function ZM(e){return this.__data__.set(e,YM),this}var QM=ZM;function WM(e){return this.__data__.has(e)}var KM=WM;function Ua(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ep;++t<r;)this.add(e[t])}Ua.prototype.add=Ua.prototype.push=QM;Ua.prototype.has=KM;var vd=It?It.prototype:void 0,lee=vd?vd.valueOf:void 0,JM=Object.prototype,see=JM.hasOwnProperty,XM=Object.prototype,uee=XM.hasOwnProperty,cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ej(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 tp(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 ej(i,t)}function tj(e){return e==null?[]:Array.isArray(e)?e:[e]}var wd=tj;function rj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ij(e){return typeof e?.translate=="function"}function nj(e,t,r){return e&&rj(e)&&ij(e.i18n)?e.i18n.translate(t):r}var Xr="@imgly/plugin-ai-video-generation-web";var Jn="createVideo",kd=`ly.img.${Jn}`,oj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,xd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function aj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var lj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${xd}`]:"Create Video from Reference...",[`${xd}.description`]:"Create a video from the selected image"}}),{id:kd,type:"quick",kind:"image",label:`${oj}`,enable:ZI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${kd}.button`,{label:aj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",isDisabled:!TI(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await tp(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",n),OI(e,n,o),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),sj=lj,Xn="animateBetweenImages",Id=`ly.img.${Xn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Xn}`,Cd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Xn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Xn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${Cd}`]:"Animate Between Images...",[`${Cd}.description`]:"Create a video transitioning between two images"}}),{id:Id,type:"quick",kind:"image",label:`${uj}`,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(`${Id}.button`,{label:cj(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=>tp(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"})}}})}}),pj=dj,be="ly.img.ai.video-generation";function gj(e){return{async initialize({cesdk:t}){if(t==null)return;qI(t,Xr,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Xr}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.plugin-ai-video-generation-web.defaults.fromText.label":"Text to Video","ly.img.plugin-ai-video-generation-web.defaults.fromImage.label":"Image to 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."}}),fj(e);let i=Gn.get().register({type:"plugin",sceneMode:"Video",id:Xr,pluginId:Xr,label:nj(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(wd(n).map(l=>l({cesdk:t}))),s=await Promise.all(wd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await iA("video",{fromText:o,fromImage:s},{cesdk:t},e);Gn.get().register(sj({cesdk:t})),Gn.get().register(pj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),HI({cesdk:t,panelId:be})):i()}}}function fj(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 yj=gj,mj=e=>({name:Xr,version:"1.83.0-rc.0",...yj(e)}),rp=mj;function bj(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var xe=bj,hj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Ot(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=()=>{Ot(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 Ot(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Ot(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 Ot(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]=Ot(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]=Ot(n,t,a)}return e}var vj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wj=typeof global=="object"&&global&&global.Object===Object&&global,Fp=wj,kj=typeof self=="object"&&self&&self.Object===Object&&self,xj=Fp||kj||Function("return this")(),ie=xj,Ij=ie.Symbol,Nt=Ij,Vp=Object.prototype,Cj=Vp.hasOwnProperty,Aj=Vp.toString,gi=Nt?Nt.toStringTag:void 0;function Sj(e){var t=Cj.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=Aj.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var Mj=Sj,jj=Object.prototype,$j=jj.toString;function _j(e){return $j.call(e)}var Ej=_j,Lj="[object Null]",Tj="[object Undefined]",ip=Nt?Nt.toStringTag:void 0;function Oj(e){return e==null?e===void 0?Tj:Lj:ip&&ip in Object(e)?Mj(e):Ej(e)}var Ii=Oj;function Nj(e){return e!=null&&typeof e=="object"}var dl=Nj,mee=Array.isArray;function Dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bp=Dj,Pj="[object AsyncFunction]",zj="[object Function]",Uj="[object GeneratorFunction]",Rj="[object Proxy]";function Fj(e){if(!Bp(e))return!1;var t=Ii(e);return t==zj||t==Uj||t==Pj||t==Rj}var Vj=Fj,Bj=ie["__core-js_shared__"],Ga=Bj,np=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qj(e){return!!np&&np in e}var Gj=qj,Hj=Function.prototype,Yj=Hj.toString;function Zj(e){if(e!=null){try{return Yj.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=Zj,Qj=/[\\^$.*+?()[\]{}|]/g,Wj=/^\[object .+?Constructor\]$/,Kj=Function.prototype,Jj=Object.prototype,Xj=Kj.toString,e$=Jj.hasOwnProperty,t$=RegExp("^"+Xj.call(e$).replace(Qj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function r$(e){if(!Bp(e)||Gj(e))return!1;var t=Vj(e)?t$:Wj;return t.test(Ue(e))}var i$=r$;function n$(e,t){return e?.[t]}var o$=n$;function a$(e,t){var r=o$(e,t);return i$(r)?r:void 0}var Pt=a$,l$=Pt(ie,"WeakMap"),Ja=l$;function s$(e,t){return e===t||e!==e&&t!==t}var u$=s$,c$=9007199254740991;function d$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c$}var p$=d$,bee=Object.prototype,g$="[object Arguments]";function f$(e){return dl(e)&&Ii(e)==g$}var op=f$,qp=Object.prototype,y$=qp.hasOwnProperty,m$=qp.propertyIsEnumerable,hee=op(function(){return arguments}())?op:function(e){return dl(e)&&y$.call(e,"callee")&&!m$.call(e,"callee")},Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,b$=ap&&ap.exports===Gp,lp=b$?ie.Buffer:void 0,vee=lp?lp.isBuffer:void 0,h$="[object Arguments]",v$="[object Array]",w$="[object Boolean]",k$="[object Date]",x$="[object Error]",I$="[object Function]",C$="[object Map]",A$="[object Number]",S$="[object Object]",M$="[object RegExp]",j$="[object Set]",$$="[object String]",_$="[object WeakMap]",E$="[object ArrayBuffer]",L$="[object DataView]",T$="[object Float32Array]",O$="[object Float64Array]",N$="[object Int8Array]",D$="[object Int16Array]",P$="[object Int32Array]",z$="[object Uint8Array]",U$="[object Uint8ClampedArray]",R$="[object Uint16Array]",F$="[object Uint32Array]",U={};U[T$]=U[O$]=U[N$]=U[D$]=U[P$]=U[z$]=U[U$]=U[R$]=U[F$]=!0;U[h$]=U[v$]=U[E$]=U[w$]=U[L$]=U[k$]=U[x$]=U[I$]=U[C$]=U[A$]=U[S$]=U[M$]=U[j$]=U[$$]=U[_$]=!1;function V$(e){return dl(e)&&p$(e.length)&&!!U[Ii(e)]}var B$=V$;function q$(e){return function(t){return e(t)}}var G$=q$,Hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=Hp&&typeof module=="object"&&module&&!module.nodeType&&module,H$=bi&&bi.exports===Hp,Ha=H$&&Fp.process,Y$=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),sp=Y$,up=sp&&sp.isTypedArray,wee=up?G$(up):B$,Z$=Object.prototype,kee=Z$.hasOwnProperty;function Q$(e,t){return function(r){return e(t(r))}}var W$=Q$,xee=W$(Object.keys,Object),K$=Object.prototype,Iee=K$.hasOwnProperty,J$=Pt(Object,"create"),vi=J$;function X$(){this.__data__=vi?vi(null):{},this.size=0}var e_=X$;function t_(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var r_=t_,i_="__lodash_hash_undefined__",n_=Object.prototype,o_=n_.hasOwnProperty;function a_(e){var t=this.__data__;if(vi){var r=t[e];return r===i_?void 0:r}return o_.call(t,e)?t[e]:void 0}var l_=a_,s_=Object.prototype,u_=s_.hasOwnProperty;function c_(e){var t=this.__data__;return vi?t[e]!==void 0:u_.call(t,e)}var d_=c_,p_="__lodash_hash_undefined__";function g_(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vi&&t===void 0?p_:t,this}var f_=g_;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=e_;zt.prototype.delete=r_;zt.prototype.get=l_;zt.prototype.has=d_;zt.prototype.set=f_;var cp=zt;function y_(){this.__data__=[],this.size=0}var m_=y_;function b_(e,t){for(var r=e.length;r--;)if(u$(e[r][0],t))return r;return-1}var eo=b_,h_=Array.prototype,v_=h_.splice;function w_(e){var t=this.__data__,r=eo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():v_.call(t,r,1),--this.size,!0}var k_=w_;function x_(e){var t=this.__data__,r=eo(t,e);return r<0?void 0:t[r][1]}var I_=x_;function C_(e){return eo(this.__data__,e)>-1}var A_=C_;function S_(e,t){var r=this.__data__,i=eo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var M_=S_;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=m_;Ut.prototype.delete=k_;Ut.prototype.get=I_;Ut.prototype.has=A_;Ut.prototype.set=M_;var to=Ut,j_=Pt(ie,"Map"),wi=j_;function $_(){this.size=0,this.__data__={hash:new cp,map:new(wi||to),string:new cp}}var __=$_;function E_(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var L_=E_;function T_(e,t){var r=e.__data__;return L_(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ro=T_;function O_(e){var t=ro(this,e).delete(e);return this.size-=t?1:0,t}var N_=O_;function D_(e){return ro(this,e).get(e)}var P_=D_;function z_(e){return ro(this,e).has(e)}var U_=z_;function R_(e,t){var r=ro(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var F_=R_;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=__;Rt.prototype.delete=N_;Rt.prototype.get=P_;Rt.prototype.has=U_;Rt.prototype.set=F_;var Yp=Rt;function V_(){this.__data__=new to,this.size=0}var B_=V_;function q_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var G_=q_;function H_(e){return this.__data__.get(e)}var Y_=H_;function Z_(e){return this.__data__.has(e)}var Q_=Z_,W_=200;function K_(e,t){var r=this.__data__;if(r instanceof to){var i=r.__data__;if(!wi||i.length<W_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var J_=K_;function Ci(e){var t=this.__data__=new to(e);this.size=t.size}Ci.prototype.clear=B_;Ci.prototype.delete=G_;Ci.prototype.get=Y_;Ci.prototype.has=Q_;Ci.prototype.set=J_;var X_=Object.prototype,Cee=X_.propertyIsEnumerable,eE=Pt(ie,"DataView"),Xa=eE,tE=Pt(ie,"Promise"),el=tE,rE=Pt(ie,"Set"),tl=rE,dp="[object Map]",iE="[object Object]",pp="[object Promise]",gp="[object Set]",fp="[object WeakMap]",yp="[object DataView]",nE=Ue(Xa),oE=Ue(wi),aE=Ue(el),lE=Ue(tl),sE=Ue(Ja),Lt=Ii;(Xa&&Lt(new Xa(new ArrayBuffer(1)))!=yp||wi&&Lt(new wi)!=dp||el&&Lt(el.resolve())!=pp||tl&&Lt(new tl)!=gp||Ja&&Lt(new Ja)!=fp)&&(Lt=function(e){var t=Ii(e),r=t==iE?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case nE:return yp;case oE:return dp;case aE:return pp;case lE:return gp;case sE:return fp}return t});var Aee=ie.Uint8Array,uE="__lodash_hash_undefined__";function cE(e){return this.__data__.set(e,uE),this}var dE=cE;function pE(e){return this.__data__.has(e)}var gE=pE;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=dE;rl.prototype.has=gE;var mp=Nt?Nt.prototype:void 0,See=mp?mp.valueOf:void 0,fE=Object.prototype,Mee=fE.hasOwnProperty,yE=Object.prototype,jee=yE.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Zp(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 mE(e,t){let r=await Zp(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 bE(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 Zp(i,t)}function hE(e){return e!==void 0}var vE=hE;function Ai(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}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)}var Qp=class Wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},wE=class Kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function kE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function xE({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 IE=xE,Ya="ly.img.ai.temp";async function CE(e,t){return e.engine.asset.findAllSources().includes(Ya)||e.engine.asset.addLocalSource(Ya),e.engine.asset.apply(Ya,t)}function AE(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 Jp(){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 SE(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 ME(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 jE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function $E(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!
243
243
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
244
244
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
245
- 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 _E(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 bp=_E;function EE(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:AE(e)}))}function LE(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var hp=EE,TE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ml=TE;function OE(e,t,r){switch(t){case"image":return NE(e,r[t]);case"video":return DE(e,r[t]);case"sticker":return PE(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function NE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ml,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function DE(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ml,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function PE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ml,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var zE=OE;async function UE(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 RE(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 FE(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 VE(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 BE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function RE(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 FE(e,t,r){let i=t.width,n=t.height,a=await SE(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 VE(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 BE(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 Xp=UE;function qE(e){switch(e.userFlow){case"placeholder":return HE(e);case"generation-only":return GE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function GE(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=Jp(),c=await Xp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function HE(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=Jp(),c=zE(s,a,o);if(i=await CE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Xp(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)&&(yl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var YE=qE;function bl(e){return`${e}.generating`}function ZE(e){return`${e}.abort`}function QE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(ZE(d),()=>{}),y=c.global(bl(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await YE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){hp(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;WE(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(yl(b))return;hp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function WE(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 eg=QE;function al(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function KE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(bl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return eg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var JE=KE;function tg(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 mi(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=tg(e,t.$ref),n={...mi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=mi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>mi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=mi(e,t[n],r));return i}return t}function XE(e){return mi(e,{...e})}function eL(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 tL(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return rL(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function rL(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=iL(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function iL(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 rg=tL;function ig(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 ng(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?nL(e,c,r,i,n,a,o,s):og(e,c,r,i,n,a,o,s);case"boolean":return ag(e,c,r,i,n,a,o,s);case"number":case"integer":return lg(e,c,r,i,n,a,o,s);case"object":return ll(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return oL(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ll(e,t,r,i,n,a,o,s){let c=rg(t.schema??{},i).reduce((l,u)=>{let d=ng(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 og(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=xe(r.id,o,d,"placeholder"),f=Ai(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Si(d,h,f,t.schema.default,""),v=l(p,m),k=aL(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function nL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),{labels:y,icons:f}=ig(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:xe(r.id,o,d,x),icon:f[x]})),m=Ai(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ag(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=Ai(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function lg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Ai(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Si(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function oL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=ig(t.schema),I=Ai(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:og,boolean:ag,integer:lg,object:ll},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:xe(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>ll(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Si(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function aL(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var lL=ng,sL={"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 vp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||vp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||vp(g);n[a(l.id,g)]=y}})}});let c={...sL,...n};Object.keys(c).length>0&&fl(r.cesdk,{en:c})}function kp(e){return typeof e.document=="function"?e.document():e.document}function xp(e,t,r){let i=XE(e),n=tg(i,t.inputReference);if(!eL(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=rg(a,t);return{inputSchema:a,properties:o}}function Ip(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=lL(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];eg(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function uL(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=kp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=xp(c,s,a.debug);return wp(y,i,r,i.kind),Ip(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(kp(s)).then(g=>{let{inputSchema:y,properties:f}=xp(g,s,a.debug);wp(f,i,r,i.kind),u=Ip(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var cL=uL;async function dL(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return JE(e,t);case"schema":return cL(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var pL=dL;function gL(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 hj(o,r)),o}return i}var fL=gL;function yL(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 mL=yL,Ka="@imgly/plugin-ai-generation",bL=`
245
+ 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 _E(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 bp=_E;function EE(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:AE(e)}))}function LE(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var hp=EE,TE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fl=TE;function OE(e,t,r){switch(t){case"image":return NE(e,r[t]);case"video":return DE(e,r[t]);case"sticker":return PE(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function NE(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 DE(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 PE(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 zE=OE;async function UE(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 RE(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 FE(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 VE(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 BE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function RE(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 FE(e,t,r){let i=t.width,n=t.height,a=await SE(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 VE(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 BE(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 Xp=UE;function qE(e){switch(e.userFlow){case"placeholder":return HE(e);case"generation-only":return GE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function GE(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=Jp(),c=await Xp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function HE(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=Jp(),c=zE(s,a,o);if(i=await CE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Xp(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),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var YE=qE;function yl(e){return`${e}.generating`}function ZE(e){return`${e}.abort`}function QE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(ZE(d),()=>{}),y=c.global(yl(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await YE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){hp(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;WE(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gl(b))return;hp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function WE(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 eg=QE;function il(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function KE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return eg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var JE=KE;function tg(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 mi(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=tg(e,t.$ref),n={...mi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=mi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>mi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=mi(e,t[n],r));return i}return t}function XE(e){return mi(e,{...e})}function eL(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 tL(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return rL(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function rL(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=iL(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function iL(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 rg=tL;function ig(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 ng(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?nL(e,c,r,i,n,a,o,s):og(e,c,r,i,n,a,o,s);case"boolean":return ag(e,c,r,i,n,a,o,s);case"number":case"integer":return lg(e,c,r,i,n,a,o,s);case"object":return nl(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 oL(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function nl(e,t,r,i,n,a,o,s){let c=rg(t.schema??{},i).reduce((l,u)=>{let d=ng(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 og(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=xe(r.id,o,d,"placeholder"),f=Ai(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Si(d,h,f,t.schema.default,""),v=l(p,m),k=aL(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function nL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),{labels:y,icons:f}=ig(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:xe(r.id,o,d,x),icon:f[x]})),m=Ai(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ag(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=Ai(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function lg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Ai(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Si(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function oL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=ig(t.schema),I=Ai(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:og,boolean:ag,integer:lg,object:nl},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:xe(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>nl(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Si(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function aL(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var lL=ng,sL={"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 vp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||vp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||vp(g);n[a(l.id,g)]=y}})}});let c={...sL,...n};Object.keys(c).length>0&&pl(r.cesdk,{en:c})}function kp(e){return typeof e.document=="function"?e.document():e.document}function xp(e,t,r){let i=XE(e),n=tg(i,t.inputReference);if(!eL(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=rg(a,t);return{inputSchema:a,properties:o}}function Ip(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=lL(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];eg(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function uL(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=kp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=xp(c,s,a.debug);return wp(y,i,r,i.kind),Ip(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(kp(s)).then(g=>{let{inputSchema:y,properties:f}=xp(g,s,a.debug);wp(f,i,r,i.kind),u=Ip(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var cL=uL;async function dL(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return JE(e,t);case"schema":return cL(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var pL=dL;function gL(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 hj(o,r)),o}return i}var fL=gL;function yL(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 mL=yL,Za="@imgly/plugin-ai-generation",bL=`
246
246
  <svg>
247
247
  <symbol
248
248
  fill="none"
@@ -260,7 +260,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
260
260
  fill="none"
261
261
  xmlns="http://www.w3.org/2000/svg"
262
262
  viewBox="0 0 24 24"
263
- id="${Ka}/image"
263
+ id="${Za}/image"
264
264
  >
265
265
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
266
266
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -272,7 +272,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
272
272
  fill="none"
273
273
  xmlns="http://www.w3.org/2000/svg"
274
274
  viewBox="0 0 24 24"
275
- id="${Ka}/video"
275
+ id="${Za}/video"
276
276
  >
277
277
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
278
278
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -283,7 +283,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
283
283
  fill="none"
284
284
  xmlns="http://www.w3.org/2000/svg"
285
285
  viewBox="0 0 24 24"
286
- id="${Ka}/audio"
286
+ id="${Za}/audio"
287
287
  >
288
288
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
289
289
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -315,7 +315,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
315
315
  </symbol>
316
316
  </svg>
317
317
  `,hL=bL;function vL(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 sg(2e3),await wL(t,e,r)):i(t,r)}async function wL(e,t,r){switch(t.kind){case"image":return kL(e,t,r);case"video":return xL(e,t,r);case"text":return IL(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 kL(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 bE(s,r),l=await mE(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(`
318
- `,"+")}`}}async function xL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function IL(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=fi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=fi(n,o)}else"customPrompt"in e?a=fi(n,"custom"):a=fi(n,"improved");else a=fi(n,"generated");return CL(a,r.abortSignal)}async function*CL(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 sg(100)}return{kind:"text",text:e}}function fi(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:SL(220,i),duration:i,thumbnailUrl:void 0}}function SL(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 ML(i,44100)}function ML(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function sg(e){return new Promise(t=>{setTimeout(t,e)})}var jL=vL,$L="USER_CANCEL";function _L(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=kE([...e.provider.output.middleware??[],...r?.middlewares??[],IE({enable:r?.debug}),jL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ME(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return yl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$L?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var EL=_L;async function LL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=fL(a),s=mL(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=EL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await pL(a,c);jE(r.cesdk,"@imgly/plugin-ai-generation",hL);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return wE.get().register(u),u}var Ja=LL;function TL(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 vj(n,r,i);return r.engine.asset.addSource(a),a.id}var OL=TL;function ro(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 NL(e,t,r,i){let{cesdk:n}=r;fl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ja(e,u,r,i)));o.push(...l),a=PL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ja(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ja(e,d,r,i)));o.push(...u),a=DL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(vE)}),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 DL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:al(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:al(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:ro(e,`${A}.label`),icon:f.value!==A&&zL(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:ro(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ro(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:al(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ro(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function zL(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(bl(r.id),!1).value)}var Cp=NL,Lee=5*60*1e3,UL=typeof global=="object"&&global&&global.Object===Object&&global,ug=UL,RL=typeof self=="object"&&self&&self.Object===Object&&self,FL=ug||RL||Function("return this")(),ne=FL,VL=ne.Symbol,Dt=VL,cg=Object.prototype,BL=cg.hasOwnProperty,qL=cg.toString,yi=Dt?Dt.toStringTag:void 0;function GL(e){var t=BL.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=qL.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var HL=GL,YL=Object.prototype,ZL=YL.toString;function QL(e){return ZL.call(e)}var WL=QL,KL="[object Null]",JL="[object Undefined]",Ap=Dt?Dt.toStringTag:void 0;function XL(e){return e==null?e===void 0?JL:KL:Ap&&Ap in Object(e)?HL(e):WL(e)}var Mi=XL;function eT(e){return e!=null&&typeof e=="object"}var hl=eT,Tee=Array.isArray;function tT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=tT,rT="[object AsyncFunction]",iT="[object Function]",nT="[object GeneratorFunction]",oT="[object Proxy]";function aT(e){if(!dg(e))return!1;var t=Mi(e);return t==iT||t==nT||t==rT||t==oT}var lT=aT,sT=ne["__core-js_shared__"],Xa=sT,Sp=function(){var e=/[^.]+$/.exec(Xa&&Xa.keys&&Xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uT(e){return!!Sp&&Sp in e}var cT=uT,dT=Function.prototype,pT=dT.toString;function gT(e){if(e!=null){try{return pT.call(e)}catch{}try{return e+""}catch{}}return""}var Re=gT,fT=/[\\^$.*+?()[\]{}|]/g,yT=/^\[object .+?Constructor\]$/,mT=Function.prototype,bT=Object.prototype,hT=mT.toString,vT=bT.hasOwnProperty,wT=RegExp("^"+hT.call(vT).replace(fT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kT(e){if(!dg(e)||cT(e))return!1;var t=lT(e)?wT:yT;return t.test(Re(e))}var xT=kT;function IT(e,t){return e?.[t]}var CT=IT;function AT(e,t){var r=CT(e,t);return xT(r)?r:void 0}var Ft=AT,ST=Ft(ne,"WeakMap"),sl=ST;function MT(e,t){return e===t||e!==e&&t!==t}var jT=MT,$T=9007199254740991;function _T(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$T}var ET=_T,Oee=Object.prototype,LT="[object Arguments]";function TT(e){return hl(e)&&Mi(e)==LT}var Mp=TT,pg=Object.prototype,OT=pg.hasOwnProperty,NT=pg.propertyIsEnumerable,Nee=Mp(function(){return arguments}())?Mp:function(e){return hl(e)&&OT.call(e,"callee")&&!NT.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,DT=jp&&jp.exports===gg,$p=DT?ne.Buffer:void 0,Dee=$p?$p.isBuffer:void 0,PT="[object Arguments]",zT="[object Array]",UT="[object Boolean]",RT="[object Date]",FT="[object Error]",VT="[object Function]",BT="[object Map]",qT="[object Number]",GT="[object Object]",HT="[object RegExp]",YT="[object Set]",ZT="[object String]",QT="[object WeakMap]",WT="[object ArrayBuffer]",KT="[object DataView]",JT="[object Float32Array]",XT="[object Float64Array]",eO="[object Int8Array]",tO="[object Int16Array]",rO="[object Int32Array]",iO="[object Uint8Array]",nO="[object Uint8ClampedArray]",oO="[object Uint16Array]",aO="[object Uint32Array]",R={};R[JT]=R[XT]=R[eO]=R[tO]=R[rO]=R[iO]=R[nO]=R[oO]=R[aO]=!0;R[PT]=R[zT]=R[WT]=R[UT]=R[KT]=R[RT]=R[FT]=R[VT]=R[BT]=R[qT]=R[GT]=R[HT]=R[YT]=R[ZT]=R[QT]=!1;function lO(e){return hl(e)&&ET(e.length)&&!!R[Mi(e)]}var sO=lO;function uO(e){return function(t){return e(t)}}var cO=uO,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hi=fg&&typeof module=="object"&&module&&!module.nodeType&&module,dO=hi&&hi.exports===fg,el=dO&&ug.process,pO=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||el&&el.binding&&el.binding("util")}catch{}}(),_p=pO,Ep=_p&&_p.isTypedArray,Pee=Ep?cO(Ep):sO,gO=Object.prototype,zee=gO.hasOwnProperty;function fO(e,t){return function(r){return e(t(r))}}var yO=fO,Uee=yO(Object.keys,Object),mO=Object.prototype,Ree=mO.hasOwnProperty,bO=Ft(Object,"create"),ki=bO;function hO(){this.__data__=ki?ki(null):{},this.size=0}var vO=hO;function wO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kO=wO,xO="__lodash_hash_undefined__",IO=Object.prototype,CO=IO.hasOwnProperty;function AO(e){var t=this.__data__;if(ki){var r=t[e];return r===xO?void 0:r}return CO.call(t,e)?t[e]:void 0}var SO=AO,MO=Object.prototype,jO=MO.hasOwnProperty;function $O(e){var t=this.__data__;return ki?t[e]!==void 0:jO.call(t,e)}var _O=$O,EO="__lodash_hash_undefined__";function LO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?EO:t,this}var TO=LO;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=vO;Vt.prototype.delete=kO;Vt.prototype.get=SO;Vt.prototype.has=_O;Vt.prototype.set=TO;var Lp=Vt;function OO(){this.__data__=[],this.size=0}var NO=OO;function DO(e,t){for(var r=e.length;r--;)if(jT(e[r][0],t))return r;return-1}var ao=DO,PO=Array.prototype,zO=PO.splice;function UO(e){var t=this.__data__,r=ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zO.call(t,r,1),--this.size,!0}var RO=UO;function FO(e){var t=this.__data__,r=ao(t,e);return r<0?void 0:t[r][1]}var VO=FO;function BO(e){return ao(this.__data__,e)>-1}var qO=BO;function GO(e,t){var r=this.__data__,i=ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HO=GO;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=NO;Bt.prototype.delete=RO;Bt.prototype.get=VO;Bt.prototype.has=qO;Bt.prototype.set=HO;var lo=Bt,YO=Ft(ne,"Map"),xi=YO;function ZO(){this.size=0,this.__data__={hash:new Lp,map:new(xi||lo),string:new Lp}}var QO=ZO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KO=WO;function JO(e,t){var r=e.__data__;return KO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var so=JO;function XO(e){var t=so(this,e).delete(e);return this.size-=t?1:0,t}var eN=XO;function tN(e){return so(this,e).get(e)}var rN=tN;function iN(e){return so(this,e).has(e)}var nN=iN;function oN(e,t){var r=so(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var aN=oN;function qt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qt.prototype.clear=QO;qt.prototype.delete=eN;qt.prototype.get=rN;qt.prototype.has=nN;qt.prototype.set=aN;var yg=qt;function lN(){this.__data__=new lo,this.size=0}var sN=lN;function uN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cN=uN;function dN(e){return this.__data__.get(e)}var pN=dN;function gN(e){return this.__data__.has(e)}var fN=gN,yN=200;function mN(e,t){var r=this.__data__;if(r instanceof lo){var i=r.__data__;if(!xi||i.length<yN-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yg(i)}return r.set(e,t),this.size=r.size,this}var bN=mN;function ji(e){var t=this.__data__=new lo(e);this.size=t.size}ji.prototype.clear=sN;ji.prototype.delete=cN;ji.prototype.get=pN;ji.prototype.has=fN;ji.prototype.set=bN;var hN=Object.prototype,Fee=hN.propertyIsEnumerable,vN=Ft(ne,"DataView"),ul=vN,wN=Ft(ne,"Promise"),cl=wN,kN=Ft(ne,"Set"),dl=kN,Tp="[object Map]",xN="[object Object]",Op="[object Promise]",Np="[object Set]",Dp="[object WeakMap]",Pp="[object DataView]",IN=Re(ul),CN=Re(xi),AN=Re(cl),SN=Re(dl),MN=Re(sl),Tt=Mi;(ul&&Tt(new ul(new ArrayBuffer(1)))!=Pp||xi&&Tt(new xi)!=Tp||cl&&Tt(cl.resolve())!=Op||dl&&Tt(new dl)!=Np||sl&&Tt(new sl)!=Dp)&&(Tt=function(e){var t=Mi(e),r=t==xN?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case IN:return Pp;case CN:return Tp;case AN:return Op;case SN:return Np;case MN:return Dp}return t});var Vee=ne.Uint8Array,jN="__lodash_hash_undefined__";function $N(e){return this.__data__.set(e,jN),this}var _N=$N;function EN(e){return this.__data__.has(e)}var LN=EN;function pl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}pl.prototype.add=pl.prototype.push=_N;pl.prototype.has=LN;var zp=Dt?Dt.prototype:void 0,Bee=zp?zp.valueOf:void 0,TN=Object.prototype,qee=TN.hasOwnProperty,ON=Object.prototype,Gee=ON.hasOwnProperty,Hee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Zee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function NN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Up=NN;function DN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function PN(e){return typeof e?.translate=="function"}function Rp(e,t,r){return e&&DN(e)&&PN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",Pe="ly.img.ai.audio-generation.speech",ze="ly.img.ai.audio-generation.sound";function zN(e){return{async initialize({cesdk:t}){if(t==null)return;$E(t,we,"1.83.0-nightly.20260917"),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`;fl(t,{en:{[`panel.${Pe}`]:"AI Voice",[`panel.${ze}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),UN(e);let n=Qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Rp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:ze},execute:()=>{t.ui.isPanelOpen(ze)?t.ui.closePanel(ze):t.ui.openPanel(ze)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Rp(t,i,"AI Voice"),labelKey:i,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Up(s).map(f=>f({cesdk:t}))),u=await Promise.all(Up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Cp("audio",l,{cesdk:t},e),y=await Cp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(ze,y.panel.builderRenderFunction),bp({cesdk:t,panelId:ze})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,g.panel.builderRenderFunction),bp({cesdk:t,panelId:Pe})):o()}}}function UN(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 RN=zN,FN=e=>({name:we,version:"1.83.0-nightly.20260917",...RN(e)}),mg=FN;var VN="@imgly/plugin-ai-text-generation",BN=`
318
+ `,"+")}`}}async function xL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function IL(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=fi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=fi(n,o)}else"customPrompt"in e?a=fi(n,"custom"):a=fi(n,"improved");else a=fi(n,"generated");return CL(a,r.abortSignal)}async function*CL(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 sg(100)}return{kind:"text",text:e}}function fi(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:SL(220,i),duration:i,thumbnailUrl:void 0}}function SL(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 ML(i,44100)}function ML(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function sg(e){return new Promise(t=>{setTimeout(t,e)})}var jL=vL,$L="USER_CANCEL";function _L(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=kE([...e.provider.output.middleware??[],...r?.middlewares??[],IE({enable:r?.debug}),jL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ME(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===$L?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var EL=_L;async function LL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=fL(a),s=mL(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=EL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await pL(a,c);jE(r.cesdk,"@imgly/plugin-ai-generation",hL);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return wE.get().register(u),u}var Qa=LL;function TL(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 vj(n,r,i);return r.engine.asset.addSource(a),a.id}var OL=TL;function ol(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NL(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.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Qa(e,u,r,i)));o.push(...l),a=PL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Qa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Qa(e,d,r,i)));o.push(...u),a=DL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(vE)}),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 DL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:ol(e,`${A}.label`),icon:f.value!==A&&zL(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:il(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function zL(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var Cp=NL,Lee=5*60*1e3,UL=typeof global=="object"&&global&&global.Object===Object&&global,ug=UL,RL=typeof self=="object"&&self&&self.Object===Object&&self,FL=ug||RL||Function("return this")(),ne=FL,VL=ne.Symbol,Dt=VL,cg=Object.prototype,BL=cg.hasOwnProperty,qL=cg.toString,yi=Dt?Dt.toStringTag:void 0;function GL(e){var t=BL.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=qL.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var HL=GL,YL=Object.prototype,ZL=YL.toString;function QL(e){return ZL.call(e)}var WL=QL,KL="[object Null]",JL="[object Undefined]",Ap=Dt?Dt.toStringTag:void 0;function XL(e){return e==null?e===void 0?JL:KL:Ap&&Ap in Object(e)?HL(e):WL(e)}var Mi=XL;function eT(e){return e!=null&&typeof e=="object"}var ml=eT,Tee=Array.isArray;function tT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=tT,rT="[object AsyncFunction]",iT="[object Function]",nT="[object GeneratorFunction]",oT="[object Proxy]";function aT(e){if(!dg(e))return!1;var t=Mi(e);return t==iT||t==nT||t==rT||t==oT}var lT=aT,sT=ne["__core-js_shared__"],Wa=sT,Sp=function(){var e=/[^.]+$/.exec(Wa&&Wa.keys&&Wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uT(e){return!!Sp&&Sp in e}var cT=uT,dT=Function.prototype,pT=dT.toString;function gT(e){if(e!=null){try{return pT.call(e)}catch{}try{return e+""}catch{}}return""}var Re=gT,fT=/[\\^$.*+?()[\]{}|]/g,yT=/^\[object .+?Constructor\]$/,mT=Function.prototype,bT=Object.prototype,hT=mT.toString,vT=bT.hasOwnProperty,wT=RegExp("^"+hT.call(vT).replace(fT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kT(e){if(!dg(e)||cT(e))return!1;var t=lT(e)?wT:yT;return t.test(Re(e))}var xT=kT;function IT(e,t){return e?.[t]}var CT=IT;function AT(e,t){var r=CT(e,t);return xT(r)?r:void 0}var Ft=AT,ST=Ft(ne,"WeakMap"),al=ST;function MT(e,t){return e===t||e!==e&&t!==t}var jT=MT,$T=9007199254740991;function _T(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$T}var ET=_T,Oee=Object.prototype,LT="[object Arguments]";function TT(e){return ml(e)&&Mi(e)==LT}var Mp=TT,pg=Object.prototype,OT=pg.hasOwnProperty,NT=pg.propertyIsEnumerable,Nee=Mp(function(){return arguments}())?Mp:function(e){return ml(e)&&OT.call(e,"callee")&&!NT.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,DT=jp&&jp.exports===gg,$p=DT?ne.Buffer:void 0,Dee=$p?$p.isBuffer:void 0,PT="[object Arguments]",zT="[object Array]",UT="[object Boolean]",RT="[object Date]",FT="[object Error]",VT="[object Function]",BT="[object Map]",qT="[object Number]",GT="[object Object]",HT="[object RegExp]",YT="[object Set]",ZT="[object String]",QT="[object WeakMap]",WT="[object ArrayBuffer]",KT="[object DataView]",JT="[object Float32Array]",XT="[object Float64Array]",eO="[object Int8Array]",tO="[object Int16Array]",rO="[object Int32Array]",iO="[object Uint8Array]",nO="[object Uint8ClampedArray]",oO="[object Uint16Array]",aO="[object Uint32Array]",R={};R[JT]=R[XT]=R[eO]=R[tO]=R[rO]=R[iO]=R[nO]=R[oO]=R[aO]=!0;R[PT]=R[zT]=R[WT]=R[UT]=R[KT]=R[RT]=R[FT]=R[VT]=R[BT]=R[qT]=R[GT]=R[HT]=R[YT]=R[ZT]=R[QT]=!1;function lO(e){return ml(e)&&ET(e.length)&&!!R[Mi(e)]}var sO=lO;function uO(e){return function(t){return e(t)}}var cO=uO,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hi=fg&&typeof module=="object"&&module&&!module.nodeType&&module,dO=hi&&hi.exports===fg,Ka=dO&&ug.process,pO=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||Ka&&Ka.binding&&Ka.binding("util")}catch{}}(),_p=pO,Ep=_p&&_p.isTypedArray,Pee=Ep?cO(Ep):sO,gO=Object.prototype,zee=gO.hasOwnProperty;function fO(e,t){return function(r){return e(t(r))}}var yO=fO,Uee=yO(Object.keys,Object),mO=Object.prototype,Ree=mO.hasOwnProperty,bO=Ft(Object,"create"),ki=bO;function hO(){this.__data__=ki?ki(null):{},this.size=0}var vO=hO;function wO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kO=wO,xO="__lodash_hash_undefined__",IO=Object.prototype,CO=IO.hasOwnProperty;function AO(e){var t=this.__data__;if(ki){var r=t[e];return r===xO?void 0:r}return CO.call(t,e)?t[e]:void 0}var SO=AO,MO=Object.prototype,jO=MO.hasOwnProperty;function $O(e){var t=this.__data__;return ki?t[e]!==void 0:jO.call(t,e)}var _O=$O,EO="__lodash_hash_undefined__";function LO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?EO:t,this}var TO=LO;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=vO;Vt.prototype.delete=kO;Vt.prototype.get=SO;Vt.prototype.has=_O;Vt.prototype.set=TO;var Lp=Vt;function OO(){this.__data__=[],this.size=0}var NO=OO;function DO(e,t){for(var r=e.length;r--;)if(jT(e[r][0],t))return r;return-1}var io=DO,PO=Array.prototype,zO=PO.splice;function UO(e){var t=this.__data__,r=io(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zO.call(t,r,1),--this.size,!0}var RO=UO;function FO(e){var t=this.__data__,r=io(t,e);return r<0?void 0:t[r][1]}var VO=FO;function BO(e){return io(this.__data__,e)>-1}var qO=BO;function GO(e,t){var r=this.__data__,i=io(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HO=GO;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=NO;Bt.prototype.delete=RO;Bt.prototype.get=VO;Bt.prototype.has=qO;Bt.prototype.set=HO;var no=Bt,YO=Ft(ne,"Map"),xi=YO;function ZO(){this.size=0,this.__data__={hash:new Lp,map:new(xi||no),string:new Lp}}var QO=ZO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KO=WO;function JO(e,t){var r=e.__data__;return KO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var oo=JO;function XO(e){var t=oo(this,e).delete(e);return this.size-=t?1:0,t}var eN=XO;function tN(e){return oo(this,e).get(e)}var rN=tN;function iN(e){return oo(this,e).has(e)}var nN=iN;function oN(e,t){var r=oo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var aN=oN;function qt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qt.prototype.clear=QO;qt.prototype.delete=eN;qt.prototype.get=rN;qt.prototype.has=nN;qt.prototype.set=aN;var yg=qt;function lN(){this.__data__=new no,this.size=0}var sN=lN;function uN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cN=uN;function dN(e){return this.__data__.get(e)}var pN=dN;function gN(e){return this.__data__.has(e)}var fN=gN,yN=200;function mN(e,t){var r=this.__data__;if(r instanceof no){var i=r.__data__;if(!xi||i.length<yN-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yg(i)}return r.set(e,t),this.size=r.size,this}var bN=mN;function ji(e){var t=this.__data__=new no(e);this.size=t.size}ji.prototype.clear=sN;ji.prototype.delete=cN;ji.prototype.get=pN;ji.prototype.has=fN;ji.prototype.set=bN;var hN=Object.prototype,Fee=hN.propertyIsEnumerable,vN=Ft(ne,"DataView"),ll=vN,wN=Ft(ne,"Promise"),sl=wN,kN=Ft(ne,"Set"),ul=kN,Tp="[object Map]",xN="[object Object]",Op="[object Promise]",Np="[object Set]",Dp="[object WeakMap]",Pp="[object DataView]",IN=Re(ll),CN=Re(xi),AN=Re(sl),SN=Re(ul),MN=Re(al),Tt=Mi;(ll&&Tt(new ll(new ArrayBuffer(1)))!=Pp||xi&&Tt(new xi)!=Tp||sl&&Tt(sl.resolve())!=Op||ul&&Tt(new ul)!=Np||al&&Tt(new al)!=Dp)&&(Tt=function(e){var t=Mi(e),r=t==xN?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case IN:return Pp;case CN:return Tp;case AN:return Op;case SN:return Np;case MN:return Dp}return t});var Vee=ne.Uint8Array,jN="__lodash_hash_undefined__";function $N(e){return this.__data__.set(e,jN),this}var _N=$N;function EN(e){return this.__data__.has(e)}var LN=EN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=_N;cl.prototype.has=LN;var zp=Dt?Dt.prototype:void 0,Bee=zp?zp.valueOf:void 0,TN=Object.prototype,qee=TN.hasOwnProperty,ON=Object.prototype,Gee=ON.hasOwnProperty,Hee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Zee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function NN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Up=NN;function DN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function PN(e){return typeof e?.translate=="function"}function Rp(e,t,r){return e&&DN(e)&&PN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",Pe="ly.img.ai.audio-generation.speech",ze="ly.img.ai.audio-generation.sound";function zN(e){return{async initialize({cesdk:t}){if(t==null)return;$E(t,we,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${Pe}`]:"AI Voice",[`panel.${ze}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),UN(e);let n=Qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Rp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:ze},execute:()=>{t.ui.isPanelOpen(ze)?t.ui.closePanel(ze):t.ui.openPanel(ze)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Rp(t,i,"AI Voice"),labelKey:i,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Up(s).map(f=>f({cesdk:t}))),u=await Promise.all(Up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Cp("audio",l,{cesdk:t},e),y=await Cp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(ze,y.panel.builderRenderFunction),bp({cesdk:t,panelId:ze})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,g.panel.builderRenderFunction),bp({cesdk:t,panelId:Pe})):o()}}}function UN(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 RN=zN,FN=e=>({name:we,version:"1.83.0-rc.0",...RN(e)}),mg=FN;var VN="@imgly/plugin-ai-text-generation",BN=`
319
319
  <svg>
320
320
  <symbol
321
321
  fill="none"
@@ -391,10 +391,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
391
391
  <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"/>
392
392
  </symbol>
393
393
  </svg>
394
- `,qN=BN;function GN(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var Ae=GN,HN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var YN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},ZN=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)}},a1=ZN,QN=typeof global=="object"&&global&&global.Object===Object&&global,l1=QN,WN=typeof self=="object"&&self&&self.Object===Object&&self,KN=l1||WN||Function("return this")(),oe=KN,JN=oe.Symbol,Zt=JN,s1=Object.prototype,XN=s1.hasOwnProperty,eD=s1.toString,$i=Zt?Zt.toStringTag:void 0;function tD(e){var t=XN.call(e,$i),r=e[$i];try{e[$i]=void 0;var i=!0}catch{}var n=eD.call(e);return i&&(t?e[$i]=r:delete e[$i]),n}var rD=tD,iD=Object.prototype,nD=iD.toString;function oD(e){return nD.call(e)}var aD=oD,lD="[object Null]",sD="[object Undefined]",bg=Zt?Zt.toStringTag:void 0;function uD(e){return e==null?e===void 0?sD:lD:bg&&bg in Object(e)?rD(e):aD(e)}var Vi=uD;function cD(e){return e!=null&&typeof e=="object"}var Rl=cD,Jee=Array.isArray;function dD(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var u1=dD,pD="[object AsyncFunction]",gD="[object Function]",fD="[object GeneratorFunction]",yD="[object Proxy]";function mD(e){if(!u1(e))return!1;var t=Vi(e);return t==gD||t==fD||t==pD||t==yD}var bD=mD,hD=oe["__core-js_shared__"],vl=hD,hg=function(){var e=/[^.]+$/.exec(vl&&vl.keys&&vl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vD(e){return!!hg&&hg in e}var wD=vD,kD=Function.prototype,xD=kD.toString;function ID(e){if(e!=null){try{return xD.call(e)}catch{}try{return e+""}catch{}}return""}var Be=ID,CD=/[\\^$.*+?()[\]{}|]/g,AD=/^\[object .+?Constructor\]$/,SD=Function.prototype,MD=Object.prototype,jD=SD.toString,$D=MD.hasOwnProperty,_D=RegExp("^"+jD.call($D).replace(CD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ED(e){if(!u1(e)||wD(e))return!1;var t=bD(e)?_D:AD;return t.test(Be(e))}var LD=ED;function TD(e,t){return e?.[t]}var OD=TD;function ND(e,t){var r=OD(e,t);return LD(r)?r:void 0}var Wt=ND,DD=Wt(oe,"WeakMap"),Ml=DD;function PD(e,t){return e===t||e!==e&&t!==t}var zD=PD,UD=9007199254740991;function RD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=UD}var FD=RD,Xee=Object.prototype,VD="[object Arguments]";function BD(e){return Rl(e)&&Vi(e)==VD}var vg=BD,c1=Object.prototype,qD=c1.hasOwnProperty,GD=c1.propertyIsEnumerable,ete=vg(function(){return arguments}())?vg:function(e){return Rl(e)&&qD.call(e,"callee")&&!GD.call(e,"callee")},d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wg=d1&&typeof module=="object"&&module&&!module.nodeType&&module,HD=wg&&wg.exports===d1,kg=HD?oe.Buffer:void 0,tte=kg?kg.isBuffer:void 0,YD="[object Arguments]",ZD="[object Array]",QD="[object Boolean]",WD="[object Date]",KD="[object Error]",JD="[object Function]",XD="[object Map]",eP="[object Number]",tP="[object Object]",rP="[object RegExp]",iP="[object Set]",nP="[object String]",oP="[object WeakMap]",aP="[object ArrayBuffer]",lP="[object DataView]",sP="[object Float32Array]",uP="[object Float64Array]",cP="[object Int8Array]",dP="[object Int16Array]",pP="[object Int32Array]",gP="[object Uint8Array]",fP="[object Uint8ClampedArray]",yP="[object Uint16Array]",mP="[object Uint32Array]",F={};F[sP]=F[uP]=F[cP]=F[dP]=F[pP]=F[gP]=F[fP]=F[yP]=F[mP]=!0;F[YD]=F[ZD]=F[aP]=F[QD]=F[lP]=F[WD]=F[KD]=F[JD]=F[XD]=F[eP]=F[tP]=F[rP]=F[iP]=F[nP]=F[oP]=!1;function bP(e){return Rl(e)&&FD(e.length)&&!!F[Vi(e)]}var hP=bP;function vP(e){return function(t){return e(t)}}var wP=vP,p1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ni=p1&&typeof module=="object"&&module&&!module.nodeType&&module,kP=Ni&&Ni.exports===p1,wl=kP&&l1.process,xP=function(){try{var e=Ni&&Ni.require&&Ni.require("util").types;return e||wl&&wl.binding&&wl.binding("util")}catch{}}(),xg=xP,Ig=xg&&xg.isTypedArray,rte=Ig?wP(Ig):hP,IP=Object.prototype,ite=IP.hasOwnProperty;function CP(e,t){return function(r){return e(t(r))}}var AP=CP,nte=AP(Object.keys,Object),SP=Object.prototype,ote=SP.hasOwnProperty,MP=Wt(Object,"create"),Pi=MP;function jP(){this.__data__=Pi?Pi(null):{},this.size=0}var $P=jP;function _P(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var EP=_P,LP="__lodash_hash_undefined__",TP=Object.prototype,OP=TP.hasOwnProperty;function NP(e){var t=this.__data__;if(Pi){var r=t[e];return r===LP?void 0:r}return OP.call(t,e)?t[e]:void 0}var DP=NP,PP=Object.prototype,zP=PP.hasOwnProperty;function UP(e){var t=this.__data__;return Pi?t[e]!==void 0:zP.call(t,e)}var RP=UP,FP="__lodash_hash_undefined__";function VP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pi&&t===void 0?FP:t,this}var BP=VP;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=$P;Kt.prototype.delete=EP;Kt.prototype.get=DP;Kt.prototype.has=RP;Kt.prototype.set=BP;var Cg=Kt;function qP(){this.__data__=[],this.size=0}var GP=qP;function HP(e,t){for(var r=e.length;r--;)if(zD(e[r][0],t))return r;return-1}var co=HP,YP=Array.prototype,ZP=YP.splice;function QP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ZP.call(t,r,1),--this.size,!0}var WP=QP;function KP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var JP=KP;function XP(e){return co(this.__data__,e)>-1}var ez=XP;function tz(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 rz=tz;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=GP;Jt.prototype.delete=WP;Jt.prototype.get=JP;Jt.prototype.has=ez;Jt.prototype.set=rz;var po=Jt,iz=Wt(oe,"Map"),zi=iz;function nz(){this.size=0,this.__data__={hash:new Cg,map:new(zi||po),string:new Cg}}var oz=nz;function az(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var lz=az;function sz(e,t){var r=e.__data__;return lz(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=sz;function uz(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var cz=uz;function dz(e){return go(this,e).get(e)}var pz=dz;function gz(e){return go(this,e).has(e)}var fz=gz;function yz(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var mz=yz;function Xt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Xt.prototype.clear=oz;Xt.prototype.delete=cz;Xt.prototype.get=pz;Xt.prototype.has=fz;Xt.prototype.set=mz;var g1=Xt;function bz(){this.__data__=new po,this.size=0}var hz=bz;function vz(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var wz=vz;function kz(e){return this.__data__.get(e)}var xz=kz;function Iz(e){return this.__data__.has(e)}var Cz=Iz,Az=200;function Sz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!zi||i.length<Az-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new g1(i)}return r.set(e,t),this.size=r.size,this}var Mz=Sz;function Bi(e){var t=this.__data__=new po(e);this.size=t.size}Bi.prototype.clear=hz;Bi.prototype.delete=wz;Bi.prototype.get=xz;Bi.prototype.has=Cz;Bi.prototype.set=Mz;var jz=Object.prototype,ate=jz.propertyIsEnumerable,$z=Wt(oe,"DataView"),jl=$z,_z=Wt(oe,"Promise"),$l=_z,Ez=Wt(oe,"Set"),_l=Ez,Ag="[object Map]",Lz="[object Object]",Sg="[object Promise]",Mg="[object Set]",jg="[object WeakMap]",$g="[object DataView]",Tz=Be(jl),Oz=Be(zi),Nz=Be($l),Dz=Be(_l),Pz=Be(Ml),Gt=Vi;(jl&&Gt(new jl(new ArrayBuffer(1)))!=$g||zi&&Gt(new zi)!=Ag||$l&&Gt($l.resolve())!=Sg||_l&&Gt(new _l)!=Mg||Ml&&Gt(new Ml)!=jg)&&(Gt=function(e){var t=Vi(e),r=t==Lz?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case Tz:return $g;case Oz:return Ag;case Nz:return Sg;case Dz:return Mg;case Pz:return jg}return t});var lte=oe.Uint8Array,zz="__lodash_hash_undefined__";function Uz(e){return this.__data__.set(e,zz),this}var Rz=Uz;function Fz(e){return this.__data__.has(e)}var Vz=Fz;function El(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new g1;++t<r;)this.add(e[t])}El.prototype.add=El.prototype.push=Rz;El.prototype.has=Vz;var _g=Zt?Zt.prototype:void 0,ste=_g?_g.valueOf:void 0,Bz=Object.prototype,ute=Bz.hasOwnProperty,qz=Object.prototype,cte=qz.hasOwnProperty,dte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function f1(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 Ll(e,t){let r=await f1(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 Gz(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 f1(i,t)}function Hz(e){return e!==void 0}var fo=Hz;function qi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gi(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}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)}var Fl=class y1{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 y1),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))}},m1=class b1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new b1),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 Yz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Zz({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 Qz=Zz,kl="ly.img.ai.temp";async function Wz(e,t){return e.engine.asset.findAllSources().includes(kl)||e.engine.asset.addLocalSource(kl),e.engine.asset.apply(kl,t)}function Kz(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 h1(){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 Xz(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 Vl(e){return e instanceof Error&&e.name==="AbortError"}function eU(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function tU(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!
394
+ `,qN=BN;function GN(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var Ae=GN,HN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var YN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},ZN=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)}},a1=ZN,QN=typeof global=="object"&&global&&global.Object===Object&&global,l1=QN,WN=typeof self=="object"&&self&&self.Object===Object&&self,KN=l1||WN||Function("return this")(),oe=KN,JN=oe.Symbol,Zt=JN,s1=Object.prototype,XN=s1.hasOwnProperty,eD=s1.toString,$i=Zt?Zt.toStringTag:void 0;function tD(e){var t=XN.call(e,$i),r=e[$i];try{e[$i]=void 0;var i=!0}catch{}var n=eD.call(e);return i&&(t?e[$i]=r:delete e[$i]),n}var rD=tD,iD=Object.prototype,nD=iD.toString;function oD(e){return nD.call(e)}var aD=oD,lD="[object Null]",sD="[object Undefined]",bg=Zt?Zt.toStringTag:void 0;function uD(e){return e==null?e===void 0?sD:lD:bg&&bg in Object(e)?rD(e):aD(e)}var Vi=uD;function cD(e){return e!=null&&typeof e=="object"}var Ul=cD,Jee=Array.isArray;function dD(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var u1=dD,pD="[object AsyncFunction]",gD="[object Function]",fD="[object GeneratorFunction]",yD="[object Proxy]";function mD(e){if(!u1(e))return!1;var t=Vi(e);return t==gD||t==fD||t==pD||t==yD}var bD=mD,hD=oe["__core-js_shared__"],bl=hD,hg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vD(e){return!!hg&&hg in e}var wD=vD,kD=Function.prototype,xD=kD.toString;function ID(e){if(e!=null){try{return xD.call(e)}catch{}try{return e+""}catch{}}return""}var Be=ID,CD=/[\\^$.*+?()[\]{}|]/g,AD=/^\[object .+?Constructor\]$/,SD=Function.prototype,MD=Object.prototype,jD=SD.toString,$D=MD.hasOwnProperty,_D=RegExp("^"+jD.call($D).replace(CD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ED(e){if(!u1(e)||wD(e))return!1;var t=bD(e)?_D:AD;return t.test(Be(e))}var LD=ED;function TD(e,t){return e?.[t]}var OD=TD;function ND(e,t){var r=OD(e,t);return LD(r)?r:void 0}var Wt=ND,DD=Wt(oe,"WeakMap"),Al=DD;function PD(e,t){return e===t||e!==e&&t!==t}var zD=PD,UD=9007199254740991;function RD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=UD}var FD=RD,Xee=Object.prototype,VD="[object Arguments]";function BD(e){return Ul(e)&&Vi(e)==VD}var vg=BD,c1=Object.prototype,qD=c1.hasOwnProperty,GD=c1.propertyIsEnumerable,ete=vg(function(){return arguments}())?vg:function(e){return Ul(e)&&qD.call(e,"callee")&&!GD.call(e,"callee")},d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wg=d1&&typeof module=="object"&&module&&!module.nodeType&&module,HD=wg&&wg.exports===d1,kg=HD?oe.Buffer:void 0,tte=kg?kg.isBuffer:void 0,YD="[object Arguments]",ZD="[object Array]",QD="[object Boolean]",WD="[object Date]",KD="[object Error]",JD="[object Function]",XD="[object Map]",eP="[object Number]",tP="[object Object]",rP="[object RegExp]",iP="[object Set]",nP="[object String]",oP="[object WeakMap]",aP="[object ArrayBuffer]",lP="[object DataView]",sP="[object Float32Array]",uP="[object Float64Array]",cP="[object Int8Array]",dP="[object Int16Array]",pP="[object Int32Array]",gP="[object Uint8Array]",fP="[object Uint8ClampedArray]",yP="[object Uint16Array]",mP="[object Uint32Array]",F={};F[sP]=F[uP]=F[cP]=F[dP]=F[pP]=F[gP]=F[fP]=F[yP]=F[mP]=!0;F[YD]=F[ZD]=F[aP]=F[QD]=F[lP]=F[WD]=F[KD]=F[JD]=F[XD]=F[eP]=F[tP]=F[rP]=F[iP]=F[nP]=F[oP]=!1;function bP(e){return Ul(e)&&FD(e.length)&&!!F[Vi(e)]}var hP=bP;function vP(e){return function(t){return e(t)}}var wP=vP,p1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ni=p1&&typeof module=="object"&&module&&!module.nodeType&&module,kP=Ni&&Ni.exports===p1,hl=kP&&l1.process,xP=function(){try{var e=Ni&&Ni.require&&Ni.require("util").types;return e||hl&&hl.binding&&hl.binding("util")}catch{}}(),xg=xP,Ig=xg&&xg.isTypedArray,rte=Ig?wP(Ig):hP,IP=Object.prototype,ite=IP.hasOwnProperty;function CP(e,t){return function(r){return e(t(r))}}var AP=CP,nte=AP(Object.keys,Object),SP=Object.prototype,ote=SP.hasOwnProperty,MP=Wt(Object,"create"),Pi=MP;function jP(){this.__data__=Pi?Pi(null):{},this.size=0}var $P=jP;function _P(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var EP=_P,LP="__lodash_hash_undefined__",TP=Object.prototype,OP=TP.hasOwnProperty;function NP(e){var t=this.__data__;if(Pi){var r=t[e];return r===LP?void 0:r}return OP.call(t,e)?t[e]:void 0}var DP=NP,PP=Object.prototype,zP=PP.hasOwnProperty;function UP(e){var t=this.__data__;return Pi?t[e]!==void 0:zP.call(t,e)}var RP=UP,FP="__lodash_hash_undefined__";function VP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pi&&t===void 0?FP:t,this}var BP=VP;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=$P;Kt.prototype.delete=EP;Kt.prototype.get=DP;Kt.prototype.has=RP;Kt.prototype.set=BP;var Cg=Kt;function qP(){this.__data__=[],this.size=0}var GP=qP;function HP(e,t){for(var r=e.length;r--;)if(zD(e[r][0],t))return r;return-1}var ao=HP,YP=Array.prototype,ZP=YP.splice;function QP(e){var t=this.__data__,r=ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ZP.call(t,r,1),--this.size,!0}var WP=QP;function KP(e){var t=this.__data__,r=ao(t,e);return r<0?void 0:t[r][1]}var JP=KP;function XP(e){return ao(this.__data__,e)>-1}var ez=XP;function tz(e,t){var r=this.__data__,i=ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var rz=tz;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=GP;Jt.prototype.delete=WP;Jt.prototype.get=JP;Jt.prototype.has=ez;Jt.prototype.set=rz;var lo=Jt,iz=Wt(oe,"Map"),zi=iz;function nz(){this.size=0,this.__data__={hash:new Cg,map:new(zi||lo),string:new Cg}}var oz=nz;function az(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var lz=az;function sz(e,t){var r=e.__data__;return lz(t)?r[typeof t=="string"?"string":"hash"]:r.map}var so=sz;function uz(e){var t=so(this,e).delete(e);return this.size-=t?1:0,t}var cz=uz;function dz(e){return so(this,e).get(e)}var pz=dz;function gz(e){return so(this,e).has(e)}var fz=gz;function yz(e,t){var r=so(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var mz=yz;function Xt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Xt.prototype.clear=oz;Xt.prototype.delete=cz;Xt.prototype.get=pz;Xt.prototype.has=fz;Xt.prototype.set=mz;var g1=Xt;function bz(){this.__data__=new lo,this.size=0}var hz=bz;function vz(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var wz=vz;function kz(e){return this.__data__.get(e)}var xz=kz;function Iz(e){return this.__data__.has(e)}var Cz=Iz,Az=200;function Sz(e,t){var r=this.__data__;if(r instanceof lo){var i=r.__data__;if(!zi||i.length<Az-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new g1(i)}return r.set(e,t),this.size=r.size,this}var Mz=Sz;function Bi(e){var t=this.__data__=new lo(e);this.size=t.size}Bi.prototype.clear=hz;Bi.prototype.delete=wz;Bi.prototype.get=xz;Bi.prototype.has=Cz;Bi.prototype.set=Mz;var jz=Object.prototype,ate=jz.propertyIsEnumerable,$z=Wt(oe,"DataView"),Sl=$z,_z=Wt(oe,"Promise"),Ml=_z,Ez=Wt(oe,"Set"),jl=Ez,Ag="[object Map]",Lz="[object Object]",Sg="[object Promise]",Mg="[object Set]",jg="[object WeakMap]",$g="[object DataView]",Tz=Be(Sl),Oz=Be(zi),Nz=Be(Ml),Dz=Be(jl),Pz=Be(Al),Gt=Vi;(Sl&&Gt(new Sl(new ArrayBuffer(1)))!=$g||zi&&Gt(new zi)!=Ag||Ml&&Gt(Ml.resolve())!=Sg||jl&&Gt(new jl)!=Mg||Al&&Gt(new Al)!=jg)&&(Gt=function(e){var t=Vi(e),r=t==Lz?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case Tz:return $g;case Oz:return Ag;case Nz:return Sg;case Dz:return Mg;case Pz:return jg}return t});var lte=oe.Uint8Array,zz="__lodash_hash_undefined__";function Uz(e){return this.__data__.set(e,zz),this}var Rz=Uz;function Fz(e){return this.__data__.has(e)}var Vz=Fz;function $l(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new g1;++t<r;)this.add(e[t])}$l.prototype.add=$l.prototype.push=Rz;$l.prototype.has=Vz;var _g=Zt?Zt.prototype:void 0,ste=_g?_g.valueOf:void 0,Bz=Object.prototype,ute=Bz.hasOwnProperty,qz=Object.prototype,cte=qz.hasOwnProperty,dte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function f1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function _l(e,t){let r=await f1(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 Gz(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 f1(i,t)}function Hz(e){return e!==void 0}var uo=Hz;function qi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gi(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}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)}var Rl=class y1{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 y1),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))}},m1=class b1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new b1),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 Yz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Zz({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 Qz=Zz,vl="ly.img.ai.temp";async function Wz(e,t){return e.engine.asset.findAllSources().includes(vl)||e.engine.asset.addLocalSource(vl),e.engine.asset.apply(vl,t)}function Kz(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 h1(){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 Xz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Fl(e){return e instanceof Error&&e.name==="AbortError"}function eU(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function tU(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!
395
395
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
396
396
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
397
- 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 rU(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),iU(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kz(e)}))}function iU(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var Tl=rU,nU="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Bl=nU;function oU(e,t,r){switch(t){case"image":return aU(e,r[t]);case"video":return lU(e,r[t]);case"sticker":return sU(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function aU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Bl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function lU(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Bl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function sU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Bl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var uU=oU;async function cU(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 dU(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 pU(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 gU(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 fU(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dU(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 pU(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 gU(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 fU(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 v1=cU;function yU(e){switch(e.userFlow){case"placeholder":return bU(e);case"generation-only":return mU(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function mU(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=h1(),c=await v1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function bU(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=h1(),c=uU(s,a,o);if(i=await Wz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await v1(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)&&(Vl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var hU=yU;function ql(e){return`${e}.generating`}function vU(e){return`${e}.abort`}function wU(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(vU(d),()=>{}),y=c.global(ql(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await hU({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Tl(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;kU(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(Vl(b))return;Tl(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function kU(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 w1=wU;function Ui(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function xU({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(ql(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return w1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var IU=xU;function k1(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 Oi(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=k1(e,t.$ref),n={...Oi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Oi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Oi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Oi(e,t[n],r));return i}return t}function CU(e){return Oi(e,{...e})}function AU(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 SU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return MU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function MU(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=jU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function jU(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 x1=SU;function I1(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 C1(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,provider:r,kind:o};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,provider:r,kind:o};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):A1(e,c,r,i,n,a,o,s);case"boolean":return S1(e,c,r,i,n,a,o,s);case"number":case"integer":return M1(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 _U(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=x1(t.schema??{},i).reduce((l,u)=>{let d=C1(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 A1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=Ae(r.id,o,d,"placeholder"),f=qi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Gi(d,h,f,t.schema.default,""),v=l(p,m),k=EU(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function $U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),{labels:y,icons:f}=I1(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Ae(r.id,o,d,x),icon:f[x]})),m=qi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gi(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function S1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=qi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gi(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function M1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=qi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Gi(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function _U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=I1(t.schema),I=qi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:A1,boolean:S1,integer:M1,object:Ol},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:Ae(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ol(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Gi(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function EU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var LU=C1,TU={"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 Eg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Lg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Eg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Eg(g);n[a(l.id,g)]=y}})}});let c={...TU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function Tg(e){return typeof e.document=="function"?e.document():e.document}function Og(e,t,r){let i=CU(e),n=k1(i,t.inputReference);if(!AU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=x1(a,t);return{inputSchema:a,properties:o}}function Ng(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=LU(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];w1(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function OU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Tg(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Og(c,s,a.debug);return Lg(y,i,r,i.kind),Ng(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Tg(s)).then(g=>{let{inputSchema:y,properties:f}=Og(g,s,a.debug);Lg(f,i,r,i.kind),u=Ng(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var NU=OU;async function DU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return IU(e,t);case"schema":return NU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var PU=DU;function zU(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 HN(o,r)),o}return i}var UU=zU;function RU(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 FU=RU,xl="@imgly/plugin-ai-generation",VU=`
397
+ 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 rU(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),iU(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kz(e)}))}function iU(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var El=rU,nU="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Vl=nU;function oU(e,t,r){switch(t){case"image":return aU(e,r[t]);case"video":return lU(e,r[t]);case"sticker":return sU(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function aU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Vl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function lU(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Vl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function sU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Vl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var uU=oU;async function cU(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 dU(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 pU(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 gU(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 fU(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dU(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 pU(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 gU(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 fU(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 v1=cU;function yU(e){switch(e.userFlow){case"placeholder":return bU(e);case"generation-only":return mU(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function mU(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=h1(),c=await v1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function bU(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=h1(),c=uU(s,a,o);if(i=await Wz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await v1(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)&&(Fl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var hU=yU;function Bl(e){return`${e}.generating`}function vU(e){return`${e}.abort`}function wU(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(vU(d),()=>{}),y=c.global(Bl(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await hU({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){El(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;kU(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(Fl(b))return;El(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function kU(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 w1=wU;function Ui(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function xU({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Bl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return w1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var IU=xU;function k1(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 Oi(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=k1(e,t.$ref),n={...Oi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Oi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Oi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Oi(e,t[n],r));return i}return t}function CU(e){return Oi(e,{...e})}function AU(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 SU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return MU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function MU(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=jU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function jU(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 x1=SU;function I1(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 C1(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,provider:r,kind:o};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,provider:r,kind:o};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):A1(e,c,r,i,n,a,o,s);case"boolean":return S1(e,c,r,i,n,a,o,s);case"number":case"integer":return M1(e,c,r,i,n,a,o,s);case"object":return Ll(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return _U(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ll(e,t,r,i,n,a,o,s){let c=x1(t.schema??{},i).reduce((l,u)=>{let d=C1(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 A1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=Ae(r.id,o,d,"placeholder"),f=qi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Gi(d,h,f,t.schema.default,""),v=l(p,m),k=EU(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function $U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),{labels:y,icons:f}=I1(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Ae(r.id,o,d,x),icon:f[x]})),m=qi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gi(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function S1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=qi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gi(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function M1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=qi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Gi(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function _U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=I1(t.schema),I=qi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:A1,boolean:S1,integer:M1,object:Ll},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:Ae(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ll(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Gi(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function EU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var LU=C1,TU={"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 Eg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Lg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Eg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Eg(g);n[a(l.id,g)]=y}})}});let c={...TU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function Tg(e){return typeof e.document=="function"?e.document():e.document}function Og(e,t,r){let i=CU(e),n=k1(i,t.inputReference);if(!AU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=x1(a,t);return{inputSchema:a,properties:o}}function Ng(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=LU(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];w1(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function OU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Tg(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Og(c,s,a.debug);return Lg(y,i,r,i.kind),Ng(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Tg(s)).then(g=>{let{inputSchema:y,properties:f}=Og(g,s,a.debug);Lg(f,i,r,i.kind),u=Ng(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var NU=OU;async function DU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return IU(e,t);case"schema":return NU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var PU=DU;function zU(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 HN(o,r)),o}return i}var UU=zU;function RU(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 FU=RU,wl="@imgly/plugin-ai-generation",VU=`
398
398
  <svg>
399
399
  <symbol
400
400
  fill="none"
@@ -412,7 +412,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
412
412
  fill="none"
413
413
  xmlns="http://www.w3.org/2000/svg"
414
414
  viewBox="0 0 24 24"
415
- id="${xl}/image"
415
+ id="${wl}/image"
416
416
  >
417
417
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
418
418
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -424,7 +424,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
424
424
  fill="none"
425
425
  xmlns="http://www.w3.org/2000/svg"
426
426
  viewBox="0 0 24 24"
427
- id="${xl}/video"
427
+ id="${wl}/video"
428
428
  >
429
429
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
430
430
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -435,7 +435,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
435
435
  fill="none"
436
436
  xmlns="http://www.w3.org/2000/svg"
437
437
  viewBox="0 0 24 24"
438
- id="${xl}/audio"
438
+ id="${wl}/audio"
439
439
  >
440
440
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
441
441
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -466,8 +466,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
466
466
 
467
467
  </symbol>
468
468
  </svg>
469
- `,BU=VU;function qU(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 j1(2e3),await GU(t,e,r)):i(t,r)}async function GU(e,t,r){switch(t.kind){case"image":return HU(e,t,r);case"video":return YU(e,t,r);case"text":return ZU(e,t,r);case"audio":return WU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function HU(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 Gz(s,r),l=await Ll(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(`
470
- `,"+")}`}}async function YU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function ZU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=_i(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=_i(n,o)}else"customPrompt"in e?a=_i(n,"custom"):a=_i(n,"improved");else a=_i(n,"generated");return QU(a,r.abortSignal)}async function*QU(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 j1(100)}return{kind:"text",text:e}}function _i(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function WU(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:KU(220,i),duration:i,thumbnailUrl:void 0}}function KU(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,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function j1(e){return new Promise(t=>{setTimeout(t,e)})}var XU=qU,$1="USER_CANCEL";function eR(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Yz([...e.provider.output.middleware??[],...r?.middlewares??[],Qz({enable:r?.debug}),XU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Xz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Vl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var tR=eR;async function rR(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Fl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=UU(a),s=FU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=tR({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await PU(a,c);eU(r.cesdk,"@imgly/plugin-ai-generation",BU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return m1.get().register(u),u}var Il=rR;function iR(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 YN(n,r,i);return r.engine.asset.addSource(a),a.id}var nR=iR;function uo(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 oR(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Il(e,u,r,i)));o.push(...l),a=lR({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Il(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Il(e,d,r,i)));o.push(...u),a=aR({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=nR({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 aR({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:uo(e,`${A}.label`),icon:f.value!==A&&sR(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:uo(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:uo(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function lR({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Ui(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:uo(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function sR(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ql(r.id),!1).value)}var uR=oR,yo="ly.img.ai.editMode",_1="ly.img.ai.metadata";async function cR(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 a1(n,_1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var dR=cR;function pR(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 gR=pR;function fR(e){return`ly.img.ai.${e}.canvasMenu`}var yR=fR;function mR(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Dg(e){let t=[];for(let r of e){let i=mR(r);i!=null&&t.push(i)}return t}function bR(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=yR(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)?Dg(o.children):n??[]}return Dg(i.children)}var hR=bR;function vR(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 wR(e,t);case"image":return kR(e,t);case"video":return xR(e,t);case"audio":return IR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function wR(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 kR(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await Ll(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await Ll(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function xR(e,t){throw new Error("Function not implemented.")}async function IR(e,t){throw new Error("Function not implemented.")}var CR=vR;function AR(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 SR=AR,MR=class E1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new E1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ve=MR;function jR(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 a1(e.cesdk.engine,_1),l=e.lock??!0?SR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ve.get().register(u,{onCancelGeneration:()=>{o.abort($1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await CR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ve.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),Tl(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Pg=jR;function $R(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=hR({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=_R(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))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,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=m1.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(fo);return M=gR(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Ui(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Ui($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Pg({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Pg({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function _R(e){return e.map(t=>t==="ly.img.separator"?t:Fl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var ER=$R;async function LR(e){let t=await ER({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await dR({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=>{Ve.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ve.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var TR=LR,fte=5*60*1e3,OR=typeof global=="object"&&global&&global.Object===Object&&global,L1=OR,NR=typeof self=="object"&&self&&self.Object===Object&&self,DR=L1||NR||Function("return this")(),ae=DR,PR=ae.Symbol,Qt=PR,T1=Object.prototype,zR=T1.hasOwnProperty,UR=T1.toString,Ei=Qt?Qt.toStringTag:void 0;function RR(e){var t=zR.call(e,Ei),r=e[Ei];try{e[Ei]=void 0;var i=!0}catch{}var n=UR.call(e);return i&&(t?e[Ei]=r:delete e[Ei]),n}var FR=RR,VR=Object.prototype,BR=VR.toString;function qR(e){return BR.call(e)}var GR=qR,HR="[object Null]",YR="[object Undefined]",zg=Qt?Qt.toStringTag:void 0;function ZR(e){return e==null?e===void 0?YR:HR:zg&&zg in Object(e)?FR(e):GR(e)}var Hi=ZR;function QR(e){return e!=null&&typeof e=="object"}var Gl=QR,yte=Array.isArray;function WR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var O1=WR,KR="[object AsyncFunction]",JR="[object Function]",XR="[object GeneratorFunction]",eF="[object Proxy]";function tF(e){if(!O1(e))return!1;var t=Hi(e);return t==JR||t==XR||t==KR||t==eF}var rF=tF,iF=ae["__core-js_shared__"],Cl=iF,Ug=function(){var e=/[^.]+$/.exec(Cl&&Cl.keys&&Cl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nF(e){return!!Ug&&Ug in e}var oF=nF,aF=Function.prototype,lF=aF.toString;function sF(e){if(e!=null){try{return lF.call(e)}catch{}try{return e+""}catch{}}return""}var qe=sF,uF=/[\\^$.*+?()[\]{}|]/g,cF=/^\[object .+?Constructor\]$/,dF=Function.prototype,pF=Object.prototype,gF=dF.toString,fF=pF.hasOwnProperty,yF=RegExp("^"+gF.call(fF).replace(uF,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mF(e){if(!O1(e)||oF(e))return!1;var t=rF(e)?yF:cF;return t.test(qe(e))}var bF=mF;function hF(e,t){return e?.[t]}var vF=hF;function wF(e,t){var r=vF(e,t);return bF(r)?r:void 0}var er=wF,kF=er(ae,"WeakMap"),Nl=kF;function xF(e,t){return e===t||e!==e&&t!==t}var IF=xF,CF=9007199254740991;function AF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=CF}var SF=AF,mte=Object.prototype,MF="[object Arguments]";function jF(e){return Gl(e)&&Hi(e)==MF}var Rg=jF,N1=Object.prototype,$F=N1.hasOwnProperty,_F=N1.propertyIsEnumerable,bte=Rg(function(){return arguments}())?Rg:function(e){return Gl(e)&&$F.call(e,"callee")&&!_F.call(e,"callee")},D1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fg=D1&&typeof module=="object"&&module&&!module.nodeType&&module,EF=Fg&&Fg.exports===D1,Vg=EF?ae.Buffer:void 0,hte=Vg?Vg.isBuffer:void 0,LF="[object Arguments]",TF="[object Array]",OF="[object Boolean]",NF="[object Date]",DF="[object Error]",PF="[object Function]",zF="[object Map]",UF="[object Number]",RF="[object Object]",FF="[object RegExp]",VF="[object Set]",BF="[object String]",qF="[object WeakMap]",GF="[object ArrayBuffer]",HF="[object DataView]",YF="[object Float32Array]",ZF="[object Float64Array]",QF="[object Int8Array]",WF="[object Int16Array]",KF="[object Int32Array]",JF="[object Uint8Array]",XF="[object Uint8ClampedArray]",eV="[object Uint16Array]",tV="[object Uint32Array]",V={};V[YF]=V[ZF]=V[QF]=V[WF]=V[KF]=V[JF]=V[XF]=V[eV]=V[tV]=!0;V[LF]=V[TF]=V[GF]=V[OF]=V[HF]=V[NF]=V[DF]=V[PF]=V[zF]=V[UF]=V[RF]=V[FF]=V[VF]=V[BF]=V[qF]=!1;function rV(e){return Gl(e)&&SF(e.length)&&!!V[Hi(e)]}var iV=rV;function nV(e){return function(t){return e(t)}}var oV=nV,P1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Di=P1&&typeof module=="object"&&module&&!module.nodeType&&module,aV=Di&&Di.exports===P1,Al=aV&&L1.process,lV=function(){try{var e=Di&&Di.require&&Di.require("util").types;return e||Al&&Al.binding&&Al.binding("util")}catch{}}(),Bg=lV,qg=Bg&&Bg.isTypedArray,vte=qg?oV(qg):iV,sV=Object.prototype,wte=sV.hasOwnProperty;function uV(e,t){return function(r){return e(t(r))}}var cV=uV,kte=cV(Object.keys,Object),dV=Object.prototype,xte=dV.hasOwnProperty,pV=er(Object,"create"),Ri=pV;function gV(){this.__data__=Ri?Ri(null):{},this.size=0}var fV=gV;function yV(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mV=yV,bV="__lodash_hash_undefined__",hV=Object.prototype,vV=hV.hasOwnProperty;function wV(e){var t=this.__data__;if(Ri){var r=t[e];return r===bV?void 0:r}return vV.call(t,e)?t[e]:void 0}var kV=wV,xV=Object.prototype,IV=xV.hasOwnProperty;function CV(e){var t=this.__data__;return Ri?t[e]!==void 0:IV.call(t,e)}var AV=CV,SV="__lodash_hash_undefined__";function MV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?SV:t,this}var jV=MV;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=fV;tr.prototype.delete=mV;tr.prototype.get=kV;tr.prototype.has=AV;tr.prototype.set=jV;var Gg=tr;function $V(){this.__data__=[],this.size=0}var _V=$V;function EV(e,t){for(var r=e.length;r--;)if(IF(e[r][0],t))return r;return-1}var mo=EV,LV=Array.prototype,TV=LV.splice;function OV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TV.call(t,r,1),--this.size,!0}var NV=OV;function DV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var PV=DV;function zV(e){return mo(this.__data__,e)>-1}var UV=zV;function RV(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 FV=RV;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=_V;rr.prototype.delete=NV;rr.prototype.get=PV;rr.prototype.has=UV;rr.prototype.set=FV;var bo=rr,VV=er(ae,"Map"),Fi=VV;function BV(){this.size=0,this.__data__={hash:new Gg,map:new(Fi||bo),string:new Gg}}var qV=BV;function GV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var HV=GV;function YV(e,t){var r=e.__data__;return HV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ho=YV;function ZV(e){var t=ho(this,e).delete(e);return this.size-=t?1:0,t}var QV=ZV;function WV(e){return ho(this,e).get(e)}var KV=WV;function JV(e){return ho(this,e).has(e)}var XV=JV;function eB(e,t){var r=ho(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var tB=eB;function ir(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ir.prototype.clear=qV;ir.prototype.delete=QV;ir.prototype.get=KV;ir.prototype.has=XV;ir.prototype.set=tB;var z1=ir;function rB(){this.__data__=new bo,this.size=0}var iB=rB;function nB(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var oB=nB;function aB(e){return this.__data__.get(e)}var lB=aB;function sB(e){return this.__data__.has(e)}var uB=sB,cB=200;function dB(e,t){var r=this.__data__;if(r instanceof bo){var i=r.__data__;if(!Fi||i.length<cB-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new z1(i)}return r.set(e,t),this.size=r.size,this}var pB=dB;function Yi(e){var t=this.__data__=new bo(e);this.size=t.size}Yi.prototype.clear=iB;Yi.prototype.delete=oB;Yi.prototype.get=lB;Yi.prototype.has=uB;Yi.prototype.set=pB;var gB=Object.prototype,Ite=gB.propertyIsEnumerable,fB=er(ae,"DataView"),Dl=fB,yB=er(ae,"Promise"),Pl=yB,mB=er(ae,"Set"),zl=mB,Hg="[object Map]",bB="[object Object]",Yg="[object Promise]",Zg="[object Set]",Qg="[object WeakMap]",Wg="[object DataView]",hB=qe(Dl),vB=qe(Fi),wB=qe(Pl),kB=qe(zl),xB=qe(Nl),Ht=Hi;(Dl&&Ht(new Dl(new ArrayBuffer(1)))!=Wg||Fi&&Ht(new Fi)!=Hg||Pl&&Ht(Pl.resolve())!=Yg||zl&&Ht(new zl)!=Zg||Nl&&Ht(new Nl)!=Qg)&&(Ht=function(e){var t=Hi(e),r=t==bB?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case hB:return Wg;case vB:return Hg;case wB:return Yg;case kB:return Zg;case xB:return Qg}return t});var Cte=ae.Uint8Array,IB="__lodash_hash_undefined__";function CB(e){return this.__data__.set(e,IB),this}var AB=CB;function SB(e){return this.__data__.has(e)}var MB=SB;function Ul(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new z1;++t<r;)this.add(e[t])}Ul.prototype.add=Ul.prototype.push=AB;Ul.prototype.has=MB;var Kg=Qt?Qt.prototype:void 0,Ate=Kg?Kg.valueOf:void 0,jB=Object.prototype,Ste=jB.hasOwnProperty,$B=Object.prototype,Mte=$B.hasOwnProperty,jte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$te=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_te=new RegExp(/[A-Fa-f0-9]{2}/,"g");function _B(e){return e==null?[]:Array.isArray(e)?e:[e]}var EB=_B;function LB(e){return`
469
+ `,BU=VU;function qU(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 j1(2e3),await GU(t,e,r)):i(t,r)}async function GU(e,t,r){switch(t.kind){case"image":return HU(e,t,r);case"video":return YU(e,t,r);case"text":return ZU(e,t,r);case"audio":return WU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function HU(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 Gz(s,r),l=await _l(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
470
+ `,"+")}`}}async function YU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function ZU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=_i(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=_i(n,o)}else"customPrompt"in e?a=_i(n,"custom"):a=_i(n,"improved");else a=_i(n,"generated");return QU(a,r.abortSignal)}async function*QU(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 j1(100)}return{kind:"text",text:e}}function _i(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function WU(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:KU(220,i),duration:i,thumbnailUrl:void 0}}function KU(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,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function j1(e){return new Promise(t=>{setTimeout(t,e)})}var XU=qU,$1="USER_CANCEL";function eR(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Yz([...e.provider.output.middleware??[],...r?.middlewares??[],Qz({enable:r?.debug}),XU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Xz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var tR=eR;async function rR(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Rl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=UU(a),s=FU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=tR({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await PU(a,c);eU(r.cesdk,"@imgly/plugin-ai-generation",BU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return m1.get().register(u),u}var kl=rR;function iR(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 YN(n,r,i);return r.engine.asset.addSource(a),a.id}var nR=iR;function Tl(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function oR(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.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>kl(e,u,r,i)));o.push(...l),a=lR({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=aR({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=nR({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(uo)}),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 aR({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Tl(e,`${A}.label`),icon:f.value!==A&&sR(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Tl(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function lR({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Ui(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Tl(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function sR(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Bl(r.id),!1).value)}var uR=oR,co="ly.img.ai.editMode",_1="ly.img.ai.metadata";async function cR(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 a1(n,_1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var dR=cR;function pR(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 gR=pR;function fR(e){return`ly.img.ai.${e}.canvasMenu`}var yR=fR;function mR(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Dg(e){let t=[];for(let r of e){let i=mR(r);i!=null&&t.push(i)}return t}function bR(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=yR(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)?Dg(o.children):n??[]}return Dg(i.children)}var hR=bR;function vR(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 wR(e,t);case"image":return kR(e,t);case"video":return xR(e,t);case"audio":return IR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function wR(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 kR(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await _l(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await _l(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function xR(e,t){throw new Error("Function not implemented.")}async function IR(e,t){throw new Error("Function not implemented.")}var CR=vR;function AR(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 SR=AR,MR=class E1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new E1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ve=MR;function jR(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(uo)),c=new a1(e.cesdk.engine,_1),l=e.lock??!0?SR({engine:e.cesdk.engine,editModeToLockTo:co,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ve.get().register(u,{onCancelGeneration:()=>{o.abort($1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await CR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ve.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),El(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Pg=jR;function $R(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()===co)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=hR({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=_R(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))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,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=m1.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(uo);return M=gR(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Ui(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Ui($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Pg({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Pg({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function _R(e){return e.map(t=>t==="ly.img.separator"?t:Rl.get().getBy({id:t,type:"quick"})[0]).filter(uo)}var ER=$R;async function LR(e){let t=await ER({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await dR({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===co){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ve.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var TR=LR,fte=5*60*1e3,OR=typeof global=="object"&&global&&global.Object===Object&&global,L1=OR,NR=typeof self=="object"&&self&&self.Object===Object&&self,DR=L1||NR||Function("return this")(),ae=DR,PR=ae.Symbol,Qt=PR,T1=Object.prototype,zR=T1.hasOwnProperty,UR=T1.toString,Ei=Qt?Qt.toStringTag:void 0;function RR(e){var t=zR.call(e,Ei),r=e[Ei];try{e[Ei]=void 0;var i=!0}catch{}var n=UR.call(e);return i&&(t?e[Ei]=r:delete e[Ei]),n}var FR=RR,VR=Object.prototype,BR=VR.toString;function qR(e){return BR.call(e)}var GR=qR,HR="[object Null]",YR="[object Undefined]",zg=Qt?Qt.toStringTag:void 0;function ZR(e){return e==null?e===void 0?YR:HR:zg&&zg in Object(e)?FR(e):GR(e)}var Hi=ZR;function QR(e){return e!=null&&typeof e=="object"}var ql=QR,yte=Array.isArray;function WR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var O1=WR,KR="[object AsyncFunction]",JR="[object Function]",XR="[object GeneratorFunction]",eF="[object Proxy]";function tF(e){if(!O1(e))return!1;var t=Hi(e);return t==JR||t==XR||t==KR||t==eF}var rF=tF,iF=ae["__core-js_shared__"],xl=iF,Ug=function(){var e=/[^.]+$/.exec(xl&&xl.keys&&xl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nF(e){return!!Ug&&Ug in e}var oF=nF,aF=Function.prototype,lF=aF.toString;function sF(e){if(e!=null){try{return lF.call(e)}catch{}try{return e+""}catch{}}return""}var qe=sF,uF=/[\\^$.*+?()[\]{}|]/g,cF=/^\[object .+?Constructor\]$/,dF=Function.prototype,pF=Object.prototype,gF=dF.toString,fF=pF.hasOwnProperty,yF=RegExp("^"+gF.call(fF).replace(uF,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mF(e){if(!O1(e)||oF(e))return!1;var t=rF(e)?yF:cF;return t.test(qe(e))}var bF=mF;function hF(e,t){return e?.[t]}var vF=hF;function wF(e,t){var r=vF(e,t);return bF(r)?r:void 0}var er=wF,kF=er(ae,"WeakMap"),Ol=kF;function xF(e,t){return e===t||e!==e&&t!==t}var IF=xF,CF=9007199254740991;function AF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=CF}var SF=AF,mte=Object.prototype,MF="[object Arguments]";function jF(e){return ql(e)&&Hi(e)==MF}var Rg=jF,N1=Object.prototype,$F=N1.hasOwnProperty,_F=N1.propertyIsEnumerable,bte=Rg(function(){return arguments}())?Rg:function(e){return ql(e)&&$F.call(e,"callee")&&!_F.call(e,"callee")},D1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fg=D1&&typeof module=="object"&&module&&!module.nodeType&&module,EF=Fg&&Fg.exports===D1,Vg=EF?ae.Buffer:void 0,hte=Vg?Vg.isBuffer:void 0,LF="[object Arguments]",TF="[object Array]",OF="[object Boolean]",NF="[object Date]",DF="[object Error]",PF="[object Function]",zF="[object Map]",UF="[object Number]",RF="[object Object]",FF="[object RegExp]",VF="[object Set]",BF="[object String]",qF="[object WeakMap]",GF="[object ArrayBuffer]",HF="[object DataView]",YF="[object Float32Array]",ZF="[object Float64Array]",QF="[object Int8Array]",WF="[object Int16Array]",KF="[object Int32Array]",JF="[object Uint8Array]",XF="[object Uint8ClampedArray]",eV="[object Uint16Array]",tV="[object Uint32Array]",V={};V[YF]=V[ZF]=V[QF]=V[WF]=V[KF]=V[JF]=V[XF]=V[eV]=V[tV]=!0;V[LF]=V[TF]=V[GF]=V[OF]=V[HF]=V[NF]=V[DF]=V[PF]=V[zF]=V[UF]=V[RF]=V[FF]=V[VF]=V[BF]=V[qF]=!1;function rV(e){return ql(e)&&SF(e.length)&&!!V[Hi(e)]}var iV=rV;function nV(e){return function(t){return e(t)}}var oV=nV,P1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Di=P1&&typeof module=="object"&&module&&!module.nodeType&&module,aV=Di&&Di.exports===P1,Il=aV&&L1.process,lV=function(){try{var e=Di&&Di.require&&Di.require("util").types;return e||Il&&Il.binding&&Il.binding("util")}catch{}}(),Bg=lV,qg=Bg&&Bg.isTypedArray,vte=qg?oV(qg):iV,sV=Object.prototype,wte=sV.hasOwnProperty;function uV(e,t){return function(r){return e(t(r))}}var cV=uV,kte=cV(Object.keys,Object),dV=Object.prototype,xte=dV.hasOwnProperty,pV=er(Object,"create"),Ri=pV;function gV(){this.__data__=Ri?Ri(null):{},this.size=0}var fV=gV;function yV(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mV=yV,bV="__lodash_hash_undefined__",hV=Object.prototype,vV=hV.hasOwnProperty;function wV(e){var t=this.__data__;if(Ri){var r=t[e];return r===bV?void 0:r}return vV.call(t,e)?t[e]:void 0}var kV=wV,xV=Object.prototype,IV=xV.hasOwnProperty;function CV(e){var t=this.__data__;return Ri?t[e]!==void 0:IV.call(t,e)}var AV=CV,SV="__lodash_hash_undefined__";function MV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?SV:t,this}var jV=MV;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=fV;tr.prototype.delete=mV;tr.prototype.get=kV;tr.prototype.has=AV;tr.prototype.set=jV;var Gg=tr;function $V(){this.__data__=[],this.size=0}var _V=$V;function EV(e,t){for(var r=e.length;r--;)if(IF(e[r][0],t))return r;return-1}var po=EV,LV=Array.prototype,TV=LV.splice;function OV(e){var t=this.__data__,r=po(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TV.call(t,r,1),--this.size,!0}var NV=OV;function DV(e){var t=this.__data__,r=po(t,e);return r<0?void 0:t[r][1]}var PV=DV;function zV(e){return po(this.__data__,e)>-1}var UV=zV;function RV(e,t){var r=this.__data__,i=po(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var FV=RV;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=_V;rr.prototype.delete=NV;rr.prototype.get=PV;rr.prototype.has=UV;rr.prototype.set=FV;var go=rr,VV=er(ae,"Map"),Fi=VV;function BV(){this.size=0,this.__data__={hash:new Gg,map:new(Fi||go),string:new Gg}}var qV=BV;function GV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var HV=GV;function YV(e,t){var r=e.__data__;return HV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var fo=YV;function ZV(e){var t=fo(this,e).delete(e);return this.size-=t?1:0,t}var QV=ZV;function WV(e){return fo(this,e).get(e)}var KV=WV;function JV(e){return fo(this,e).has(e)}var XV=JV;function eB(e,t){var r=fo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var tB=eB;function ir(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ir.prototype.clear=qV;ir.prototype.delete=QV;ir.prototype.get=KV;ir.prototype.has=XV;ir.prototype.set=tB;var z1=ir;function rB(){this.__data__=new go,this.size=0}var iB=rB;function nB(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var oB=nB;function aB(e){return this.__data__.get(e)}var lB=aB;function sB(e){return this.__data__.has(e)}var uB=sB,cB=200;function dB(e,t){var r=this.__data__;if(r instanceof go){var i=r.__data__;if(!Fi||i.length<cB-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new z1(i)}return r.set(e,t),this.size=r.size,this}var pB=dB;function Yi(e){var t=this.__data__=new go(e);this.size=t.size}Yi.prototype.clear=iB;Yi.prototype.delete=oB;Yi.prototype.get=lB;Yi.prototype.has=uB;Yi.prototype.set=pB;var gB=Object.prototype,Ite=gB.propertyIsEnumerable,fB=er(ae,"DataView"),Nl=fB,yB=er(ae,"Promise"),Dl=yB,mB=er(ae,"Set"),Pl=mB,Hg="[object Map]",bB="[object Object]",Yg="[object Promise]",Zg="[object Set]",Qg="[object WeakMap]",Wg="[object DataView]",hB=qe(Nl),vB=qe(Fi),wB=qe(Dl),kB=qe(Pl),xB=qe(Ol),Ht=Hi;(Nl&&Ht(new Nl(new ArrayBuffer(1)))!=Wg||Fi&&Ht(new Fi)!=Hg||Dl&&Ht(Dl.resolve())!=Yg||Pl&&Ht(new Pl)!=Zg||Ol&&Ht(new Ol)!=Qg)&&(Ht=function(e){var t=Hi(e),r=t==bB?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case hB:return Wg;case vB:return Hg;case wB:return Yg;case kB:return Zg;case xB:return Qg}return t});var Cte=ae.Uint8Array,IB="__lodash_hash_undefined__";function CB(e){return this.__data__.set(e,IB),this}var AB=CB;function SB(e){return this.__data__.has(e)}var MB=SB;function zl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new z1;++t<r;)this.add(e[t])}zl.prototype.add=zl.prototype.push=AB;zl.prototype.has=MB;var Kg=Qt?Qt.prototype:void 0,Ate=Kg?Kg.valueOf:void 0,jB=Object.prototype,Ste=jB.hasOwnProperty,$B=Object.prototype,Mte=$B.hasOwnProperty,jte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$te=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_te=new RegExp(/[A-Fa-f0-9]{2}/,"g");function _B(e){return e==null?[]:Array.isArray(e)?e:[e]}var EB=_B;function LB(e){return`
471
471
  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.
472
472
 
473
473
  Here is the original text you will be working with:
@@ -491,7 +491,7 @@ Please follow these steps to improve the text:
491
491
  7. If you cannot make any meaningful improvements, return the original text as is.
492
492
 
493
493
  Once you have made the improvements, only return the improved text and nothing else.
494
- `}var TB=LB,vo="improve",Jg=`ly.img.${vo}`,OB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,NB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function DB(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 PB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${NB}`]:"Improve Writing"}}),{id:Jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${OB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Jg}.button`,{label:DB(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:TB(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"})}}})}}),zB=PB;function UB(e){return`
494
+ `}var TB=LB,yo="improve",Jg=`ly.img.${yo}`,OB=`ly.img.plugin-ai-text-generation-web.quickAction.${yo}`,NB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${yo}`;function DB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${yo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var PB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${NB}`]:"Improve Writing"}}),{id:Jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${OB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Jg}.button`,{label:DB(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:TB(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"})}}})}}),zB=PB;function UB(e){return`
495
495
  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:
496
496
 
497
497
  <original_text>
@@ -521,7 +521,7 @@ Please follow these steps to complete the task:
521
521
  After making the necessary corrections, please provide only the improved output and nothing else.
522
522
 
523
523
  Remember to preserve the original structure and formatting of the text as much as possible while making your corrections.
524
- `}var RB=UB,wo="fix",Xg=`ly.img.${wo}`,FB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,VB=`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 qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${VB}`]:"Fix Spelling & Grammar"}}),{id:Xg,type:"quick",kind:"text",scopes:["text/edit"],label:`${FB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Xg}.button`,{label: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:RB(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"})}}})}}),GB=qB;function HB(e){return`
524
+ `}var RB=UB,mo="fix",Xg=`ly.img.${mo}`,FB=`ly.img.plugin-ai-text-generation-web.quickAction.${mo}`,VB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${mo}`;function BB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${mo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${VB}`]:"Fix Spelling & Grammar"}}),{id:Xg,type:"quick",kind:"text",scopes:["text/edit"],label:`${FB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Xg}.button`,{label: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:RB(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"})}}})}}),GB=qB;function HB(e){return`
525
525
  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.
526
526
 
527
527
  Here is the original text:
@@ -552,7 +552,7 @@ To complete this task, follow these steps:
552
552
  6. Once you've finished shortening, review the text to ensure it still reads smoothly and retains the essence of the original.
553
553
 
554
554
  Provide only the shortened version of the text in your response, without any additional comments, tags or explanations.
555
- `}var YB=HB,ko="shorter",e1=`ly.img.${ko}`,ZB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,QB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function WB(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 KB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${QB}`]:"Make Shorter"}}),{id:e1,type:"quick",kind:"text",scopes:["text/edit"],label:`${ZB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${e1}.button`,{label:WB(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:YB(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"})}}})}}),JB=KB;function XB(e){return`
555
+ `}var YB=HB,bo="shorter",e1=`ly.img.${bo}`,ZB=`ly.img.plugin-ai-text-generation-web.quickAction.${bo}`,QB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${bo}`;function WB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${bo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var KB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${QB}`]:"Make Shorter"}}),{id:e1,type:"quick",kind:"text",scopes:["text/edit"],label:`${ZB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${e1}.button`,{label:WB(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:YB(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"})}}})}}),JB=KB;function XB(e){return`
556
556
  You are tasked with expanding a given text to make it longer. Here's how to proceed:
557
557
 
558
558
  First, you will be provided with the original text:
@@ -586,7 +586,7 @@ Only return the longer text and nothing else.
586
586
  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.
587
587
 
588
588
  Do not add the original text or the original_text tags to the response.
589
- `}var eq=XB,xo="longer",t1=`ly.img.${xo}`,tq=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,rq=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function iq(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 nq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${rq}`]:"Make Longer"}}),{id:t1,type:"quick",kind:"text",scopes:["text/edit"],label:`${tq}`,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(`${t1}.button`,{label:iq(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:eq(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"})}}})}}),oq=nq;function aq(e,t){return`
589
+ `}var eq=XB,ho="longer",t1=`ly.img.${ho}`,tq=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,rq=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function iq(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ho}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var nq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${rq}`]:"Make Longer"}}),{id:t1,type:"quick",kind:"text",scopes:["text/edit"],label:`${tq}`,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(`${t1}.button`,{label:iq(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:eq(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"})}}})}}),oq=nq;function aq(e,t){return`
590
590
  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:
591
591
 
592
592
  First, you will be provided with the original text:
@@ -608,7 +608,7 @@ To change the tone of the text:
608
608
  6. Only return the rewritten text without any additional commentary, tags or explanation.
609
609
 
610
610
  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.
611
- `}var lq=aq,Io="changeTone",Li=`ly.img.${Io}`,sq=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Fe=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function r1(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 uq=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],cq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Fe}`]:"Change Tone",[`${Fe}.professional`]:"Professional",[`${Fe}.casual`]:"Casual",[`${Fe}.friendly`]:"Friendly",[`${Fe}.serious`]:"Serious",[`${Fe}.humorous`]:"Humorous",[`${Fe}.optimistic`]:"Optimistic"}}),{id:Li,type:"quick",kind:"text",scopes:["text/edit"],label:`${sq}`,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(`${Li}.popover`,{label:r1(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Li}.popover.section`,{children:()=>{a.builder.Menu(`${Li}.popover.menu`,{children:()=>{uq.forEach(s=>{t.Button(`${Li}.popover.menu.${s.id}`,{label:r1(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:lq(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"})}}})})}})}})}})}}),dq=cq,U1={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"},pq=Object.keys(U1);function gq(e,t){let r=U1[t]||t;return`
611
+ `}var lq=aq,vo="changeTone",Li=`ly.img.${vo}`,sq=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,Fe=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function r1(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 uq=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],cq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Fe}`]:"Change Tone",[`${Fe}.professional`]:"Professional",[`${Fe}.casual`]:"Casual",[`${Fe}.friendly`]:"Friendly",[`${Fe}.serious`]:"Serious",[`${Fe}.humorous`]:"Humorous",[`${Fe}.optimistic`]:"Optimistic"}}),{id:Li,type:"quick",kind:"text",scopes:["text/edit"],label:`${sq}`,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(`${Li}.popover`,{label:r1(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Li}.popover.section`,{children:()=>{a.builder.Menu(`${Li}.popover.menu`,{children:()=>{uq.forEach(s=>{t.Button(`${Li}.popover.menu.${s.id}`,{label:r1(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:lq(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"})}}})})}})}})}})}}),dq=cq,U1={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"},pq=Object.keys(U1);function gq(e,t){let r=U1[t]||t;return`
612
612
  You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
613
613
 
614
614
  1. Here is the source text to be translated:
@@ -624,7 +624,7 @@ ${r}
624
624
  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.
625
625
 
626
626
  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.
627
- `}var fq=gq,Co="translate",Ti=`ly.img.${Co}`,yq=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function i1(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 mq=pq.map(e=>({id:e})),bq=({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:Ti,type:"quick",kind:"text",scopes:["text/edit"],label:`${yq}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ti}.popover`,{label:i1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ti}.popover.section`,{children:()=>{a.builder.Menu(`${Ti}.popover.menu`,{children:()=>{mq.forEach(s=>{t.Button(`${Ti}.popover.menu.${s.id}`,{label:i1(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:fq(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"})}}})})}})}})}})}}),hq=bq;function vq(e,t){return`
627
+ `}var fq=gq,wo="translate",Ti=`ly.img.${wo}`,yq=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function i1(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 mq=pq.map(e=>({id:e})),bq=({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:Ti,type:"quick",kind:"text",scopes:["text/edit"],label:`${yq}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ti}.popover`,{label:i1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ti}.popover.section`,{children:()=>{a.builder.Menu(`${Ti}.popover.menu`,{children:()=>{mq.forEach(s=>{t.Button(`${Ti}.popover.menu.${s.id}`,{label:i1(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:fq(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"})}}})})}})}})}})}}),hq=bq;function vq(e,t){return`
628
628
  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.
629
629
 
630
630
  Here is the original text:
@@ -638,10 +638,10 @@ ${t}
638
638
  </change_text_to>
639
639
 
640
640
  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.
641
- `}var wq=vq,Ao="changeTextTo",Ie=`ly.img.${Ao}`,n1=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,o1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function Sl(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 kq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${o1}`]:"Change Text to...",[`${o1}.prompt`]:"Change Text to...",[`${n1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${n1}`,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.PromptInput(`${Ie}.prompt`,{inputLabel:Sl(l,"prompt"),placeholder:Sl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:wq(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Sl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),xq=kq,R1="@imgly/plugin-ai-text-generation-web",Iq=["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 Cq(e){return{async initialize({cesdk:t}){if(t==null)return;tU(t,R1,"1.83.0-nightly.20260917"),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,qN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),Aq(e);let r=Fl.get();r.register(zB({cesdk:t})),r.register(GB({cesdk:t})),r.register(JB({cesdk:t})),r.register(oq({cesdk:t})),r.register(dq({cesdk:t})),r.register(hq({cesdk:t})),r.register(xq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(EB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await uR("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await TR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Iq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function Aq(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 Sq=Cq,Mq=e=>({name:R1,version:"1.83.0-nightly.20260917",...Sq(e)}),F1=Mq;function jq(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var je=jq,$q=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ar(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=()=>{ar(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 ar(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ar(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 ar(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]=ar(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]=ar(n,t,a)}return e}var _q=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Eq=typeof global=="object"&&global&&global.Object===Object&&global,If=Eq,Lq=typeof self=="object"&&self&&self.Object===Object&&self,Tq=If||Lq||Function("return this")(),le=Tq,Oq=le.Symbol,lr=Oq,Cf=Object.prototype,Nq=Cf.hasOwnProperty,Dq=Cf.toString,Zi=lr?lr.toStringTag:void 0;function Pq(e){var t=Nq.call(e,Zi),r=e[Zi];try{e[Zi]=void 0;var i=!0}catch{}var n=Dq.call(e);return i&&(t?e[Zi]=r:delete e[Zi]),n}var zq=Pq,Uq=Object.prototype,Rq=Uq.toString;function Fq(e){return Rq.call(e)}var Vq=Fq,Bq="[object Null]",qq="[object Undefined]",V1=lr?lr.toStringTag:void 0;function Gq(e){return e==null?e===void 0?qq:Bq:V1&&V1 in Object(e)?zq(e):Vq(e)}var an=Gq;function Hq(e){return e!=null&&typeof e=="object"}var ds=Hq,Nte=Array.isArray;function Yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Af=Yq,Zq="[object AsyncFunction]",Qq="[object Function]",Wq="[object GeneratorFunction]",Kq="[object Proxy]";function Jq(e){if(!Af(e))return!1;var t=an(e);return t==Qq||t==Wq||t==Zq||t==Kq}var Xq=Jq,eG=le["__core-js_shared__"],Hl=eG,B1=function(){var e=/[^.]+$/.exec(Hl&&Hl.keys&&Hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tG(e){return!!B1&&B1 in e}var rG=tG,iG=Function.prototype,nG=iG.toString;function oG(e){if(e!=null){try{return nG.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oG,aG=/[\\^$.*+?()[\]{}|]/g,lG=/^\[object .+?Constructor\]$/,sG=Function.prototype,uG=Object.prototype,cG=sG.toString,dG=uG.hasOwnProperty,pG=RegExp("^"+cG.call(dG).replace(aG,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gG(e){if(!Af(e)||rG(e))return!1;var t=Xq(e)?pG:lG;return t.test(Ge(e))}var fG=gG;function yG(e,t){return e?.[t]}var mG=yG;function bG(e,t){var r=mG(e,t);return fG(r)?r:void 0}var ur=bG,hG=ur(le,"WeakMap"),Xl=hG;function vG(e,t){return e===t||e!==e&&t!==t}var wG=vG,kG=9007199254740991;function xG(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kG}var IG=xG,Dte=Object.prototype,CG="[object Arguments]";function AG(e){return ds(e)&&an(e)==CG}var q1=AG,Sf=Object.prototype,SG=Sf.hasOwnProperty,MG=Sf.propertyIsEnumerable,Pte=q1(function(){return arguments}())?q1:function(e){return ds(e)&&SG.call(e,"callee")&&!MG.call(e,"callee")},Mf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G1=Mf&&typeof module=="object"&&module&&!module.nodeType&&module,jG=G1&&G1.exports===Mf,H1=jG?le.Buffer:void 0,zte=H1?H1.isBuffer:void 0,$G="[object Arguments]",_G="[object Array]",EG="[object Boolean]",LG="[object Date]",TG="[object Error]",OG="[object Function]",NG="[object Map]",DG="[object Number]",PG="[object Object]",zG="[object RegExp]",UG="[object Set]",RG="[object String]",FG="[object WeakMap]",VG="[object ArrayBuffer]",BG="[object DataView]",qG="[object Float32Array]",GG="[object Float64Array]",HG="[object Int8Array]",YG="[object Int16Array]",ZG="[object Int32Array]",QG="[object Uint8Array]",WG="[object Uint8ClampedArray]",KG="[object Uint16Array]",JG="[object Uint32Array]",B={};B[qG]=B[GG]=B[HG]=B[YG]=B[ZG]=B[QG]=B[WG]=B[KG]=B[JG]=!0;B[$G]=B[_G]=B[VG]=B[EG]=B[BG]=B[LG]=B[TG]=B[OG]=B[NG]=B[DG]=B[PG]=B[zG]=B[UG]=B[RG]=B[FG]=!1;function XG(e){return ds(e)&&IG(e.length)&&!!B[an(e)]}var eH=XG;function tH(e){return function(t){return e(t)}}var rH=tH,jf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=jf&&typeof module=="object"&&module&&!module.nodeType&&module,iH=Xi&&Xi.exports===jf,Yl=iH&&If.process,nH=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Y1=nH,Z1=Y1&&Y1.isTypedArray,Ute=Z1?rH(Z1):eH,oH=Object.prototype,Rte=oH.hasOwnProperty;function aH(e,t){return function(r){return e(t(r))}}var lH=aH,Fte=lH(Object.keys,Object),sH=Object.prototype,Vte=sH.hasOwnProperty,uH=ur(Object,"create"),tn=uH;function cH(){this.__data__=tn?tn(null):{},this.size=0}var dH=cH;function pH(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gH=pH,fH="__lodash_hash_undefined__",yH=Object.prototype,mH=yH.hasOwnProperty;function bH(e){var t=this.__data__;if(tn){var r=t[e];return r===fH?void 0:r}return mH.call(t,e)?t[e]:void 0}var hH=bH,vH=Object.prototype,wH=vH.hasOwnProperty;function kH(e){var t=this.__data__;return tn?t[e]!==void 0:wH.call(t,e)}var xH=kH,IH="__lodash_hash_undefined__";function CH(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?IH:t,this}var AH=CH;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=dH;cr.prototype.delete=gH;cr.prototype.get=hH;cr.prototype.has=xH;cr.prototype.set=AH;var Q1=cr;function SH(){this.__data__=[],this.size=0}var MH=SH;function jH(e,t){for(var r=e.length;r--;)if(wG(e[r][0],t))return r;return-1}var Mo=jH,$H=Array.prototype,_H=$H.splice;function EH(e){var t=this.__data__,r=Mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_H.call(t,r,1),--this.size,!0}var LH=EH;function TH(e){var t=this.__data__,r=Mo(t,e);return r<0?void 0:t[r][1]}var OH=TH;function NH(e){return Mo(this.__data__,e)>-1}var DH=NH;function PH(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 zH=PH;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=MH;dr.prototype.delete=LH;dr.prototype.get=OH;dr.prototype.has=DH;dr.prototype.set=zH;var jo=dr,UH=ur(le,"Map"),rn=UH;function RH(){this.size=0,this.__data__={hash:new Q1,map:new(rn||jo),string:new Q1}}var FH=RH;function VH(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BH=VH;function qH(e,t){var r=e.__data__;return BH(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=qH;function GH(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var HH=GH;function YH(e){return $o(this,e).get(e)}var ZH=YH;function QH(e){return $o(this,e).has(e)}var WH=QH;function KH(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JH=KH;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=FH;pr.prototype.delete=HH;pr.prototype.get=ZH;pr.prototype.has=WH;pr.prototype.set=JH;var $f=pr;function XH(){this.__data__=new jo,this.size=0}var eY=XH;function tY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rY=tY;function iY(e){return this.__data__.get(e)}var nY=iY;function oY(e){return this.__data__.has(e)}var aY=oY,lY=200;function sY(e,t){var r=this.__data__;if(r instanceof jo){var i=r.__data__;if(!rn||i.length<lY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $f(i)}return r.set(e,t),this.size=r.size,this}var uY=sY;function ln(e){var t=this.__data__=new jo(e);this.size=t.size}ln.prototype.clear=eY;ln.prototype.delete=rY;ln.prototype.get=nY;ln.prototype.has=aY;ln.prototype.set=uY;var cY=Object.prototype,Bte=cY.propertyIsEnumerable,dY=ur(le,"DataView"),es=dY,pY=ur(le,"Promise"),ts=pY,gY=ur(le,"Set"),rs=gY,W1="[object Map]",fY="[object Object]",K1="[object Promise]",J1="[object Set]",X1="[object WeakMap]",ef="[object DataView]",yY=Ge(es),mY=Ge(rn),bY=Ge(ts),hY=Ge(rs),vY=Ge(Xl),nr=an;(es&&nr(new es(new ArrayBuffer(1)))!=ef||rn&&nr(new rn)!=W1||ts&&nr(ts.resolve())!=K1||rs&&nr(new rs)!=J1||Xl&&nr(new Xl)!=X1)&&(nr=function(e){var t=an(e),r=t==fY?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yY:return ef;case mY:return W1;case bY:return K1;case hY:return J1;case vY:return X1}return t});var qte=le.Uint8Array,wY="__lodash_hash_undefined__";function kY(e){return this.__data__.set(e,wY),this}var xY=kY;function IY(e){return this.__data__.has(e)}var CY=IY;function is(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $f;++t<r;)this.add(e[t])}is.prototype.add=is.prototype.push=xY;is.prototype.has=CY;var tf=lr?lr.prototype:void 0,Gte=tf?tf.valueOf:void 0,AY=Object.prototype,Hte=AY.hasOwnProperty,SY=Object.prototype,Yte=SY.hasOwnProperty,Zte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Qte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Wte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function _f(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 MY(e,t){let r=await _f(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 jY(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 _f(i,t)}function $Y(e){return e!==void 0}var _Y=$Y;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ps(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 Ef=class Lf{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 Lf),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))}},EY=class Tf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tf),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 LY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function TY({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 OY=TY,Zl="ly.img.ai.temp";async function NY(e,t){return e.engine.asset.findAllSources().includes(Zl)||e.engine.asset.addLocalSource(Zl),e.engine.asset.apply(Zl,t)}function DY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function PY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gs(e){return e instanceof Error&&e.name==="AbortError"}function UY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function RY(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!
641
+ `}var wq=vq,ko="changeTextTo",Ie=`ly.img.${ko}`,n1=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,o1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function Cl(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 kq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${o1}`]:"Change Text to...",[`${o1}.prompt`]:"Change Text to...",[`${n1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${n1}`,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.PromptInput(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:wq(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),xq=kq,R1="@imgly/plugin-ai-text-generation-web",Iq=["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 Cq(e){return{async initialize({cesdk:t}){if(t==null)return;tU(t,R1,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(VN,qN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),Aq(e);let r=Rl.get();r.register(zB({cesdk:t})),r.register(GB({cesdk:t})),r.register(JB({cesdk:t})),r.register(oq({cesdk:t})),r.register(dq({cesdk:t})),r.register(hq({cesdk:t})),r.register(xq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(EB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await uR("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await TR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Iq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:co}))}}}function Aq(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 Sq=Cq,Mq=e=>({name:R1,version:"1.83.0-rc.0",...Sq(e)}),F1=Mq;function jq(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.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}var je=jq,$q=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ar(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=()=>{ar(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 ar(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ar(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 ar(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]=ar(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]=ar(n,t,a)}return e}var _q=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Eq=typeof global=="object"&&global&&global.Object===Object&&global,If=Eq,Lq=typeof self=="object"&&self&&self.Object===Object&&self,Tq=If||Lq||Function("return this")(),le=Tq,Oq=le.Symbol,lr=Oq,Cf=Object.prototype,Nq=Cf.hasOwnProperty,Dq=Cf.toString,Zi=lr?lr.toStringTag:void 0;function Pq(e){var t=Nq.call(e,Zi),r=e[Zi];try{e[Zi]=void 0;var i=!0}catch{}var n=Dq.call(e);return i&&(t?e[Zi]=r:delete e[Zi]),n}var zq=Pq,Uq=Object.prototype,Rq=Uq.toString;function Fq(e){return Rq.call(e)}var Vq=Fq,Bq="[object Null]",qq="[object Undefined]",V1=lr?lr.toStringTag:void 0;function Gq(e){return e==null?e===void 0?qq:Bq:V1&&V1 in Object(e)?zq(e):Vq(e)}var an=Gq;function Hq(e){return e!=null&&typeof e=="object"}var ds=Hq,Nte=Array.isArray;function Yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Af=Yq,Zq="[object AsyncFunction]",Qq="[object Function]",Wq="[object GeneratorFunction]",Kq="[object Proxy]";function Jq(e){if(!Af(e))return!1;var t=an(e);return t==Qq||t==Wq||t==Zq||t==Kq}var Xq=Jq,eG=le["__core-js_shared__"],Gl=eG,B1=function(){var e=/[^.]+$/.exec(Gl&&Gl.keys&&Gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tG(e){return!!B1&&B1 in e}var rG=tG,iG=Function.prototype,nG=iG.toString;function oG(e){if(e!=null){try{return nG.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oG,aG=/[\\^$.*+?()[\]{}|]/g,lG=/^\[object .+?Constructor\]$/,sG=Function.prototype,uG=Object.prototype,cG=sG.toString,dG=uG.hasOwnProperty,pG=RegExp("^"+cG.call(dG).replace(aG,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gG(e){if(!Af(e)||rG(e))return!1;var t=Xq(e)?pG:lG;return t.test(Ge(e))}var fG=gG;function yG(e,t){return e?.[t]}var mG=yG;function bG(e,t){var r=mG(e,t);return fG(r)?r:void 0}var ur=bG,hG=ur(le,"WeakMap"),Jl=hG;function vG(e,t){return e===t||e!==e&&t!==t}var wG=vG,kG=9007199254740991;function xG(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kG}var IG=xG,Dte=Object.prototype,CG="[object Arguments]";function AG(e){return ds(e)&&an(e)==CG}var q1=AG,Sf=Object.prototype,SG=Sf.hasOwnProperty,MG=Sf.propertyIsEnumerable,Pte=q1(function(){return arguments}())?q1:function(e){return ds(e)&&SG.call(e,"callee")&&!MG.call(e,"callee")},Mf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G1=Mf&&typeof module=="object"&&module&&!module.nodeType&&module,jG=G1&&G1.exports===Mf,H1=jG?le.Buffer:void 0,zte=H1?H1.isBuffer:void 0,$G="[object Arguments]",_G="[object Array]",EG="[object Boolean]",LG="[object Date]",TG="[object Error]",OG="[object Function]",NG="[object Map]",DG="[object Number]",PG="[object Object]",zG="[object RegExp]",UG="[object Set]",RG="[object String]",FG="[object WeakMap]",VG="[object ArrayBuffer]",BG="[object DataView]",qG="[object Float32Array]",GG="[object Float64Array]",HG="[object Int8Array]",YG="[object Int16Array]",ZG="[object Int32Array]",QG="[object Uint8Array]",WG="[object Uint8ClampedArray]",KG="[object Uint16Array]",JG="[object Uint32Array]",B={};B[qG]=B[GG]=B[HG]=B[YG]=B[ZG]=B[QG]=B[WG]=B[KG]=B[JG]=!0;B[$G]=B[_G]=B[VG]=B[EG]=B[BG]=B[LG]=B[TG]=B[OG]=B[NG]=B[DG]=B[PG]=B[zG]=B[UG]=B[RG]=B[FG]=!1;function XG(e){return ds(e)&&IG(e.length)&&!!B[an(e)]}var eH=XG;function tH(e){return function(t){return e(t)}}var rH=tH,jf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=jf&&typeof module=="object"&&module&&!module.nodeType&&module,iH=Xi&&Xi.exports===jf,Hl=iH&&If.process,nH=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Hl&&Hl.binding&&Hl.binding("util")}catch{}}(),Y1=nH,Z1=Y1&&Y1.isTypedArray,Ute=Z1?rH(Z1):eH,oH=Object.prototype,Rte=oH.hasOwnProperty;function aH(e,t){return function(r){return e(t(r))}}var lH=aH,Fte=lH(Object.keys,Object),sH=Object.prototype,Vte=sH.hasOwnProperty,uH=ur(Object,"create"),tn=uH;function cH(){this.__data__=tn?tn(null):{},this.size=0}var dH=cH;function pH(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gH=pH,fH="__lodash_hash_undefined__",yH=Object.prototype,mH=yH.hasOwnProperty;function bH(e){var t=this.__data__;if(tn){var r=t[e];return r===fH?void 0:r}return mH.call(t,e)?t[e]:void 0}var hH=bH,vH=Object.prototype,wH=vH.hasOwnProperty;function kH(e){var t=this.__data__;return tn?t[e]!==void 0:wH.call(t,e)}var xH=kH,IH="__lodash_hash_undefined__";function CH(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?IH:t,this}var AH=CH;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=dH;cr.prototype.delete=gH;cr.prototype.get=hH;cr.prototype.has=xH;cr.prototype.set=AH;var Q1=cr;function SH(){this.__data__=[],this.size=0}var MH=SH;function jH(e,t){for(var r=e.length;r--;)if(wG(e[r][0],t))return r;return-1}var xo=jH,$H=Array.prototype,_H=$H.splice;function EH(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_H.call(t,r,1),--this.size,!0}var LH=EH;function TH(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var OH=TH;function NH(e){return xo(this.__data__,e)>-1}var DH=NH;function PH(e,t){var r=this.__data__,i=xo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zH=PH;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=MH;dr.prototype.delete=LH;dr.prototype.get=OH;dr.prototype.has=DH;dr.prototype.set=zH;var Io=dr,UH=ur(le,"Map"),rn=UH;function RH(){this.size=0,this.__data__={hash:new Q1,map:new(rn||Io),string:new Q1}}var FH=RH;function VH(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BH=VH;function qH(e,t){var r=e.__data__;return BH(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Co=qH;function GH(e){var t=Co(this,e).delete(e);return this.size-=t?1:0,t}var HH=GH;function YH(e){return Co(this,e).get(e)}var ZH=YH;function QH(e){return Co(this,e).has(e)}var WH=QH;function KH(e,t){var r=Co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JH=KH;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=FH;pr.prototype.delete=HH;pr.prototype.get=ZH;pr.prototype.has=WH;pr.prototype.set=JH;var $f=pr;function XH(){this.__data__=new Io,this.size=0}var eY=XH;function tY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rY=tY;function iY(e){return this.__data__.get(e)}var nY=iY;function oY(e){return this.__data__.has(e)}var aY=oY,lY=200;function sY(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!rn||i.length<lY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $f(i)}return r.set(e,t),this.size=r.size,this}var uY=sY;function ln(e){var t=this.__data__=new Io(e);this.size=t.size}ln.prototype.clear=eY;ln.prototype.delete=rY;ln.prototype.get=nY;ln.prototype.has=aY;ln.prototype.set=uY;var cY=Object.prototype,Bte=cY.propertyIsEnumerable,dY=ur(le,"DataView"),Xl=dY,pY=ur(le,"Promise"),es=pY,gY=ur(le,"Set"),ts=gY,W1="[object Map]",fY="[object Object]",K1="[object Promise]",J1="[object Set]",X1="[object WeakMap]",ef="[object DataView]",yY=Ge(Xl),mY=Ge(rn),bY=Ge(es),hY=Ge(ts),vY=Ge(Jl),nr=an;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=ef||rn&&nr(new rn)!=W1||es&&nr(es.resolve())!=K1||ts&&nr(new ts)!=J1||Jl&&nr(new Jl)!=X1)&&(nr=function(e){var t=an(e),r=t==fY?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yY:return ef;case mY:return W1;case bY:return K1;case hY:return J1;case vY:return X1}return t});var qte=le.Uint8Array,wY="__lodash_hash_undefined__";function kY(e){return this.__data__.set(e,wY),this}var xY=kY;function IY(e){return this.__data__.has(e)}var CY=IY;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $f;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=xY;rs.prototype.has=CY;var tf=lr?lr.prototype:void 0,Gte=tf?tf.valueOf:void 0,AY=Object.prototype,Hte=AY.hasOwnProperty,SY=Object.prototype,Yte=SY.hasOwnProperty,Zte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Qte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Wte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function _f(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 MY(e,t){let r=await _f(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 jY(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 _f(i,t)}function $Y(e){return e!==void 0}var _Y=$Y;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ps(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 Ef=class Lf{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 Lf),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))}},EY=class Tf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tf),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 LY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function TY({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 OY=TY,Yl="ly.img.ai.temp";async function NY(e,t){return e.engine.asset.findAllSources().includes(Yl)||e.engine.asset.addLocalSource(Yl),e.engine.asset.apply(Yl,t)}function DY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function PY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gs(e){return e instanceof Error&&e.name==="AbortError"}function UY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function RY(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!
642
642
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
643
643
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
644
- 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 FY(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 VY=FY;function BY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),qY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:DY(e)}))}function qY(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var rf=BY,GY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fs=GY;function HY(e,t,r){switch(t){case"image":return YY(e,r[t]);case"video":return ZY(e,r[t]);case"sticker":return QY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function YY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ZY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var WY=HY;async function KY(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 JY(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 XY(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 eZ(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 tZ(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function JY(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 XY(e,t,r){let i=t.width,n=t.height,a=await PY(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 eZ(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 tZ(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 Nf=KY;function rZ(e){switch(e.userFlow){case"placeholder":return nZ(e);case"generation-only":return iZ(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function iZ(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=Of(),c=await Nf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function nZ(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=Of(),c=WY(s,a,o);if(i=await NY(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Nf(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)&&(gs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oZ=rZ;function ys(e){return`${e}.generating`}function aZ(e){return`${e}.abort`}function lZ(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(aZ(d),()=>{}),y=c.global(ys(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await oZ({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){rf(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;sZ(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gs(b))return;rf(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function sZ(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 Df=lZ;function ns(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function uZ({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(ys(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Df(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var cZ=uZ;function Pf(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 Ki(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=Pf(e,t.$ref),n={...Ki(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Ki(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Ki(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Ki(e,t[n],r));return i}return t}function dZ(e){return Ki(e,{...e})}function pZ(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 gZ(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return fZ(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function fZ(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=yZ(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function yZ(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 zf=gZ;function Uf(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 Rf(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?mZ(e,c,r,i,n,a,o,s):Ff(e,c,r,i,n,a,o,s);case"boolean":return Vf(e,c,r,i,n,a,o,s);case"number":case"integer":return Bf(e,c,r,i,n,a,o,s);case"object":return os(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 bZ(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function os(e,t,r,i,n,a,o,s){let c=zf(t.schema??{},i).reduce((l,u)=>{let d=Rf(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 Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=je(r.id,o,d,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=un(d,h,f,t.schema.default,""),v=l(p,m),k=hZ(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function mZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),{labels:y,icons:f}=Uf(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(r.id,o,d,x),icon:f[x]})),m=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Vf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Bf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=un(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function bZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Uf(t.schema),I=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ff,boolean:Vf,integer:Bf,object:os},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:je(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>os(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=un(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function hZ(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vZ=Rf,wZ={"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 nf(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function of(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||nf(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||nf(g);n[a(l.id,g)]=y}})}});let c={...wZ,...n};Object.keys(c).length>0&&ps(r.cesdk,{en:c})}function af(e){return typeof e.document=="function"?e.document():e.document}function lf(e,t,r){let i=dZ(e),n=Pf(i,t.inputReference);if(!pZ(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=zf(a,t);return{inputSchema:a,properties:o}}function sf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=vZ(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Df(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function kZ(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=af(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=lf(c,s,a.debug);return of(y,i,r,i.kind),sf(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(af(s)).then(g=>{let{inputSchema:y,properties:f}=lf(g,s,a.debug);of(f,i,r,i.kind),u=sf(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var xZ=kZ;async function IZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return cZ(e,t);case"schema":return xZ(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CZ=IZ;function AZ(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 $q(o,r)),o}return i}var SZ=AZ;function MZ(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 jZ=MZ,Ql="@imgly/plugin-ai-generation",$Z=`
644
+ 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 FY(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 VY=FY;function BY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),qY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:DY(e)}))}function qY(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var rf=BY,GY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fs=GY;function HY(e,t,r){switch(t){case"image":return YY(e,r[t]);case"video":return ZY(e,r[t]);case"sticker":return QY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function YY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ZY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var WY=HY;async function KY(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 JY(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 XY(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 eZ(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 tZ(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function JY(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 XY(e,t,r){let i=t.width,n=t.height,a=await PY(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 eZ(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 tZ(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 Nf=KY;function rZ(e){switch(e.userFlow){case"placeholder":return nZ(e);case"generation-only":return iZ(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function iZ(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=Of(),c=await Nf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function nZ(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=Of(),c=WY(s,a,o);if(i=await NY(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Nf(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)&&(gs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oZ=rZ;function ys(e){return`${e}.generating`}function aZ(e){return`${e}.abort`}function lZ(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(aZ(d),()=>{}),y=c.global(ys(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await oZ({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){rf(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;sZ(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gs(b))return;rf(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function sZ(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 Df=lZ;function is(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function uZ({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(ys(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Df(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var cZ=uZ;function Pf(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 Ki(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=Pf(e,t.$ref),n={...Ki(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Ki(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Ki(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Ki(e,t[n],r));return i}return t}function dZ(e){return Ki(e,{...e})}function pZ(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 gZ(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return fZ(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function fZ(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=yZ(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function yZ(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 zf=gZ;function Uf(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 Rf(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,provider:r,kind:o};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,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?mZ(e,c,r,i,n,a,o,s):Ff(e,c,r,i,n,a,o,s);case"boolean":return Vf(e,c,r,i,n,a,o,s);case"number":case"integer":return Bf(e,c,r,i,n,a,o,s);case"object":return ns(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return bZ(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ns(e,t,r,i,n,a,o,s){let c=zf(t.schema??{},i).reduce((l,u)=>{let d=Rf(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 Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=je(r.id,o,d,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=un(d,h,f,t.schema.default,""),v=l(p,m),k=hZ(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function mZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),{labels:y,icons:f}=Uf(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(r.id,o,d,x),icon:f[x]})),m=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Vf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Bf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=un(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function bZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Uf(t.schema),I=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ff,boolean:Vf,integer:Bf,object:ns},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:je(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>ns(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=un(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function hZ(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vZ=Rf,wZ={"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 nf(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function of(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||nf(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||nf(g);n[a(l.id,g)]=y}})}});let c={...wZ,...n};Object.keys(c).length>0&&ps(r.cesdk,{en:c})}function af(e){return typeof e.document=="function"?e.document():e.document}function lf(e,t,r){let i=dZ(e),n=Pf(i,t.inputReference);if(!pZ(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=zf(a,t);return{inputSchema:a,properties:o}}function sf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=vZ(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Df(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function kZ(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=af(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=lf(c,s,a.debug);return of(y,i,r,i.kind),sf(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(af(s)).then(g=>{let{inputSchema:y,properties:f}=lf(g,s,a.debug);of(f,i,r,i.kind),u=sf(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var xZ=kZ;async function IZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return cZ(e,t);case"schema":return xZ(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CZ=IZ;function AZ(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 $q(o,r)),o}return i}var SZ=AZ;function MZ(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 jZ=MZ,Zl="@imgly/plugin-ai-generation",$Z=`
645
645
  <svg>
646
646
  <symbol
647
647
  fill="none"
@@ -659,7 +659,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
659
659
  fill="none"
660
660
  xmlns="http://www.w3.org/2000/svg"
661
661
  viewBox="0 0 24 24"
662
- id="${Ql}/image"
662
+ id="${Zl}/image"
663
663
  >
664
664
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
665
665
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -671,7 +671,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
671
671
  fill="none"
672
672
  xmlns="http://www.w3.org/2000/svg"
673
673
  viewBox="0 0 24 24"
674
- id="${Ql}/video"
674
+ id="${Zl}/video"
675
675
  >
676
676
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
677
677
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -682,7 +682,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
682
682
  fill="none"
683
683
  xmlns="http://www.w3.org/2000/svg"
684
684
  viewBox="0 0 24 24"
685
- id="${Ql}/audio"
685
+ id="${Zl}/audio"
686
686
  >
687
687
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
688
688
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -714,7 +714,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
714
714
  </symbol>
715
715
  </svg>
716
716
  `,_Z=$Z;function EZ(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 qf(2e3),await LZ(t,e,r)):i(t,r)}async function LZ(e,t,r){switch(t.kind){case"image":return TZ(e,t,r);case"video":return OZ(e,t,r);case"text":return NZ(e,t,r);case"audio":return PZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function TZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await jY(s,r),l=await MY(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(`
717
- `,"+")}`}}async function OZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function NZ(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=Qi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Qi(n,o)}else"customPrompt"in e?a=Qi(n,"custom"):a=Qi(n,"improved");else a=Qi(n,"generated");return DZ(a,r.abortSignal)}async function*DZ(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 qf(100)}return{kind:"text",text:e}}function Qi(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 PZ(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:zZ(220,i),duration:i,thumbnailUrl:void 0}}function zZ(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 UZ(i,44100)}function UZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function qf(e){return new Promise(t=>{setTimeout(t,e)})}var RZ=EZ,FZ="USER_CANCEL";function VZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=LY([...e.provider.output.middleware??[],...r?.middlewares??[],OY({enable:r?.debug}),RZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:zY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gs(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),error:o,middlewareOptions:a}}}}var BZ=VZ;async function qZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ef.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=SZ(a),s=jZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=BZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await CZ(a,c);UY(r.cesdk,"@imgly/plugin-ai-generation",_Z);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return EY.get().register(u),u}var Wl=qZ;function GZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _q(n,r,i);return r.engine.asset.addSource(a),a.id}var HZ=GZ;function So(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function YZ(e,t,r,i){let{cesdk:n}=r;ps(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Wl(e,u,r,i)));o.push(...l),a=QZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Wl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Wl(e,d,r,i)));o.push(...u),a=ZZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=HZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_Y)}),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 ZZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:ns(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:ns(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:So(e,`${A}.label`),icon:f.value!==A&&WZ(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:So(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:So(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function QZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:ns(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:So(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function WZ(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ys(r.id),!1).value)}var KZ=YZ,Kte=5*60*1e3,JZ="@imgly/plugin-ai-sticker-generation",XZ=`
717
+ `,"+")}`}}async function OZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function NZ(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=Qi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Qi(n,o)}else"customPrompt"in e?a=Qi(n,"custom"):a=Qi(n,"improved");else a=Qi(n,"generated");return DZ(a,r.abortSignal)}async function*DZ(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 qf(100)}return{kind:"text",text:e}}function Qi(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 PZ(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:zZ(220,i),duration:i,thumbnailUrl:void 0}}function zZ(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 UZ(i,44100)}function UZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function qf(e){return new Promise(t=>{setTimeout(t,e)})}var RZ=EZ,FZ="USER_CANCEL";function VZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=LY([...e.provider.output.middleware??[],...r?.middlewares??[],OY({enable:r?.debug}),RZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:zY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gs(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),error:o,middlewareOptions:a}}}}var BZ=VZ;async function qZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ef.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=SZ(a),s=jZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=BZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await CZ(a,c);UY(r.cesdk,"@imgly/plugin-ai-generation",_Z);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return EY.get().register(u),u}var Ql=qZ;function GZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _q(n,r,i);return r.engine.asset.addSource(a),a.id}var HZ=GZ;function os(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function YZ(e,t,r,i){let{cesdk:n}=r;ps(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ql(e,u,r,i)));o.push(...l),a=QZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ql(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ql(e,d,r,i)));o.push(...u),a=ZZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=HZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_Y)}),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 ZZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:is(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:is(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:os(e,`${A}.label`),icon:f.value!==A&&WZ(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:os(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function QZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:is(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:os(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function WZ(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ys(r.id),!1).value)}var KZ=YZ,Kte=5*60*1e3,JZ="@imgly/plugin-ai-sticker-generation",XZ=`
718
718
  <svg>
719
719
  <symbol
720
720
  fill="none"
@@ -728,7 +728,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
728
728
 
729
729
  </symbol>
730
730
  </svg>
731
- `,eQ=XZ,tQ=typeof global=="object"&&global&&global.Object===Object&&global,Gf=tQ,rQ=typeof self=="object"&&self&&self.Object===Object&&self,iQ=Gf||rQ||Function("return this")(),se=iQ,nQ=se.Symbol,sr=nQ,Hf=Object.prototype,oQ=Hf.hasOwnProperty,aQ=Hf.toString,Wi=sr?sr.toStringTag:void 0;function lQ(e){var t=oQ.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=aQ.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var sQ=lQ,uQ=Object.prototype,cQ=uQ.toString;function dQ(e){return cQ.call(e)}var pQ=dQ,gQ="[object Null]",fQ="[object Undefined]",uf=sr?sr.toStringTag:void 0;function yQ(e){return e==null?e===void 0?fQ:gQ:uf&&uf in Object(e)?sQ(e):pQ(e)}var cn=yQ;function mQ(e){return e!=null&&typeof e=="object"}var ms=mQ,Jte=Array.isArray;function bQ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=bQ,hQ="[object AsyncFunction]",vQ="[object Function]",wQ="[object GeneratorFunction]",kQ="[object Proxy]";function xQ(e){if(!Yf(e))return!1;var t=cn(e);return t==vQ||t==wQ||t==hQ||t==kQ}var IQ=xQ,CQ=se["__core-js_shared__"],Kl=CQ,cf=function(){var e=/[^.]+$/.exec(Kl&&Kl.keys&&Kl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AQ(e){return!!cf&&cf in e}var SQ=AQ,MQ=Function.prototype,jQ=MQ.toString;function $Q(e){if(e!=null){try{return jQ.call(e)}catch{}try{return e+""}catch{}}return""}var He=$Q,_Q=/[\\^$.*+?()[\]{}|]/g,EQ=/^\[object .+?Constructor\]$/,LQ=Function.prototype,TQ=Object.prototype,OQ=LQ.toString,NQ=TQ.hasOwnProperty,DQ=RegExp("^"+OQ.call(NQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PQ(e){if(!Yf(e)||SQ(e))return!1;var t=IQ(e)?DQ:EQ;return t.test(He(e))}var zQ=PQ;function UQ(e,t){return e?.[t]}var RQ=UQ;function FQ(e,t){var r=RQ(e,t);return zQ(r)?r:void 0}var gr=FQ,VQ=gr(se,"WeakMap"),as=VQ;function BQ(e,t){return e===t||e!==e&&t!==t}var qQ=BQ,GQ=9007199254740991;function HQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=GQ}var YQ=HQ,Xte=Object.prototype,ZQ="[object Arguments]";function QQ(e){return ms(e)&&cn(e)==ZQ}var df=QQ,Zf=Object.prototype,WQ=Zf.hasOwnProperty,KQ=Zf.propertyIsEnumerable,ere=df(function(){return arguments}())?df:function(e){return ms(e)&&WQ.call(e,"callee")&&!KQ.call(e,"callee")},Qf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pf=Qf&&typeof module=="object"&&module&&!module.nodeType&&module,JQ=pf&&pf.exports===Qf,gf=JQ?se.Buffer:void 0,tre=gf?gf.isBuffer:void 0,XQ="[object Arguments]",eW="[object Array]",tW="[object Boolean]",rW="[object Date]",iW="[object Error]",nW="[object Function]",oW="[object Map]",aW="[object Number]",lW="[object Object]",sW="[object RegExp]",uW="[object Set]",cW="[object String]",dW="[object WeakMap]",pW="[object ArrayBuffer]",gW="[object DataView]",fW="[object Float32Array]",yW="[object Float64Array]",mW="[object Int8Array]",bW="[object Int16Array]",hW="[object Int32Array]",vW="[object Uint8Array]",wW="[object Uint8ClampedArray]",kW="[object Uint16Array]",xW="[object Uint32Array]",q={};q[fW]=q[yW]=q[mW]=q[bW]=q[hW]=q[vW]=q[wW]=q[kW]=q[xW]=!0;q[XQ]=q[eW]=q[pW]=q[tW]=q[gW]=q[rW]=q[iW]=q[nW]=q[oW]=q[aW]=q[lW]=q[sW]=q[uW]=q[cW]=q[dW]=!1;function IW(e){return ms(e)&&YQ(e.length)&&!!q[cn(e)]}var CW=IW;function AW(e){return function(t){return e(t)}}var SW=AW,Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,MW=en&&en.exports===Wf,Jl=MW&&Gf.process,jW=function(){try{var e=en&&en.require&&en.require("util").types;return e||Jl&&Jl.binding&&Jl.binding("util")}catch{}}(),ff=jW,yf=ff&&ff.isTypedArray,rre=yf?SW(yf):CW,$W=Object.prototype,ire=$W.hasOwnProperty;function _W(e,t){return function(r){return e(t(r))}}var EW=_W,nre=EW(Object.keys,Object),LW=Object.prototype,ore=LW.hasOwnProperty,TW=gr(Object,"create"),nn=TW;function OW(){this.__data__=nn?nn(null):{},this.size=0}var NW=OW;function DW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var PW=DW,zW="__lodash_hash_undefined__",UW=Object.prototype,RW=UW.hasOwnProperty;function FW(e){var t=this.__data__;if(nn){var r=t[e];return r===zW?void 0:r}return RW.call(t,e)?t[e]:void 0}var VW=FW,BW=Object.prototype,qW=BW.hasOwnProperty;function GW(e){var t=this.__data__;return nn?t[e]!==void 0:qW.call(t,e)}var HW=GW,YW="__lodash_hash_undefined__";function ZW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?YW:t,this}var QW=ZW;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=NW;fr.prototype.delete=PW;fr.prototype.get=VW;fr.prototype.has=HW;fr.prototype.set=QW;var mf=fr;function WW(){this.__data__=[],this.size=0}var KW=WW;function JW(e,t){for(var r=e.length;r--;)if(qQ(e[r][0],t))return r;return-1}var _o=JW,XW=Array.prototype,eK=XW.splice;function tK(e){var t=this.__data__,r=_o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eK.call(t,r,1),--this.size,!0}var rK=tK;function iK(e){var t=this.__data__,r=_o(t,e);return r<0?void 0:t[r][1]}var nK=iK;function oK(e){return _o(this.__data__,e)>-1}var aK=oK;function lK(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 sK=lK;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=KW;yr.prototype.delete=rK;yr.prototype.get=nK;yr.prototype.has=aK;yr.prototype.set=sK;var Eo=yr,uK=gr(se,"Map"),on=uK;function cK(){this.size=0,this.__data__={hash:new mf,map:new(on||Eo),string:new mf}}var dK=cK;function pK(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gK=pK;function fK(e,t){var r=e.__data__;return gK(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Lo=fK;function yK(e){var t=Lo(this,e).delete(e);return this.size-=t?1:0,t}var mK=yK;function bK(e){return Lo(this,e).get(e)}var hK=bK;function vK(e){return Lo(this,e).has(e)}var wK=vK;function kK(e,t){var r=Lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xK=kK;function mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mr.prototype.clear=dK;mr.prototype.delete=mK;mr.prototype.get=hK;mr.prototype.has=wK;mr.prototype.set=xK;var Kf=mr;function IK(){this.__data__=new Eo,this.size=0}var CK=IK;function AK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SK=AK;function MK(e){return this.__data__.get(e)}var jK=MK;function $K(e){return this.__data__.has(e)}var _K=$K,EK=200;function LK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!on||i.length<EK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kf(i)}return r.set(e,t),this.size=r.size,this}var TK=LK;function dn(e){var t=this.__data__=new Eo(e);this.size=t.size}dn.prototype.clear=CK;dn.prototype.delete=SK;dn.prototype.get=jK;dn.prototype.has=_K;dn.prototype.set=TK;var OK=Object.prototype,are=OK.propertyIsEnumerable,NK=gr(se,"DataView"),ls=NK,DK=gr(se,"Promise"),ss=DK,PK=gr(se,"Set"),us=PK,bf="[object Map]",zK="[object Object]",hf="[object Promise]",vf="[object Set]",wf="[object WeakMap]",kf="[object DataView]",UK=He(ls),RK=He(on),FK=He(ss),VK=He(us),BK=He(as),or=cn;(ls&&or(new ls(new ArrayBuffer(1)))!=kf||on&&or(new on)!=bf||ss&&or(ss.resolve())!=hf||us&&or(new us)!=vf||as&&or(new as)!=wf)&&(or=function(e){var t=cn(e),r=t==zK?e.constructor:void 0,i=r?He(r):"";if(i)switch(i){case UK:return kf;case RK:return bf;case FK:return hf;case VK:return vf;case BK:return wf}return t});var lre=se.Uint8Array,qK="__lodash_hash_undefined__";function GK(e){return this.__data__.set(e,qK),this}var HK=GK;function YK(e){return this.__data__.has(e)}var ZK=YK;function cs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kf;++t<r;)this.add(e[t])}cs.prototype.add=cs.prototype.push=HK;cs.prototype.has=ZK;var xf=sr?sr.prototype:void 0,sre=xf?xf.valueOf:void 0,QK=Object.prototype,ure=QK.hasOwnProperty,WK=Object.prototype,cre=WK.hasOwnProperty,dre=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pre=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gre=new RegExp(/[A-Fa-f0-9]{2}/,"g");function KK(e){return e==null?[]:Array.isArray(e)?e:[e]}var JK=KK;function XK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function eJ(e){return typeof e?.translate=="function"}function tJ(e,t,r){return e&&XK(e)&&eJ(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function rJ(e){return{async initialize({cesdk:t}){if(t==null)return;RY(t,Ji,"1.83.0-nightly.20260917"),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=Ef.get(),i=`${Ji}.action.label`;t.ui.addIconSet(JZ,eQ),ps(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:tJ(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 KZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),VY({cesdk:t,panelId:Se})):n()}}}var iJ=rJ,nJ=e=>({name:Ji,version:"1.83.0-nightly.20260917",...iJ(e)}),Jf=nJ;var bs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let b=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return b&&b.includes(k)||x.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let b=I.tags?.[n]||[];return k.some(x=>b.includes(x))})}a&&p.sort((k,I)=>{let b=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return b&&!x?-1:!b&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let b=k.meta?.[d],x=I.meta?.[d];return b===void 0?1:x===void 0?-1:typeof b=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(b):b.localeCompare(x):typeof b=="number"&&typeof x=="number"?u==="Descending"?x-b:b-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,m=p.slice(y,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:m,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=oJ(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 Xf(e,t,r=[]){return new bs(e,t,r)}function oJ(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=uu("apps"),aJ=512,lJ=128,ey=e=>({async initialize({cesdk:t}){if(t==null)return;cu(t,pn,"1.83.0-nightly.20260917");let{providers:r}=e;await t.addPlugin(F1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Uc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(rp({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Jf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),pJ(t),sJ(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function sJ(e,t){dJ(e);let r=uJ(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel: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?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function uJ(e,t){let r=vn.get(),i=Xf(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?cJ(t.baseURL,o):void 0,width:aJ,height:lJ}}).filter(Us)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function cJ(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 dJ(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let m=e.ui.getAssetLibraryEntry(h);if(m==null)return!1;if(u==null)return!0;let v=m.sceneMode;return typeof v=="string"?m.sceneMode===u||m.sceneMode==="All":typeof v=="function"?(typeof m.sourceIds=="function"?m.sourceIds({cesdk:e,engine:r}):m.sourceIds).some(I=>{let b=v(e.version.startsWith("1.51.")?I:{sourceId:I});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function pJ(e){lu(e,du)}var gJ=e=>({name:pn,version:"1.83.0-nightly.20260917",...ey(e)}),Lre=gJ;export{Lre as default};
731
+ `,eQ=XZ,tQ=typeof global=="object"&&global&&global.Object===Object&&global,Gf=tQ,rQ=typeof self=="object"&&self&&self.Object===Object&&self,iQ=Gf||rQ||Function("return this")(),se=iQ,nQ=se.Symbol,sr=nQ,Hf=Object.prototype,oQ=Hf.hasOwnProperty,aQ=Hf.toString,Wi=sr?sr.toStringTag:void 0;function lQ(e){var t=oQ.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=aQ.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var sQ=lQ,uQ=Object.prototype,cQ=uQ.toString;function dQ(e){return cQ.call(e)}var pQ=dQ,gQ="[object Null]",fQ="[object Undefined]",uf=sr?sr.toStringTag:void 0;function yQ(e){return e==null?e===void 0?fQ:gQ:uf&&uf in Object(e)?sQ(e):pQ(e)}var cn=yQ;function mQ(e){return e!=null&&typeof e=="object"}var ms=mQ,Jte=Array.isArray;function bQ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=bQ,hQ="[object AsyncFunction]",vQ="[object Function]",wQ="[object GeneratorFunction]",kQ="[object Proxy]";function xQ(e){if(!Yf(e))return!1;var t=cn(e);return t==vQ||t==wQ||t==hQ||t==kQ}var IQ=xQ,CQ=se["__core-js_shared__"],Wl=CQ,cf=function(){var e=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AQ(e){return!!cf&&cf in e}var SQ=AQ,MQ=Function.prototype,jQ=MQ.toString;function $Q(e){if(e!=null){try{return jQ.call(e)}catch{}try{return e+""}catch{}}return""}var He=$Q,_Q=/[\\^$.*+?()[\]{}|]/g,EQ=/^\[object .+?Constructor\]$/,LQ=Function.prototype,TQ=Object.prototype,OQ=LQ.toString,NQ=TQ.hasOwnProperty,DQ=RegExp("^"+OQ.call(NQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PQ(e){if(!Yf(e)||SQ(e))return!1;var t=IQ(e)?DQ:EQ;return t.test(He(e))}var zQ=PQ;function UQ(e,t){return e?.[t]}var RQ=UQ;function FQ(e,t){var r=RQ(e,t);return zQ(r)?r:void 0}var gr=FQ,VQ=gr(se,"WeakMap"),as=VQ;function BQ(e,t){return e===t||e!==e&&t!==t}var qQ=BQ,GQ=9007199254740991;function HQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=GQ}var YQ=HQ,Xte=Object.prototype,ZQ="[object Arguments]";function QQ(e){return ms(e)&&cn(e)==ZQ}var df=QQ,Zf=Object.prototype,WQ=Zf.hasOwnProperty,KQ=Zf.propertyIsEnumerable,ere=df(function(){return arguments}())?df:function(e){return ms(e)&&WQ.call(e,"callee")&&!KQ.call(e,"callee")},Qf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pf=Qf&&typeof module=="object"&&module&&!module.nodeType&&module,JQ=pf&&pf.exports===Qf,gf=JQ?se.Buffer:void 0,tre=gf?gf.isBuffer:void 0,XQ="[object Arguments]",eW="[object Array]",tW="[object Boolean]",rW="[object Date]",iW="[object Error]",nW="[object Function]",oW="[object Map]",aW="[object Number]",lW="[object Object]",sW="[object RegExp]",uW="[object Set]",cW="[object String]",dW="[object WeakMap]",pW="[object ArrayBuffer]",gW="[object DataView]",fW="[object Float32Array]",yW="[object Float64Array]",mW="[object Int8Array]",bW="[object Int16Array]",hW="[object Int32Array]",vW="[object Uint8Array]",wW="[object Uint8ClampedArray]",kW="[object Uint16Array]",xW="[object Uint32Array]",q={};q[fW]=q[yW]=q[mW]=q[bW]=q[hW]=q[vW]=q[wW]=q[kW]=q[xW]=!0;q[XQ]=q[eW]=q[pW]=q[tW]=q[gW]=q[rW]=q[iW]=q[nW]=q[oW]=q[aW]=q[lW]=q[sW]=q[uW]=q[cW]=q[dW]=!1;function IW(e){return ms(e)&&YQ(e.length)&&!!q[cn(e)]}var CW=IW;function AW(e){return function(t){return e(t)}}var SW=AW,Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,MW=en&&en.exports===Wf,Kl=MW&&Gf.process,jW=function(){try{var e=en&&en.require&&en.require("util").types;return e||Kl&&Kl.binding&&Kl.binding("util")}catch{}}(),ff=jW,yf=ff&&ff.isTypedArray,rre=yf?SW(yf):CW,$W=Object.prototype,ire=$W.hasOwnProperty;function _W(e,t){return function(r){return e(t(r))}}var EW=_W,nre=EW(Object.keys,Object),LW=Object.prototype,ore=LW.hasOwnProperty,TW=gr(Object,"create"),nn=TW;function OW(){this.__data__=nn?nn(null):{},this.size=0}var NW=OW;function DW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var PW=DW,zW="__lodash_hash_undefined__",UW=Object.prototype,RW=UW.hasOwnProperty;function FW(e){var t=this.__data__;if(nn){var r=t[e];return r===zW?void 0:r}return RW.call(t,e)?t[e]:void 0}var VW=FW,BW=Object.prototype,qW=BW.hasOwnProperty;function GW(e){var t=this.__data__;return nn?t[e]!==void 0:qW.call(t,e)}var HW=GW,YW="__lodash_hash_undefined__";function ZW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?YW:t,this}var QW=ZW;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=NW;fr.prototype.delete=PW;fr.prototype.get=VW;fr.prototype.has=HW;fr.prototype.set=QW;var mf=fr;function WW(){this.__data__=[],this.size=0}var KW=WW;function JW(e,t){for(var r=e.length;r--;)if(qQ(e[r][0],t))return r;return-1}var Ao=JW,XW=Array.prototype,eK=XW.splice;function tK(e){var t=this.__data__,r=Ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eK.call(t,r,1),--this.size,!0}var rK=tK;function iK(e){var t=this.__data__,r=Ao(t,e);return r<0?void 0:t[r][1]}var nK=iK;function oK(e){return Ao(this.__data__,e)>-1}var aK=oK;function lK(e,t){var r=this.__data__,i=Ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sK=lK;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=KW;yr.prototype.delete=rK;yr.prototype.get=nK;yr.prototype.has=aK;yr.prototype.set=sK;var So=yr,uK=gr(se,"Map"),on=uK;function cK(){this.size=0,this.__data__={hash:new mf,map:new(on||So),string:new mf}}var dK=cK;function pK(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gK=pK;function fK(e,t){var r=e.__data__;return gK(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=fK;function yK(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var mK=yK;function bK(e){return Mo(this,e).get(e)}var hK=bK;function vK(e){return Mo(this,e).has(e)}var wK=vK;function kK(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xK=kK;function mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mr.prototype.clear=dK;mr.prototype.delete=mK;mr.prototype.get=hK;mr.prototype.has=wK;mr.prototype.set=xK;var Kf=mr;function IK(){this.__data__=new So,this.size=0}var CK=IK;function AK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SK=AK;function MK(e){return this.__data__.get(e)}var jK=MK;function $K(e){return this.__data__.has(e)}var _K=$K,EK=200;function LK(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!on||i.length<EK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kf(i)}return r.set(e,t),this.size=r.size,this}var TK=LK;function dn(e){var t=this.__data__=new So(e);this.size=t.size}dn.prototype.clear=CK;dn.prototype.delete=SK;dn.prototype.get=jK;dn.prototype.has=_K;dn.prototype.set=TK;var OK=Object.prototype,are=OK.propertyIsEnumerable,NK=gr(se,"DataView"),ls=NK,DK=gr(se,"Promise"),ss=DK,PK=gr(se,"Set"),us=PK,bf="[object Map]",zK="[object Object]",hf="[object Promise]",vf="[object Set]",wf="[object WeakMap]",kf="[object DataView]",UK=He(ls),RK=He(on),FK=He(ss),VK=He(us),BK=He(as),or=cn;(ls&&or(new ls(new ArrayBuffer(1)))!=kf||on&&or(new on)!=bf||ss&&or(ss.resolve())!=hf||us&&or(new us)!=vf||as&&or(new as)!=wf)&&(or=function(e){var t=cn(e),r=t==zK?e.constructor:void 0,i=r?He(r):"";if(i)switch(i){case UK:return kf;case RK:return bf;case FK:return hf;case VK:return vf;case BK:return wf}return t});var lre=se.Uint8Array,qK="__lodash_hash_undefined__";function GK(e){return this.__data__.set(e,qK),this}var HK=GK;function YK(e){return this.__data__.has(e)}var ZK=YK;function cs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kf;++t<r;)this.add(e[t])}cs.prototype.add=cs.prototype.push=HK;cs.prototype.has=ZK;var xf=sr?sr.prototype:void 0,sre=xf?xf.valueOf:void 0,QK=Object.prototype,ure=QK.hasOwnProperty,WK=Object.prototype,cre=WK.hasOwnProperty,dre=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pre=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gre=new RegExp(/[A-Fa-f0-9]{2}/,"g");function KK(e){return e==null?[]:Array.isArray(e)?e:[e]}var JK=KK;function XK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function eJ(e){return typeof e?.translate=="function"}function tJ(e,t,r){return e&&XK(e)&&eJ(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function rJ(e){return{async initialize({cesdk:t}){if(t==null)return;RY(t,Ji,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Ef.get(),i=`${Ji}.action.label`;t.ui.addIconSet(JZ,eQ),ps(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:tJ(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 KZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),VY({cesdk:t,panelId:Se})):n()}}}var iJ=rJ,nJ=e=>({name:Ji,version:"1.83.0-rc.0",...iJ(e)}),Jf=nJ;var bs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let b=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return b&&b.includes(k)||x.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let b=I.tags?.[n]||[];return k.some(x=>b.includes(x))})}a&&p.sort((k,I)=>{let b=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return b&&!x?-1:!b&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let b=k.meta?.[d],x=I.meta?.[d];return b===void 0?1:x===void 0?-1:typeof b=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(b):b.localeCompare(x):typeof b=="number"&&typeof x=="number"?u==="Descending"?x-b:b-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,m=p.slice(y,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:m,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=oJ(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 Xf(e,t,r=[]){return new bs(e,t,r)}function oJ(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=uu("apps"),aJ=512,lJ=128,ey=e=>({async initialize({cesdk:t}){if(t==null)return;cu(t,pn,"1.83.0-rc.0");let{providers:r}=e;await t.addPlugin(F1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Uc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(rp({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Jf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),pJ(t),sJ(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function sJ(e,t){dJ(e);let r=uJ(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel: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?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function uJ(e,t){let r=vn.get(),i=Xf(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?cJ(t.baseURL,o):void 0,width:aJ,height:lJ}}).filter(Us)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function cJ(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 dJ(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let m=e.ui.getAssetLibraryEntry(h);if(m==null)return!1;if(u==null)return!0;let v=m.sceneMode;return typeof v=="string"?m.sceneMode===u||m.sceneMode==="All":typeof v=="function"?(typeof m.sourceIds=="function"?m.sourceIds({cesdk:e,engine:r}):m.sourceIds).some(I=>{let b=v(e.version.startsWith("1.51.")?I:{sourceId:I});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function pJ(e){lu(e,du)}var gJ=e=>({name:pn,version:"1.83.0-rc.0",...ey(e)}),Lre=gJ;export{Lre as default};
732
732
  /*! Bundled license information:
733
733
 
734
734
  lodash-es/lodash.js: