@imgly/plugin-ai-apps-web 0.2.6 → 0.2.7

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 X1=typeof global=="object"&&global&&global.Object===Object&&global,ns=X1,ef=typeof self=="object"&&self&&self.Object===Object&&self,tf=ns||ef||Function("return this")(),G=tf,rf=G.Symbol,Re=rf,os=Object.prototype,nf=os.hasOwnProperty,of=os.toString,cr=Re?Re.toStringTag:void 0;function af(e){var t=nf.call(e,cr),r=e[cr];try{e[cr]=void 0;var i=!0}catch{}var n=of.call(e);return i&&(t?e[cr]=r:delete e[cr]),n}var lf=af,sf=Object.prototype,uf=sf.toString;function cf(e){return uf.call(e)}var df=cf,pf="[object Null]",gf="[object Undefined]",ql=Re?Re.toStringTag:void 0;function ff(e){return e==null?e===void 0?gf:pf:ql&&ql in Object(e)?lf(e):df(e)}var fr=ff;function yf(e){return e!=null&&typeof e=="object"}var ho=yf,PW=Array.isArray;function mf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var as=mf,bf="[object AsyncFunction]",hf="[object Function]",vf="[object GeneratorFunction]",wf="[object Proxy]";function kf(e){if(!as(e))return!1;var t=fr(e);return t==hf||t==vf||t==bf||t==wf}var xf=kf,If=G["__core-js_shared__"],co=If,Gl=function(){var e=/[^.]+$/.exec(co&&co.keys&&co.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Af(e){return!!Gl&&Gl in e}var Cf=Af,Mf=Function.prototype,jf=Mf.toString;function Sf(e){if(e!=null){try{return jf.call(e)}catch{}try{return e+""}catch{}}return""}var be=Sf,$f=/[\\^$.*+?()[\]{}|]/g,Ef=/^\[object .+?Constructor\]$/,_f=Function.prototype,Lf=Object.prototype,Tf=_f.toString,Of=Lf.hasOwnProperty,Nf=RegExp("^"+Tf.call(Of).replace($f,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Df(e){if(!as(e)||Cf(e))return!1;var t=xf(e)?Nf:Ef;return t.test(be(e))}var Pf=Df;function zf(e,t){return e?.[t]}var Uf=zf;function Rf(e,t){var r=Uf(e,t);return Pf(r)?r:void 0}var Fe=Rf,Ff=Fe(G,"WeakMap"),go=Ff;function Vf(e,t){return e===t||e!==e&&t!==t}var Bf=Vf,qf=9007199254740991;function Gf(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qf}var Yf=Gf;var zW=Object.prototype;var Hf="[object Arguments]";function Zf(e){return ho(e)&&fr(e)==Hf}var Yl=Zf,ls=Object.prototype,Qf=ls.hasOwnProperty,Wf=ls.propertyIsEnumerable,UW=Yl(function(){return arguments}())?Yl:function(e){return ho(e)&&Qf.call(e,"callee")&&!Wf.call(e,"callee")};var ss=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Hl=ss&&typeof module=="object"&&module&&!module.nodeType&&module,Kf=Hl&&Hl.exports===ss,Zl=Kf?G.Buffer:void 0,RW=Zl?Zl.isBuffer:void 0;var Jf="[object Arguments]",Xf="[object Array]",ey="[object Boolean]",ty="[object Date]",ry="[object Error]",iy="[object Function]",ny="[object Map]",oy="[object Number]",ay="[object Object]",ly="[object RegExp]",sy="[object Set]",uy="[object String]",cy="[object WeakMap]",dy="[object ArrayBuffer]",py="[object DataView]",gy="[object Float32Array]",fy="[object Float64Array]",yy="[object Int8Array]",my="[object Int16Array]",by="[object Int32Array]",hy="[object Uint8Array]",vy="[object Uint8ClampedArray]",wy="[object Uint16Array]",ky="[object Uint32Array]",$={};$[gy]=$[fy]=$[yy]=$[my]=$[by]=$[hy]=$[vy]=$[wy]=$[ky]=!0;$[Jf]=$[Xf]=$[dy]=$[ey]=$[py]=$[ty]=$[ry]=$[iy]=$[ny]=$[oy]=$[ay]=$[ly]=$[sy]=$[uy]=$[cy]=!1;function xy(e){return ho(e)&&Yf(e.length)&&!!$[fr(e)]}var Iy=xy;function Ay(e){return function(t){return e(t)}}var Cy=Ay,us=typeof exports=="object"&&exports&&!exports.nodeType&&exports,dr=us&&typeof module=="object"&&module&&!module.nodeType&&module,My=dr&&dr.exports===us,po=My&&ns.process,jy=function(){try{var e=dr&&dr.require&&dr.require("util").types;return e||po&&po.binding&&po.binding("util")}catch{}}(),Ql=jy,Wl=Ql&&Ql.isTypedArray,FW=Wl?Cy(Wl):Iy;var Sy=Object.prototype,VW=Sy.hasOwnProperty;function $y(e,t){return function(r){return e(t(r))}}var Ey=$y,BW=Ey(Object.keys,Object);var _y=Object.prototype,qW=_y.hasOwnProperty;var Ly=Fe(Object,"create"),pr=Ly;function Ty(){this.__data__=pr?pr(null):{},this.size=0}var Oy=Ty;function Ny(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Dy=Ny,Py="__lodash_hash_undefined__",zy=Object.prototype,Uy=zy.hasOwnProperty;function Ry(e){var t=this.__data__;if(pr){var r=t[e];return r===Py?void 0:r}return Uy.call(t,e)?t[e]:void 0}var Fy=Ry,Vy=Object.prototype,By=Vy.hasOwnProperty;function qy(e){var t=this.__data__;return pr?t[e]!==void 0:By.call(t,e)}var Gy=qy,Yy="__lodash_hash_undefined__";function Hy(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=pr&&t===void 0?Yy:t,this}var Zy=Hy;function Ve(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ve.prototype.clear=Oy;Ve.prototype.delete=Dy;Ve.prototype.get=Fy;Ve.prototype.has=Gy;Ve.prototype.set=Zy;var Kl=Ve;function Qy(){this.__data__=[],this.size=0}var Wy=Qy;function Ky(e,t){for(var r=e.length;r--;)if(Bf(e[r][0],t))return r;return-1}var Qi=Ky,Jy=Array.prototype,Xy=Jy.splice;function em(e){var t=this.__data__,r=Qi(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Xy.call(t,r,1),--this.size,!0}var tm=em;function rm(e){var t=this.__data__,r=Qi(t,e);return r<0?void 0:t[r][1]}var im=rm;function nm(e){return Qi(this.__data__,e)>-1}var om=nm;function am(e,t){var r=this.__data__,i=Qi(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var lm=am;function Be(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Be.prototype.clear=Wy;Be.prototype.delete=tm;Be.prototype.get=im;Be.prototype.has=om;Be.prototype.set=lm;var Wi=Be,sm=Fe(G,"Map"),gr=sm;function um(){this.size=0,this.__data__={hash:new Kl,map:new(gr||Wi),string:new Kl}}var cm=um;function dm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var pm=dm;function gm(e,t){var r=e.__data__;return pm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ki=gm;function fm(e){var t=Ki(this,e).delete(e);return this.size-=t?1:0,t}var ym=fm;function mm(e){return Ki(this,e).get(e)}var bm=mm;function hm(e){return Ki(this,e).has(e)}var vm=hm;function wm(e,t){var r=Ki(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var km=wm;function qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qe.prototype.clear=cm;qe.prototype.delete=ym;qe.prototype.get=bm;qe.prototype.has=vm;qe.prototype.set=km;var cs=qe;function xm(){this.__data__=new Wi,this.size=0}var Im=xm;function Am(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Cm=Am;function Mm(e){return this.__data__.get(e)}var jm=Mm;function Sm(e){return this.__data__.has(e)}var $m=Sm,Em=200;function _m(e,t){var r=this.__data__;if(r instanceof Wi){var i=r.__data__;if(!gr||i.length<Em-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cs(i)}return r.set(e,t),this.size=r.size,this}var Lm=_m;function yr(e){var t=this.__data__=new Wi(e);this.size=t.size}yr.prototype.clear=Im;yr.prototype.delete=Cm;yr.prototype.get=jm;yr.prototype.has=$m;yr.prototype.set=Lm;var Tm=Object.prototype,GW=Tm.propertyIsEnumerable;var Om=Fe(G,"DataView"),fo=Om,Nm=Fe(G,"Promise"),yo=Nm,Dm=Fe(G,"Set"),mo=Dm,Jl="[object Map]",Pm="[object Object]",Xl="[object Promise]",es="[object Set]",ts="[object WeakMap]",rs="[object DataView]",zm=be(fo),Um=be(gr),Rm=be(yo),Fm=be(mo),Vm=be(go),Ue=fr;(fo&&Ue(new fo(new ArrayBuffer(1)))!=rs||gr&&Ue(new gr)!=Jl||yo&&Ue(yo.resolve())!=Xl||mo&&Ue(new mo)!=es||go&&Ue(new go)!=ts)&&(Ue=function(e){var t=fr(e),r=t==Pm?e.constructor:void 0,i=r?be(r):"";if(i)switch(i){case zm:return rs;case Um:return Jl;case Rm:return Xl;case Fm:return es;case Vm:return ts}return t});var YW=G.Uint8Array;var Bm="__lodash_hash_undefined__";function qm(e){return this.__data__.set(e,Bm),this}var Gm=qm;function Ym(e){return this.__data__.has(e)}var Hm=Ym;function bo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cs;++t<r;)this.add(e[t])}bo.prototype.add=bo.prototype.push=Gm;bo.prototype.has=Hm;var is=Re?Re.prototype:void 0,HW=is?is.valueOf:void 0;var Zm=Object.prototype,ZW=Zm.hasOwnProperty;var Qm=Object.prototype,QW=Qm.hasOwnProperty;var WW=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),KW=new RegExp(/[A-Fa-f0-9]{1}/,"g"),JW=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Wm(e){return e!==void 0}var ds=Wm;var Km=typeof global=="object"&&global&&global.Object===Object&&global,Ms=Km,Jm=typeof self=="object"&&self&&self.Object===Object&&self,Xm=Ms||Jm||Function("return this")(),Y=Xm,eb=Y.Symbol,Ye=eb,js=Object.prototype,tb=js.hasOwnProperty,rb=js.toString,mr=Ye?Ye.toStringTag:void 0;function ib(e){var t=tb.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=rb.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var nb=ib,ob=Object.prototype,ab=ob.toString;function lb(e){return ab.call(e)}var sb=lb,ub="[object Null]",cb="[object Undefined]",ps=Ye?Ye.toStringTag:void 0;function db(e){return e==null?e===void 0?cb:ub:ps&&ps in Object(e)?nb(e):sb(e)}var wr=db;function pb(e){return e!=null&&typeof e=="object"}var jo=pb,eK=Array.isArray;function gb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ss=gb,fb="[object AsyncFunction]",yb="[object Function]",mb="[object GeneratorFunction]",bb="[object Proxy]";function hb(e){if(!Ss(e))return!1;var t=wr(e);return t==yb||t==mb||t==fb||t==bb}var vb=hb,wb=Y["__core-js_shared__"],vo=wb,gs=function(){var e=/[^.]+$/.exec(vo&&vo.keys&&vo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function kb(e){return!!gs&&gs in e}var xb=kb,Ib=Function.prototype,Ab=Ib.toString;function Cb(e){if(e!=null){try{return Ab.call(e)}catch{}try{return e+""}catch{}}return""}var he=Cb,Mb=/[\\^$.*+?()[\]{}|]/g,jb=/^\[object .+?Constructor\]$/,Sb=Function.prototype,$b=Object.prototype,Eb=Sb.toString,_b=$b.hasOwnProperty,Lb=RegExp("^"+Eb.call(_b).replace(Mb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tb(e){if(!Ss(e)||xb(e))return!1;var t=vb(e)?Lb:jb;return t.test(he(e))}var Ob=Tb;function Nb(e,t){return e?.[t]}var Db=Nb;function Pb(e,t){var r=Db(e,t);return Ob(r)?r:void 0}var He=Pb,zb=He(Y,"WeakMap"),xo=zb;function Ub(e,t){return e===t||e!==e&&t!==t}var Rb=Ub,Fb=9007199254740991;function Vb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fb}var Bb=Vb,tK=Object.prototype,qb="[object Arguments]";function Gb(e){return jo(e)&&wr(e)==qb}var fs=Gb,$s=Object.prototype,Yb=$s.hasOwnProperty,Hb=$s.propertyIsEnumerable,rK=fs(function(){return arguments}())?fs:function(e){return jo(e)&&Yb.call(e,"callee")&&!Hb.call(e,"callee")},Es=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ys=Es&&typeof module=="object"&&module&&!module.nodeType&&module,Zb=ys&&ys.exports===Es,ms=Zb?Y.Buffer:void 0,iK=ms?ms.isBuffer:void 0,Qb="[object Arguments]",Wb="[object Array]",Kb="[object Boolean]",Jb="[object Date]",Xb="[object Error]",eh="[object Function]",th="[object Map]",rh="[object Number]",ih="[object Object]",nh="[object RegExp]",oh="[object Set]",ah="[object String]",lh="[object WeakMap]",sh="[object ArrayBuffer]",uh="[object DataView]",ch="[object Float32Array]",dh="[object Float64Array]",ph="[object Int8Array]",gh="[object Int16Array]",fh="[object Int32Array]",yh="[object Uint8Array]",mh="[object Uint8ClampedArray]",bh="[object Uint16Array]",hh="[object Uint32Array]",E={};E[ch]=E[dh]=E[ph]=E[gh]=E[fh]=E[yh]=E[mh]=E[bh]=E[hh]=!0;E[Qb]=E[Wb]=E[sh]=E[Kb]=E[uh]=E[Jb]=E[Xb]=E[eh]=E[th]=E[rh]=E[ih]=E[nh]=E[oh]=E[ah]=E[lh]=!1;function vh(e){return jo(e)&&Bb(e.length)&&!!E[wr(e)]}var wh=vh;function kh(e){return function(t){return e(t)}}var xh=kh,_s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=_s&&typeof module=="object"&&module&&!module.nodeType&&module,Ih=br&&br.exports===_s,wo=Ih&&Ms.process,Ah=function(){try{var e=br&&br.require&&br.require("util").types;return e||wo&&wo.binding&&wo.binding("util")}catch{}}(),bs=Ah,hs=bs&&bs.isTypedArray,nK=hs?xh(hs):wh,Ch=Object.prototype,oK=Ch.hasOwnProperty;function Mh(e,t){return function(r){return e(t(r))}}var jh=Mh,aK=jh(Object.keys,Object),Sh=Object.prototype,lK=Sh.hasOwnProperty,$h=He(Object,"create"),hr=$h;function Eh(){this.__data__=hr?hr(null):{},this.size=0}var _h=Eh;function Lh(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Th=Lh,Oh="__lodash_hash_undefined__",Nh=Object.prototype,Dh=Nh.hasOwnProperty;function Ph(e){var t=this.__data__;if(hr){var r=t[e];return r===Oh?void 0:r}return Dh.call(t,e)?t[e]:void 0}var zh=Ph,Uh=Object.prototype,Rh=Uh.hasOwnProperty;function Fh(e){var t=this.__data__;return hr?t[e]!==void 0:Rh.call(t,e)}var Vh=Fh,Bh="__lodash_hash_undefined__";function qh(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?Bh:t,this}var Gh=qh;function Ze(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ze.prototype.clear=_h;Ze.prototype.delete=Th;Ze.prototype.get=zh;Ze.prototype.has=Vh;Ze.prototype.set=Gh;var vs=Ze;function Yh(){this.__data__=[],this.size=0}var Hh=Yh;function Zh(e,t){for(var r=e.length;r--;)if(Rb(e[r][0],t))return r;return-1}var Ji=Zh,Qh=Array.prototype,Wh=Qh.splice;function Kh(e){var t=this.__data__,r=Ji(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Wh.call(t,r,1),--this.size,!0}var Jh=Kh;function Xh(e){var t=this.__data__,r=Ji(t,e);return r<0?void 0:t[r][1]}var e0=Xh;function t0(e){return Ji(this.__data__,e)>-1}var r0=t0;function i0(e,t){var r=this.__data__,i=Ji(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var n0=i0;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=Hh;Qe.prototype.delete=Jh;Qe.prototype.get=e0;Qe.prototype.has=r0;Qe.prototype.set=n0;var Xi=Qe,o0=He(Y,"Map"),vr=o0;function a0(){this.size=0,this.__data__={hash:new vs,map:new(vr||Xi),string:new vs}}var l0=a0;function s0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var u0=s0;function c0(e,t){var r=e.__data__;return u0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var en=c0;function d0(e){var t=en(this,e).delete(e);return this.size-=t?1:0,t}var p0=d0;function g0(e){return en(this,e).get(e)}var f0=g0;function y0(e){return en(this,e).has(e)}var m0=y0;function b0(e,t){var r=en(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h0=b0;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=l0;We.prototype.delete=p0;We.prototype.get=f0;We.prototype.has=m0;We.prototype.set=h0;var Ls=We;function v0(){this.__data__=new Xi,this.size=0}var w0=v0;function k0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var x0=k0;function I0(e){return this.__data__.get(e)}var A0=I0;function C0(e){return this.__data__.has(e)}var M0=C0,j0=200;function S0(e,t){var r=this.__data__;if(r instanceof Xi){var i=r.__data__;if(!vr||i.length<j0-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ls(i)}return r.set(e,t),this.size=r.size,this}var $0=S0;function kr(e){var t=this.__data__=new Xi(e);this.size=t.size}kr.prototype.clear=w0;kr.prototype.delete=x0;kr.prototype.get=A0;kr.prototype.has=M0;kr.prototype.set=$0;var E0=Object.prototype,sK=E0.propertyIsEnumerable,_0=He(Y,"DataView"),Io=_0,L0=He(Y,"Promise"),Ao=L0,T0=He(Y,"Set"),Co=T0,ws="[object Map]",O0="[object Object]",ks="[object Promise]",xs="[object Set]",Is="[object WeakMap]",As="[object DataView]",N0=he(Io),D0=he(vr),P0=he(Ao),z0=he(Co),U0=he(xo),Ge=wr;(Io&&Ge(new Io(new ArrayBuffer(1)))!=As||vr&&Ge(new vr)!=ws||Ao&&Ge(Ao.resolve())!=ks||Co&&Ge(new Co)!=xs||xo&&Ge(new xo)!=Is)&&(Ge=function(e){var t=wr(e),r=t==O0?e.constructor:void 0,i=r?he(r):"";if(i)switch(i){case N0:return As;case D0:return ws;case P0:return ks;case z0:return xs;case U0:return Is}return t});var uK=Y.Uint8Array,R0="__lodash_hash_undefined__";function F0(e){return this.__data__.set(e,R0),this}var V0=F0;function B0(e){return this.__data__.has(e)}var q0=B0;function Mo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ls;++t<r;)this.add(e[t])}Mo.prototype.add=Mo.prototype.push=V0;Mo.prototype.has=q0;var Cs=Ye?Ye.prototype:void 0,cK=Cs?Cs.valueOf:void 0,G0=Object.prototype,dK=G0.hasOwnProperty,Y0=Object.prototype,pK=Y0.hasOwnProperty,gK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),fK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yK=new RegExp(/[A-Fa-f0-9]{2}/,"g");var tn=class Ts{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 Ts),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 H0="ly.img.ai";function Os(e){return`${H0}.${e}`}function Ns(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 ff=typeof global=="object"&&global&&global.Object===Object&&global,bs=ff,yf=typeof self=="object"&&self&&self.Object===Object&&self,mf=bs||yf||Function("return this")(),Q=mf,hf=Q.Symbol,qe=hf,vs=Object.prototype,bf=vs.hasOwnProperty,vf=vs.toString,fr=qe?qe.toStringTag:void 0;function wf(e){var t=bf.call(e,fr),r=e[fr];try{e[fr]=void 0;var i=!0}catch{}var n=vf.call(e);return i&&(t?e[fr]=r:delete e[fr]),n}var kf=wf,xf=Object.prototype,If=xf.toString;function Af(e){return If.call(e)}var Cf=Af,Mf="[object Null]",jf="[object Undefined]",ns=qe?qe.toStringTag:void 0;function Sf(e){return e==null?e===void 0?jf:Mf:ns&&ns in Object(e)?kf(e):Cf(e)}var br=Sf;function $f(e){return e!=null&&typeof e=="object"}var Lo=$f,KW=Array.isArray;function _f(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ws=_f,Ef="[object AsyncFunction]",Lf="[object Function]",Tf="[object GeneratorFunction]",Of="[object Proxy]";function Nf(e){if(!ws(e))return!1;var t=br(e);return t==Lf||t==Tf||t==Ef||t==Of}var Df=Nf,Pf=Q["__core-js_shared__"],Co=Pf,os=function(){var e=/[^.]+$/.exec(Co&&Co.keys&&Co.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function zf(e){return!!os&&os in e}var Uf=zf,Rf=Function.prototype,Ff=Rf.toString;function Vf(e){if(e!=null){try{return Ff.call(e)}catch{}try{return e+""}catch{}}return""}var ke=Vf,Bf=/[\\^$.*+?()[\]{}|]/g,qf=/^\[object .+?Constructor\]$/,Gf=Function.prototype,Yf=Object.prototype,Hf=Gf.toString,Zf=Yf.hasOwnProperty,Qf=RegExp("^"+Hf.call(Zf).replace(Bf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Wf(e){if(!ws(e)||Uf(e))return!1;var t=Df(e)?Qf:qf;return t.test(ke(e))}var Kf=Wf;function Jf(e,t){return e?.[t]}var Xf=Jf;function ey(e,t){var r=Xf(e,t);return Kf(r)?r:void 0}var Ge=ey,ty=Ge(Q,"WeakMap"),jo=ty;function ry(e,t){return e===t||e!==e&&t!==t}var iy=ry,ny=9007199254740991;function oy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ny}var ay=oy;var JW=Object.prototype;var ly="[object Arguments]";function sy(e){return Lo(e)&&br(e)==ly}var as=sy,ks=Object.prototype,uy=ks.hasOwnProperty,cy=ks.propertyIsEnumerable,XW=as(function(){return arguments}())?as:function(e){return Lo(e)&&uy.call(e,"callee")&&!cy.call(e,"callee")};var xs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ls=xs&&typeof module=="object"&&module&&!module.nodeType&&module,dy=ls&&ls.exports===xs,ss=dy?Q.Buffer:void 0,eK=ss?ss.isBuffer:void 0;var py="[object Arguments]",gy="[object Array]",fy="[object Boolean]",yy="[object Date]",my="[object Error]",hy="[object Function]",by="[object Map]",vy="[object Number]",wy="[object Object]",ky="[object RegExp]",xy="[object Set]",Iy="[object String]",Ay="[object WeakMap]",Cy="[object ArrayBuffer]",My="[object DataView]",jy="[object Float32Array]",Sy="[object Float64Array]",$y="[object Int8Array]",_y="[object Int16Array]",Ey="[object Int32Array]",Ly="[object Uint8Array]",Ty="[object Uint8ClampedArray]",Oy="[object Uint16Array]",Ny="[object Uint32Array]",L={};L[jy]=L[Sy]=L[$y]=L[_y]=L[Ey]=L[Ly]=L[Ty]=L[Oy]=L[Ny]=!0;L[py]=L[gy]=L[Cy]=L[fy]=L[My]=L[yy]=L[my]=L[hy]=L[by]=L[vy]=L[wy]=L[ky]=L[xy]=L[Iy]=L[Ay]=!1;function Dy(e){return Lo(e)&&ay(e.length)&&!!L[br(e)]}var Py=Dy;function zy(e){return function(t){return e(t)}}var Uy=zy,Is=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yr=Is&&typeof module=="object"&&module&&!module.nodeType&&module,Ry=yr&&yr.exports===Is,Mo=Ry&&bs.process,Fy=function(){try{var e=yr&&yr.require&&yr.require("util").types;return e||Mo&&Mo.binding&&Mo.binding("util")}catch{}}(),us=Fy,cs=us&&us.isTypedArray,tK=cs?Uy(cs):Py;var Vy=Object.prototype,rK=Vy.hasOwnProperty;function By(e,t){return function(r){return e(t(r))}}var qy=By,iK=qy(Object.keys,Object);var Gy=Object.prototype,nK=Gy.hasOwnProperty;var Yy=Ge(Object,"create"),mr=Yy;function Hy(){this.__data__=mr?mr(null):{},this.size=0}var Zy=Hy;function Qy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Wy=Qy,Ky="__lodash_hash_undefined__",Jy=Object.prototype,Xy=Jy.hasOwnProperty;function em(e){var t=this.__data__;if(mr){var r=t[e];return r===Ky?void 0:r}return Xy.call(t,e)?t[e]:void 0}var tm=em,rm=Object.prototype,im=rm.hasOwnProperty;function nm(e){var t=this.__data__;return mr?t[e]!==void 0:im.call(t,e)}var om=nm,am="__lodash_hash_undefined__";function lm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=mr&&t===void 0?am:t,this}var sm=lm;function Ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ye.prototype.clear=Zy;Ye.prototype.delete=Wy;Ye.prototype.get=tm;Ye.prototype.has=om;Ye.prototype.set=sm;var ds=Ye;function um(){this.__data__=[],this.size=0}var cm=um;function dm(e,t){for(var r=e.length;r--;)if(iy(e[r][0],t))return r;return-1}var cn=dm,pm=Array.prototype,gm=pm.splice;function fm(e){var t=this.__data__,r=cn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():gm.call(t,r,1),--this.size,!0}var ym=fm;function mm(e){var t=this.__data__,r=cn(t,e);return r<0?void 0:t[r][1]}var hm=mm;function bm(e){return cn(this.__data__,e)>-1}var vm=bm;function wm(e,t){var r=this.__data__,i=cn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var km=wm;function He(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}He.prototype.clear=cm;He.prototype.delete=ym;He.prototype.get=hm;He.prototype.has=vm;He.prototype.set=km;var dn=He,xm=Ge(Q,"Map"),hr=xm;function Im(){this.size=0,this.__data__={hash:new ds,map:new(hr||dn),string:new ds}}var Am=Im;function Cm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Mm=Cm;function jm(e,t){var r=e.__data__;return Mm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var pn=jm;function Sm(e){var t=pn(this,e).delete(e);return this.size-=t?1:0,t}var $m=Sm;function _m(e){return pn(this,e).get(e)}var Em=_m;function Lm(e){return pn(this,e).has(e)}var Tm=Lm;function Om(e,t){var r=pn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Nm=Om;function Ze(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ze.prototype.clear=Am;Ze.prototype.delete=$m;Ze.prototype.get=Em;Ze.prototype.has=Tm;Ze.prototype.set=Nm;var As=Ze;function Dm(){this.__data__=new dn,this.size=0}var Pm=Dm;function zm(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Um=zm;function Rm(e){return this.__data__.get(e)}var Fm=Rm;function Vm(e){return this.__data__.has(e)}var Bm=Vm,qm=200;function Gm(e,t){var r=this.__data__;if(r instanceof dn){var i=r.__data__;if(!hr||i.length<qm-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new As(i)}return r.set(e,t),this.size=r.size,this}var Ym=Gm;function vr(e){var t=this.__data__=new dn(e);this.size=t.size}vr.prototype.clear=Pm;vr.prototype.delete=Um;vr.prototype.get=Fm;vr.prototype.has=Bm;vr.prototype.set=Ym;var Hm=Object.prototype,oK=Hm.propertyIsEnumerable;var Zm=Ge(Q,"DataView"),So=Zm,Qm=Ge(Q,"Promise"),$o=Qm,Wm=Ge(Q,"Set"),_o=Wm,ps="[object Map]",Km="[object Object]",gs="[object Promise]",fs="[object Set]",ys="[object WeakMap]",ms="[object DataView]",Jm=ke(So),Xm=ke(hr),eh=ke($o),th=ke(_o),rh=ke(jo),Be=br;(So&&Be(new So(new ArrayBuffer(1)))!=ms||hr&&Be(new hr)!=ps||$o&&Be($o.resolve())!=gs||_o&&Be(new _o)!=fs||jo&&Be(new jo)!=ys)&&(Be=function(e){var t=br(e),r=t==Km?e.constructor:void 0,i=r?ke(r):"";if(i)switch(i){case Jm:return ms;case Xm:return ps;case eh:return gs;case th:return fs;case rh:return ys}return t});var aK=Q.Uint8Array;var ih="__lodash_hash_undefined__";function nh(e){return this.__data__.set(e,ih),this}var oh=nh;function ah(e){return this.__data__.has(e)}var lh=ah;function Eo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new As;++t<r;)this.add(e[t])}Eo.prototype.add=Eo.prototype.push=oh;Eo.prototype.has=lh;var hs=qe?qe.prototype:void 0,lK=hs?hs.valueOf:void 0;var sh=Object.prototype,sK=sh.hasOwnProperty;var uh=Object.prototype,uK=uh.hasOwnProperty;var cK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function ch(e){return e!==void 0}var Cs=ch;var dh=typeof global=="object"&&global&&global.Object===Object&&global,Rs=dh,ph=typeof self=="object"&&self&&self.Object===Object&&self,gh=Rs||ph||Function("return this")(),W=gh,fh=W.Symbol,We=fh,Fs=Object.prototype,yh=Fs.hasOwnProperty,mh=Fs.toString,wr=We?We.toStringTag:void 0;function hh(e){var t=yh.call(e,wr),r=e[wr];try{e[wr]=void 0;var i=!0}catch{}var n=mh.call(e);return i&&(t?e[wr]=r:delete e[wr]),n}var bh=hh,vh=Object.prototype,wh=vh.toString;function kh(e){return wh.call(e)}var xh=kh,Ih="[object Null]",Ah="[object Undefined]",Ms=We?We.toStringTag:void 0;function Ch(e){return e==null?e===void 0?Ah:Ih:Ms&&Ms in Object(e)?bh(e):xh(e)}var Ar=Ch;function Mh(e){return e!=null&&typeof e=="object"}var Fo=Mh,fK=Array.isArray;function jh(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vs=jh,Sh="[object AsyncFunction]",$h="[object Function]",_h="[object GeneratorFunction]",Eh="[object Proxy]";function Lh(e){if(!Vs(e))return!1;var t=Ar(e);return t==$h||t==_h||t==Sh||t==Eh}var Th=Lh,Oh=W["__core-js_shared__"],To=Oh,js=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Nh(e){return!!js&&js in e}var Dh=Nh,Ph=Function.prototype,zh=Ph.toString;function Uh(e){if(e!=null){try{return zh.call(e)}catch{}try{return e+""}catch{}}return""}var xe=Uh,Rh=/[\\^$.*+?()[\]{}|]/g,Fh=/^\[object .+?Constructor\]$/,Vh=Function.prototype,Bh=Object.prototype,qh=Vh.toString,Gh=Bh.hasOwnProperty,Yh=RegExp("^"+qh.call(Gh).replace(Rh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Hh(e){if(!Vs(e)||Dh(e))return!1;var t=Th(e)?Yh:Fh;return t.test(xe(e))}var Zh=Hh;function Qh(e,t){return e?.[t]}var Wh=Qh;function Kh(e,t){var r=Wh(e,t);return Zh(r)?r:void 0}var Ke=Kh,Jh=Ke(W,"WeakMap"),Do=Jh;function Xh(e,t){return e===t||e!==e&&t!==t}var eb=Xh,tb=9007199254740991;function rb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tb}var ib=rb,yK=Object.prototype,nb="[object Arguments]";function ob(e){return Fo(e)&&Ar(e)==nb}var Ss=ob,Bs=Object.prototype,ab=Bs.hasOwnProperty,lb=Bs.propertyIsEnumerable,mK=Ss(function(){return arguments}())?Ss:function(e){return Fo(e)&&ab.call(e,"callee")&&!lb.call(e,"callee")},qs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$s=qs&&typeof module=="object"&&module&&!module.nodeType&&module,sb=$s&&$s.exports===qs,_s=sb?W.Buffer:void 0,hK=_s?_s.isBuffer:void 0,ub="[object Arguments]",cb="[object Array]",db="[object Boolean]",pb="[object Date]",gb="[object Error]",fb="[object Function]",yb="[object Map]",mb="[object Number]",hb="[object Object]",bb="[object RegExp]",vb="[object Set]",wb="[object String]",kb="[object WeakMap]",xb="[object ArrayBuffer]",Ib="[object DataView]",Ab="[object Float32Array]",Cb="[object Float64Array]",Mb="[object Int8Array]",jb="[object Int16Array]",Sb="[object Int32Array]",$b="[object Uint8Array]",_b="[object Uint8ClampedArray]",Eb="[object Uint16Array]",Lb="[object Uint32Array]",T={};T[Ab]=T[Cb]=T[Mb]=T[jb]=T[Sb]=T[$b]=T[_b]=T[Eb]=T[Lb]=!0;T[ub]=T[cb]=T[xb]=T[db]=T[Ib]=T[pb]=T[gb]=T[fb]=T[yb]=T[mb]=T[hb]=T[bb]=T[vb]=T[wb]=T[kb]=!1;function Tb(e){return Fo(e)&&ib(e.length)&&!!T[Ar(e)]}var Ob=Tb;function Nb(e){return function(t){return e(t)}}var Db=Nb,Gs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kr=Gs&&typeof module=="object"&&module&&!module.nodeType&&module,Pb=kr&&kr.exports===Gs,Oo=Pb&&Rs.process,zb=function(){try{var e=kr&&kr.require&&kr.require("util").types;return e||Oo&&Oo.binding&&Oo.binding("util")}catch{}}(),Es=zb,Ls=Es&&Es.isTypedArray,bK=Ls?Db(Ls):Ob,Ub=Object.prototype,vK=Ub.hasOwnProperty;function Rb(e,t){return function(r){return e(t(r))}}var Fb=Rb,wK=Fb(Object.keys,Object),Vb=Object.prototype,kK=Vb.hasOwnProperty,Bb=Ke(Object,"create"),xr=Bb;function qb(){this.__data__=xr?xr(null):{},this.size=0}var Gb=qb;function Yb(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Hb=Yb,Zb="__lodash_hash_undefined__",Qb=Object.prototype,Wb=Qb.hasOwnProperty;function Kb(e){var t=this.__data__;if(xr){var r=t[e];return r===Zb?void 0:r}return Wb.call(t,e)?t[e]:void 0}var Jb=Kb,Xb=Object.prototype,e0=Xb.hasOwnProperty;function t0(e){var t=this.__data__;return xr?t[e]!==void 0:e0.call(t,e)}var r0=t0,i0="__lodash_hash_undefined__";function n0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xr&&t===void 0?i0:t,this}var o0=n0;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=Gb;Je.prototype.delete=Hb;Je.prototype.get=Jb;Je.prototype.has=r0;Je.prototype.set=o0;var Ts=Je;function a0(){this.__data__=[],this.size=0}var l0=a0;function s0(e,t){for(var r=e.length;r--;)if(eb(e[r][0],t))return r;return-1}var gn=s0,u0=Array.prototype,c0=u0.splice;function d0(e){var t=this.__data__,r=gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():c0.call(t,r,1),--this.size,!0}var p0=d0;function g0(e){var t=this.__data__,r=gn(t,e);return r<0?void 0:t[r][1]}var f0=g0;function y0(e){return gn(this.__data__,e)>-1}var m0=y0;function h0(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 b0=h0;function Xe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Xe.prototype.clear=l0;Xe.prototype.delete=p0;Xe.prototype.get=f0;Xe.prototype.has=m0;Xe.prototype.set=b0;var fn=Xe,v0=Ke(W,"Map"),Ir=v0;function w0(){this.size=0,this.__data__={hash:new Ts,map:new(Ir||fn),string:new Ts}}var k0=w0;function x0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var I0=x0;function A0(e,t){var r=e.__data__;return I0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var yn=A0;function C0(e){var t=yn(this,e).delete(e);return this.size-=t?1:0,t}var M0=C0;function j0(e){return yn(this,e).get(e)}var S0=j0;function $0(e){return yn(this,e).has(e)}var _0=$0;function E0(e,t){var r=yn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var L0=E0;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=k0;et.prototype.delete=M0;et.prototype.get=S0;et.prototype.has=_0;et.prototype.set=L0;var Ys=et;function T0(){this.__data__=new fn,this.size=0}var O0=T0;function N0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var D0=N0;function P0(e){return this.__data__.get(e)}var z0=P0;function U0(e){return this.__data__.has(e)}var R0=U0,F0=200;function V0(e,t){var r=this.__data__;if(r instanceof fn){var i=r.__data__;if(!Ir||i.length<F0-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ys(i)}return r.set(e,t),this.size=r.size,this}var B0=V0;function Cr(e){var t=this.__data__=new fn(e);this.size=t.size}Cr.prototype.clear=O0;Cr.prototype.delete=D0;Cr.prototype.get=z0;Cr.prototype.has=R0;Cr.prototype.set=B0;var q0=Object.prototype,xK=q0.propertyIsEnumerable,G0=Ke(W,"DataView"),Po=G0,Y0=Ke(W,"Promise"),zo=Y0,H0=Ke(W,"Set"),Uo=H0,Os="[object Map]",Z0="[object Object]",Ns="[object Promise]",Ds="[object Set]",Ps="[object WeakMap]",zs="[object DataView]",Q0=xe(Po),W0=xe(Ir),K0=xe(zo),J0=xe(Uo),X0=xe(Do),Qe=Ar;(Po&&Qe(new Po(new ArrayBuffer(1)))!=zs||Ir&&Qe(new Ir)!=Os||zo&&Qe(zo.resolve())!=Ns||Uo&&Qe(new Uo)!=Ds||Do&&Qe(new Do)!=Ps)&&(Qe=function(e){var t=Ar(e),r=t==Z0?e.constructor:void 0,i=r?xe(r):"";if(i)switch(i){case Q0:return zs;case W0:return Os;case K0:return Ns;case J0:return Ds;case X0:return Ps}return t});var IK=W.Uint8Array,e2="__lodash_hash_undefined__";function t2(e){return this.__data__.set(e,e2),this}var r2=t2;function i2(e){return this.__data__.has(e)}var n2=i2;function Ro(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ys;++t<r;)this.add(e[t])}Ro.prototype.add=Ro.prototype.push=r2;Ro.prototype.has=n2;var Us=We?We.prototype:void 0,AK=Us?Us.valueOf:void 0,o2=Object.prototype,CK=o2.hasOwnProperty,a2=Object.prototype,MK=a2.hasOwnProperty,jK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$K=new RegExp(/[A-Fa-f0-9]{2}/,"g");var mn=class Hs{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 Hs),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 l2="ly.img.ai";function Zs(e){return`${l2}.${e}`}function Qs(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 ko="@imgly/plugin-ai-generation",mK=`
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 No="@imgly/plugin-ai-generation",_K=`
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="${ko}/image"
22
+ id="${No}/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="${ko}/video"
34
+ id="${No}/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="${ko}/audio"
45
+ id="${No}/audio"
46
46
  >
47
47
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
48
48
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -62,10 +62,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
62
62
 
63
63
  </symbol>
64
64
  </svg>
65
- `;var Z0=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Xe(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Xe(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 Xe(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Xe(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 Xe(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]=Xe(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]=Xe(n,t,a)}return e}var Q0=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},W0=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)}},Iu=W0,K0=typeof global=="object"&&global&&global.Object===Object&&global,Au=K0,J0=typeof self=="object"&&self&&self.Object===Object&&self,X0=Au||J0||Function("return this")(),H=X0,e2=H.Symbol,et=e2,Cu=Object.prototype,t2=Cu.hasOwnProperty,r2=Cu.toString,xr=et?et.toStringTag:void 0;function i2(e){var t=t2.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=r2.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var n2=i2,o2=Object.prototype,a2=o2.toString;function l2(e){return a2.call(e)}var s2=l2,u2="[object Null]",c2="[object Undefined]",Ds=et?et.toStringTag:void 0;function d2(e){return e==null?e===void 0?c2:u2:Ds&&Ds in Object(e)?n2(e):s2(e)}var Nr=d2;function p2(e){return e!=null&&typeof e=="object"}var Qo=p2,hK=Array.isArray;function g2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Mu=g2,f2="[object AsyncFunction]",y2="[object Function]",m2="[object GeneratorFunction]",b2="[object Proxy]";function h2(e){if(!Mu(e))return!1;var t=Nr(e);return t==y2||t==m2||t==f2||t==b2}var v2=h2,w2=H["__core-js_shared__"],So=w2,Ps=function(){var e=/[^.]+$/.exec(So&&So.keys&&So.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function k2(e){return!!Ps&&Ps in e}var x2=k2,I2=Function.prototype,A2=I2.toString;function C2(e){if(e!=null){try{return A2.call(e)}catch{}try{return e+""}catch{}}return""}var ke=C2,M2=/[\\^$.*+?()[\]{}|]/g,j2=/^\[object .+?Constructor\]$/,S2=Function.prototype,$2=Object.prototype,E2=S2.toString,_2=$2.hasOwnProperty,L2=RegExp("^"+E2.call(_2).replace(M2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function T2(e){if(!Mu(e)||x2(e))return!1;var t=v2(e)?L2:j2;return t.test(ke(e))}var O2=T2;function N2(e,t){return e?.[t]}var D2=N2;function P2(e,t){var r=D2(e,t);return O2(r)?r:void 0}var rt=P2,z2=rt(H,"WeakMap"),Po=z2;function U2(e,t){return e===t||e!==e&&t!==t}var R2=U2,F2=9007199254740991;function V2(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F2}var B2=V2,vK=Object.prototype,q2="[object Arguments]";function G2(e){return Qo(e)&&Nr(e)==q2}var zs=G2,ju=Object.prototype,Y2=ju.hasOwnProperty,H2=ju.propertyIsEnumerable,wK=zs(function(){return arguments}())?zs:function(e){return Qo(e)&&Y2.call(e,"callee")&&!H2.call(e,"callee")},Su=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Us=Su&&typeof module=="object"&&module&&!module.nodeType&&module,Z2=Us&&Us.exports===Su,Rs=Z2?H.Buffer:void 0,kK=Rs?Rs.isBuffer:void 0,Q2="[object Arguments]",W2="[object Array]",K2="[object Boolean]",J2="[object Date]",X2="[object Error]",e4="[object Function]",t4="[object Map]",r4="[object Number]",i4="[object Object]",n4="[object RegExp]",o4="[object Set]",a4="[object String]",l4="[object WeakMap]",s4="[object ArrayBuffer]",u4="[object DataView]",c4="[object Float32Array]",d4="[object Float64Array]",p4="[object Int8Array]",g4="[object Int16Array]",f4="[object Int32Array]",y4="[object Uint8Array]",m4="[object Uint8ClampedArray]",b4="[object Uint16Array]",h4="[object Uint32Array]",_={};_[c4]=_[d4]=_[p4]=_[g4]=_[f4]=_[y4]=_[m4]=_[b4]=_[h4]=!0;_[Q2]=_[W2]=_[s4]=_[K2]=_[u4]=_[J2]=_[X2]=_[e4]=_[t4]=_[r4]=_[i4]=_[n4]=_[o4]=_[a4]=_[l4]=!1;function v4(e){return Qo(e)&&B2(e.length)&&!!_[Nr(e)]}var w4=v4;function k4(e){return function(t){return e(t)}}var x4=k4,$u=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$r=$u&&typeof module=="object"&&module&&!module.nodeType&&module,I4=$r&&$r.exports===$u,$o=I4&&Au.process,A4=function(){try{var e=$r&&$r.require&&$r.require("util").types;return e||$o&&$o.binding&&$o.binding("util")}catch{}}(),Fs=A4,Vs=Fs&&Fs.isTypedArray,xK=Vs?x4(Vs):w4,C4=Object.prototype,IK=C4.hasOwnProperty;function M4(e,t){return function(r){return e(t(r))}}var j4=M4,AK=j4(Object.keys,Object),S4=Object.prototype,CK=S4.hasOwnProperty,$4=rt(Object,"create"),_r=$4;function E4(){this.__data__=_r?_r(null):{},this.size=0}var _4=E4;function L4(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var T4=L4,O4="__lodash_hash_undefined__",N4=Object.prototype,D4=N4.hasOwnProperty;function P4(e){var t=this.__data__;if(_r){var r=t[e];return r===O4?void 0:r}return D4.call(t,e)?t[e]:void 0}var z4=P4,U4=Object.prototype,R4=U4.hasOwnProperty;function F4(e){var t=this.__data__;return _r?t[e]!==void 0:R4.call(t,e)}var V4=F4,B4="__lodash_hash_undefined__";function q4(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=_r&&t===void 0?B4:t,this}var G4=q4;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=_4;it.prototype.delete=T4;it.prototype.get=z4;it.prototype.has=V4;it.prototype.set=G4;var Bs=it;function Y4(){this.__data__=[],this.size=0}var H4=Y4;function Z4(e,t){for(var r=e.length;r--;)if(R2(e[r][0],t))return r;return-1}var pn=Z4,Q4=Array.prototype,W4=Q4.splice;function K4(e){var t=this.__data__,r=pn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():W4.call(t,r,1),--this.size,!0}var J4=K4;function X4(e){var t=this.__data__,r=pn(t,e);return r<0?void 0:t[r][1]}var e5=X4;function t5(e){return pn(this.__data__,e)>-1}var r5=t5;function i5(e,t){var r=this.__data__,i=pn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var n5=i5;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=H4;nt.prototype.delete=J4;nt.prototype.get=e5;nt.prototype.has=r5;nt.prototype.set=n5;var gn=nt,o5=rt(H,"Map"),Lr=o5;function a5(){this.size=0,this.__data__={hash:new Bs,map:new(Lr||gn),string:new Bs}}var l5=a5;function s5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var u5=s5;function c5(e,t){var r=e.__data__;return u5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var fn=c5;function d5(e){var t=fn(this,e).delete(e);return this.size-=t?1:0,t}var p5=d5;function g5(e){return fn(this,e).get(e)}var f5=g5;function y5(e){return fn(this,e).has(e)}var m5=y5;function b5(e,t){var r=fn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h5=b5;function ot(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ot.prototype.clear=l5;ot.prototype.delete=p5;ot.prototype.get=f5;ot.prototype.has=m5;ot.prototype.set=h5;var Eu=ot;function v5(){this.__data__=new gn,this.size=0}var w5=v5;function k5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var x5=k5;function I5(e){return this.__data__.get(e)}var A5=I5;function C5(e){return this.__data__.has(e)}var M5=C5,j5=200;function S5(e,t){var r=this.__data__;if(r instanceof gn){var i=r.__data__;if(!Lr||i.length<j5-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Eu(i)}return r.set(e,t),this.size=r.size,this}var $5=S5;function Dr(e){var t=this.__data__=new gn(e);this.size=t.size}Dr.prototype.clear=w5;Dr.prototype.delete=x5;Dr.prototype.get=A5;Dr.prototype.has=M5;Dr.prototype.set=$5;var E5=Object.prototype,MK=E5.propertyIsEnumerable,_5=rt(H,"DataView"),zo=_5,L5=rt(H,"Promise"),Uo=L5,T5=rt(H,"Set"),Ro=T5,qs="[object Map]",O5="[object Object]",Gs="[object Promise]",Ys="[object Set]",Hs="[object WeakMap]",Zs="[object DataView]",N5=ke(zo),D5=ke(Lr),P5=ke(Uo),z5=ke(Ro),U5=ke(Po),Ke=Nr;(zo&&Ke(new zo(new ArrayBuffer(1)))!=Zs||Lr&&Ke(new Lr)!=qs||Uo&&Ke(Uo.resolve())!=Gs||Ro&&Ke(new Ro)!=Ys||Po&&Ke(new Po)!=Hs)&&(Ke=function(e){var t=Nr(e),r=t==O5?e.constructor:void 0,i=r?ke(r):"";if(i)switch(i){case N5:return Zs;case D5:return qs;case P5:return Gs;case z5:return Ys;case U5:return Hs}return t});var jK=H.Uint8Array,R5="__lodash_hash_undefined__";function F5(e){return this.__data__.set(e,R5),this}var V5=F5;function B5(e){return this.__data__.has(e)}var q5=B5;function Fo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Eu;++t<r;)this.add(e[t])}Fo.prototype.add=Fo.prototype.push=V5;Fo.prototype.has=q5;var Qs=et?et.prototype:void 0,SK=Qs?Qs.valueOf:void 0,G5=Object.prototype,$K=G5.hasOwnProperty,Y5=Object.prototype,EK=Y5.hasOwnProperty,_K=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),LK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),TK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function H5(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function _u(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 Vo(e,t){let r=await _u(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 Z5(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 _u(i,t)}function Q5(e){return e!==void 0}var yn=Q5,Wo=class Lu{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Lu),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},Tu=class Ou{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ou),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 W5(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,b)=>s(l+1,f,b),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function K5({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 J5=K5,Eo="ly.img.ai.temp";async function X5(e,t){return e.engine.asset.findAllSources().includes(Eo)||e.engine.asset.addLocalSource(Eo),e.engine.asset.apply(Eo,t)}function e9(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 Nu(){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 t9(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 r9(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 Ko(e){return e instanceof Error&&e.name==="AbortError"}function i9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function n9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
65
+ `;var s2=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;it(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{it(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 it(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),it(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 it(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]=it(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]=it(n,t,a)}return e}var u2=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")}},c2=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)}},Pu=c2,d2=typeof global=="object"&&global&&global.Object===Object&&global,zu=d2,p2=typeof self=="object"&&self&&self.Object===Object&&self,g2=zu||p2||Function("return this")(),K=g2,f2=K.Symbol,nt=f2,Uu=Object.prototype,y2=Uu.hasOwnProperty,m2=Uu.toString,Mr=nt?nt.toStringTag:void 0;function h2(e){var t=y2.call(e,Mr),r=e[Mr];try{e[Mr]=void 0;var i=!0}catch{}var n=m2.call(e);return i&&(t?e[Mr]=r:delete e[Mr]),n}var b2=h2,v2=Object.prototype,w2=v2.toString;function k2(e){return w2.call(e)}var x2=k2,I2="[object Null]",A2="[object Undefined]",Ws=nt?nt.toStringTag:void 0;function C2(e){return e==null?e===void 0?A2:I2:Ws&&Ws in Object(e)?b2(e):x2(e)}var Ur=C2;function M2(e){return e!=null&&typeof e=="object"}var ua=M2,LK=Array.isArray;function j2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ru=j2,S2="[object AsyncFunction]",$2="[object Function]",_2="[object GeneratorFunction]",E2="[object Proxy]";function L2(e){if(!Ru(e))return!1;var t=Ur(e);return t==$2||t==_2||t==S2||t==E2}var T2=L2,O2=K["__core-js_shared__"],Vo=O2,Ks=function(){var e=/[^.]+$/.exec(Vo&&Vo.keys&&Vo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function N2(e){return!!Ks&&Ks in e}var D2=N2,P2=Function.prototype,z2=P2.toString;function U2(e){if(e!=null){try{return z2.call(e)}catch{}try{return e+""}catch{}}return""}var Ce=U2,R2=/[\\^$.*+?()[\]{}|]/g,F2=/^\[object .+?Constructor\]$/,V2=Function.prototype,B2=Object.prototype,q2=V2.toString,G2=B2.hasOwnProperty,Y2=RegExp("^"+q2.call(G2).replace(R2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function H2(e){if(!Ru(e)||D2(e))return!1;var t=T2(e)?Y2:F2;return t.test(Ce(e))}var Z2=H2;function Q2(e,t){return e?.[t]}var W2=Q2;function K2(e,t){var r=W2(e,t);return Z2(r)?r:void 0}var at=K2,J2=at(K,"WeakMap"),Ko=J2;function X2(e,t){return e===t||e!==e&&t!==t}var e4=X2,t4=9007199254740991;function r4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=t4}var i4=r4,TK=Object.prototype,n4="[object Arguments]";function o4(e){return ua(e)&&Ur(e)==n4}var Js=o4,Fu=Object.prototype,a4=Fu.hasOwnProperty,l4=Fu.propertyIsEnumerable,OK=Js(function(){return arguments}())?Js:function(e){return ua(e)&&a4.call(e,"callee")&&!l4.call(e,"callee")},Vu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xs=Vu&&typeof module=="object"&&module&&!module.nodeType&&module,s4=Xs&&Xs.exports===Vu,eu=s4?K.Buffer:void 0,NK=eu?eu.isBuffer:void 0,u4="[object Arguments]",c4="[object Array]",d4="[object Boolean]",p4="[object Date]",g4="[object Error]",f4="[object Function]",y4="[object Map]",m4="[object Number]",h4="[object Object]",b4="[object RegExp]",v4="[object Set]",w4="[object String]",k4="[object WeakMap]",x4="[object ArrayBuffer]",I4="[object DataView]",A4="[object Float32Array]",C4="[object Float64Array]",M4="[object Int8Array]",j4="[object Int16Array]",S4="[object Int32Array]",$4="[object Uint8Array]",_4="[object Uint8ClampedArray]",E4="[object Uint16Array]",L4="[object Uint32Array]",O={};O[A4]=O[C4]=O[M4]=O[j4]=O[S4]=O[$4]=O[_4]=O[E4]=O[L4]=!0;O[u4]=O[c4]=O[x4]=O[d4]=O[I4]=O[p4]=O[g4]=O[f4]=O[y4]=O[m4]=O[h4]=O[b4]=O[v4]=O[w4]=O[k4]=!1;function T4(e){return ua(e)&&i4(e.length)&&!!O[Ur(e)]}var O4=T4;function N4(e){return function(t){return e(t)}}var D4=N4,Bu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tr=Bu&&typeof module=="object"&&module&&!module.nodeType&&module,P4=Tr&&Tr.exports===Bu,Bo=P4&&zu.process,z4=function(){try{var e=Tr&&Tr.require&&Tr.require("util").types;return e||Bo&&Bo.binding&&Bo.binding("util")}catch{}}(),tu=z4,ru=tu&&tu.isTypedArray,DK=ru?D4(ru):O4,U4=Object.prototype,PK=U4.hasOwnProperty;function R4(e,t){return function(r){return e(t(r))}}var F4=R4,zK=F4(Object.keys,Object),V4=Object.prototype,UK=V4.hasOwnProperty,B4=at(Object,"create"),Nr=B4;function q4(){this.__data__=Nr?Nr(null):{},this.size=0}var G4=q4;function Y4(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var H4=Y4,Z4="__lodash_hash_undefined__",Q4=Object.prototype,W4=Q4.hasOwnProperty;function K4(e){var t=this.__data__;if(Nr){var r=t[e];return r===Z4?void 0:r}return W4.call(t,e)?t[e]:void 0}var J4=K4,X4=Object.prototype,e5=X4.hasOwnProperty;function t5(e){var t=this.__data__;return Nr?t[e]!==void 0:e5.call(t,e)}var r5=t5,i5="__lodash_hash_undefined__";function n5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Nr&&t===void 0?i5:t,this}var o5=n5;function lt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lt.prototype.clear=G4;lt.prototype.delete=H4;lt.prototype.get=J4;lt.prototype.has=r5;lt.prototype.set=o5;var iu=lt;function a5(){this.__data__=[],this.size=0}var l5=a5;function s5(e,t){for(var r=e.length;r--;)if(e4(e[r][0],t))return r;return-1}var Mn=s5,u5=Array.prototype,c5=u5.splice;function d5(e){var t=this.__data__,r=Mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():c5.call(t,r,1),--this.size,!0}var p5=d5;function g5(e){var t=this.__data__,r=Mn(t,e);return r<0?void 0:t[r][1]}var f5=g5;function y5(e){return Mn(this.__data__,e)>-1}var m5=y5;function h5(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 b5=h5;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=l5;st.prototype.delete=p5;st.prototype.get=f5;st.prototype.has=m5;st.prototype.set=b5;var jn=st,v5=at(K,"Map"),Dr=v5;function w5(){this.size=0,this.__data__={hash:new iu,map:new(Dr||jn),string:new iu}}var k5=w5;function x5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var I5=x5;function A5(e,t){var r=e.__data__;return I5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Sn=A5;function C5(e){var t=Sn(this,e).delete(e);return this.size-=t?1:0,t}var M5=C5;function j5(e){return Sn(this,e).get(e)}var S5=j5;function $5(e){return Sn(this,e).has(e)}var _5=$5;function E5(e,t){var r=Sn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var L5=E5;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=k5;ut.prototype.delete=M5;ut.prototype.get=S5;ut.prototype.has=_5;ut.prototype.set=L5;var qu=ut;function T5(){this.__data__=new jn,this.size=0}var O5=T5;function N5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var D5=N5;function P5(e){return this.__data__.get(e)}var z5=P5;function U5(e){return this.__data__.has(e)}var R5=U5,F5=200;function V5(e,t){var r=this.__data__;if(r instanceof jn){var i=r.__data__;if(!Dr||i.length<F5-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new qu(i)}return r.set(e,t),this.size=r.size,this}var B5=V5;function Rr(e){var t=this.__data__=new jn(e);this.size=t.size}Rr.prototype.clear=O5;Rr.prototype.delete=D5;Rr.prototype.get=z5;Rr.prototype.has=R5;Rr.prototype.set=B5;var q5=Object.prototype,RK=q5.propertyIsEnumerable,G5=at(K,"DataView"),Jo=G5,Y5=at(K,"Promise"),Xo=Y5,H5=at(K,"Set"),ea=H5,nu="[object Map]",Z5="[object Object]",ou="[object Promise]",au="[object Set]",lu="[object WeakMap]",su="[object DataView]",Q5=Ce(Jo),W5=Ce(Dr),K5=Ce(Xo),J5=Ce(ea),X5=Ce(Ko),tt=Ur;(Jo&&tt(new Jo(new ArrayBuffer(1)))!=su||Dr&&tt(new Dr)!=nu||Xo&&tt(Xo.resolve())!=ou||ea&&tt(new ea)!=au||Ko&&tt(new Ko)!=lu)&&(tt=function(e){var t=Ur(e),r=t==Z5?e.constructor:void 0,i=r?Ce(r):"";if(i)switch(i){case Q5:return su;case W5:return nu;case K5:return ou;case J5:return au;case X5:return lu}return t});var FK=K.Uint8Array,e9="__lodash_hash_undefined__";function t9(e){return this.__data__.set(e,e9),this}var r9=t9;function i9(e){return this.__data__.has(e)}var n9=i9;function ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new qu;++t<r;)this.add(e[t])}ta.prototype.add=ta.prototype.push=r9;ta.prototype.has=n9;var uu=nt?nt.prototype:void 0,VK=uu?uu.valueOf:void 0,o9=Object.prototype,BK=o9.hasOwnProperty,a9=Object.prototype,qK=a9.hasOwnProperty,GK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),YK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),HK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function l9(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Gu(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 ra(e,t){let r=await Gu(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 s9(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 Gu(i,t)}function u9(e){return e!==void 0}var $n=u9;function Fr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Vr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ca=class Yu{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 Yu),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))}},Hu=class Zu{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Zu),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 c9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function d9({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 p9=d9,qo="ly.img.ai.temp";async function g9(e,t){return e.engine.asset.findAllSources().includes(qo)||e.engine.asset.addLocalSource(qo),e.engine.asset.apply(qo,t)}function f9(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 Qu(){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 y9(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 m9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function da(e){return e instanceof Error&&e.name==="AbortError"}function h9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function b9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
66
66
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
67
67
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
68
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function o9(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var a9=o9;function l9(){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 Pr=l9;function s9(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),u9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:e9(e)})}function u9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Ws=s9,c9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Jo=c9;function d9(e,t,r){switch(t){case"image":return p9(e,r[t]);case"video":return g9(e,r[t]);case"sticker":return f9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function p9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Jo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function g9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Jo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function f9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Jo,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var y9=d9;async function m9(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 b9(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return h9(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return v9(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 w9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function b9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function h9(e,t,r){let i=t.width,n=t.height,a=await t9(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 v9(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 w9(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 Du=m9;function k9(e){switch(e.userFlow){case"placeholder":return I9(e);case"generation-only":return x9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function x9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ue(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ue(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(ue(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Nu(),c=await Du(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function I9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ue(t,r))return{status:"aborted"};let s=Nu(),c=y9(s,a,o);if(i=await X5(t,c),ue(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ue(t,r,i))return{status:"aborted"};if(l.status!=="success")return 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 Du(s,a,o,l.output);if(ue(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),ue(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)&&(Ko(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ue(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var A9=k9;function Xo(e){return`${e}.generating`}function C9(e){return`${e}.abort`}function M9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(C9(d),()=>{}),y=c.global(Xo(d),!1),f,b=y.value&&g,h=()=>{b&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},M;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=i();M=a.requiredInputs.every(v=>!C.input[v])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:M,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:v})=>{l.ui.closeDialog(v),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:v})=>{h(),l.ui.closeDialog(v),k.setValue(void 0)}}});k.setValue(C)}}:void 0,onClick:async()=>{f=new AbortController;let C=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let v=await A9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(v.status==="aborted")return;if(v.status==="error"){Ws(v.message,{cesdk:l,provider:t,getInput:i});return}if(v.status==="success"&&v.type==="sync"){let w=t.output.notification;j9(l,w,()=>({input:i().input,output:v.output}))}}catch(v){if(Ko(v))return;Ws(v,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.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 j9(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 Pu=M9;async function S9({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Xo(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Pu(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var $9=S9;function zu(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=zu(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 E9(e){return jr(e,{...e})}function _9(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 L9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return T9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function T9(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=O9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function O9(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 Uu=L9;function we(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function Ru(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 Fu(e,t,r,i,n,a,o){if(t.schema==null)return i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null?i.renderCustomProperty[t.id](e,t):void 0;let s=t,c=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null)return i.renderCustomProperty[t.id](e,t);switch(c){case"string":return t.schema.enum!=null?N9(e,s,r,i,n,a,o):Vu(e,s,r,i,n,a,o);case"boolean":return Bu(e,s,r,i,n,a,o);case"number":case"integer":return qu(e,s,r,i,n,a,o);case"object":return Bo(e,s,r,i,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return D9(e,s,r,i,n,a,o);break}default:console.error(`Unsupported property type: ${c}`)}}function Bo(e,t,r,i,n,a,o){let s=Uu(t.schema??{},i).reduce((c,l)=>{let u=Fu(e,l,r,i,n,a,o);return u!=null&&(c[l.id]=u()),c},{});return()=>({id:t.id,type:"object",value:s})}function Vu(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=we(t,r,o),g=c(u,t.schema.default??""),p=P9(t.schema),y=p?.component!=null&&p?.component==="TextArea"?"TextArea":"TextInput";return s[y](u,{inputLabel:d,placeholder:n.i18n?.prompt,...g}),()=>({id:t.id,type:"string",value:g.value})}function N9(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=we(t,r,o),{labels:g,icons:p}=Ru(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:we(t,r,o,h),icon:p[h]})),f=t.schema.default!=null?y.find(h=>h.id===t.schema.default)??y[0]:y[0],b=c(u,f);return s.Select(u,{inputLabel:d,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Bu(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=we(t,r,o),g=!!t.schema.default,p=c(u,g);return s.Checkbox(u,{inputLabel:d,...p}),()=>({id:t.id,type:"boolean",value:p.value})}function qu(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=we(t,r,o),g=t.schema.minimum,p=t.schema.maximum,y=t.schema.default;y==null&&(g!=null?y=g:p!=null?y=p:y=0);let f=c(u,y);if(g!=null&&p!=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"]),s.Slider(u,{inputLabel:d,min:g,max:p,step:b,...f})}else s.NumberInput(u,{inputLabel:d,min:g,max:p,...f});return()=>({id:t.id,type:"integer",value:f.value})}function D9(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=we(t,r,o),g=t.schema.anyOf??[],p=[],y={},f={},{labels:b,icons:h}=Ru(t.schema),M={string:Vu,boolean:Bu,integer:qu,object:Bo},k=(m,x)=>m.$ref?m.$ref.split("/").pop():x.split(".").pop()??x,C=(m,x)=>({id:m,label:we(t,r,o,x),icon:h[x]??h[m]});g.forEach((m,x)=>{let j=`${r.id}.${l}.anyOf[${x}]`;if(m.$ref||m.title){let I=m.$ref?m.$ref.split("/").pop():m.title;y[j]=()=>Bo(e,{id:j,schema:{...m,title:b[I]||I}},r,i,n,a,o),p.push(C(j,I))}else if(m.type==="string"&&m.enum)m.enum.forEach(I=>{p.push(C(I,I))});else if(m.type&&M[m.type]){let I=M[m.type];y[j]=()=>I(e,{id:j,schema:{...m,title:m.title}},r,i,n,a,o);let A=k(m,j);p.push(m.type==="string"&&!m.enum?{id:j,label:m.title||A,icon:m.title&&h[m.title]||h[A]}:C(j,A))}});let v=t.schema.default!=null?p.find(m=>m.id===t.schema.default)??p[0]:p[0],w=c(u,v);if(s.Select(u,{inputLabel:d,values:p,...w}),w.value.id in y){let m=y[w.value.id]();f[w.value.id]=m}return()=>{let m=f[w.value.id];return m!=null?{...m(),id:t.id}:{id:t.id,type:"string",value:w.value.id}}}function P9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var z9=Fu,U9={"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 Ks(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function R9(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Ks(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Ks(p);n[a(l.id,p)]=y}})}});let c={...U9,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function F9({options:e,provider:t,panelInput:r,config:i},n){let{id:a}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=E9(r.document),s=zu(o,r.inputReference);if(!_9(s,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let c=s,l=Uu(c,r);return R9(l,t,e,t.kind),u=>{let{builder:d}=u,g=[];d.Section(`${a}.schema.section`,{children:()=>{l.forEach(b=>{let h=z9(u,b,t,r,e,i,t.kind);h!=null&&(Array.isArray(h)?g.push(...h):g.push(h))})}});let p=g.map(b=>b()),y=b=>b.type==="object"?Object.entries(b.value).reduce((h,[M,k])=>(h[M]=y(k),h),{}):b.value,f=p.reduce((b,h)=>(b[h.id]=y(h),b),{});Pu(u,t,n,()=>({input:f}),()=>r.getBlockInput(f),{...e,requiredInputs:c.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var V9=F9;async function B9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return $9(e,t);case"schema":return V9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var q9=B9;function G9(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 Z0(o,r)),o}return i}var Y9=G9;function H9(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 Z9=H9,_o="@imgly/plugin-ai-generation",Q9=`
68
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function v9(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 w9=v9;function k9(){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 Br=k9;function x9(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),I9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:f9(e)})}function I9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var cu=x9,A9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",pa=A9;function C9(e,t,r){switch(t){case"image":return M9(e,r[t]);case"video":return j9(e,r[t]);case"sticker":return S9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function M9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function j9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function S9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:pa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var $9=C9;async function _9(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 E9(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 L9(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 T9(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 O9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function E9(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 L9(e,t,r){let i=t.width,n=t.height,a=await y9(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 T9(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 O9(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 Wu=_9;function N9(e){switch(e.userFlow){case"placeholder":return P9(e);case"generation-only":return D9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function D9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ge(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ge(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ge(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Qu(),c=await Wu(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function P9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ge(t,r))return{status:"aborted"};let s=Qu(),c=$9(s,a,o);if(i=await g9(t,c),ge(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ge(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;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 Wu(s,a,o,l.output);if(ge(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ge(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(da(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ge(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var z9=N9;function ga(e){return`${e}.generating`}function U9(e){return`${e}.abort`}function R9(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(U9(d),()=>{}),m=c.global(ga(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await z9({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(y.status==="aborted")return;if(y.status==="error"){cu(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;F9(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(da(y))return;cu(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function F9(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 Ku=R9;async function V9({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(ga(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ku(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var B9=V9;function Ju(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Er(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Ju(e,t.$ref),n={...Er(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Er(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Er(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Er(e,t[n],r));return i}return t}function q9(e){return Er(e,{...e})}function G9(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 Y9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return H9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function H9(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=Z9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Z9(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 Xu=Y9;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function ec(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 tc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?Q9(e,c,r,i,n,a,o,s):rc(e,c,r,i,n,a,o,s);case"boolean":return ic(e,c,r,i,n,a,o,s);case"number":case"integer":return nc(e,c,r,i,n,a,o,s);case"object":return ia(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 W9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ia(e,t,r,i,n,a,o,s){let c=Xu(t.schema??{},i).reduce((l,u)=>{let d=tc(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 rc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=Fr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=Vr(d,f,m,t.schema.default,""),b=l(p,h),w=K9(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function Q9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),{labels:m,icons:f}=ec(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Ae(t,r,o,x),icon:f[x]})),b=Fr(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=Vr(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}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=Ae(t,r,o),m=Fr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Vr(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function nc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Fr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=Vr(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function W9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=ec(t.schema),I=Fr(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:rc,boolean:ic,integer:nc,object:ia},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Ae(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>ia(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=Vr(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function K9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var J9=tc,X9={"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 du(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function e3(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||du(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||du(g);n[a(l.id,g)]=m}})}});let c={...X9,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function t3({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=q9(r.document),c=Ju(s,r.inputReference);if(!G9(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Xu(l,r);return e3(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=J9(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});Ku(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var r3=t3;async function i3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return B9(e,t);case"schema":return r3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var n3=i3;function o3(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 s2(o,r)),o}return i}var a3=o3;function l3(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 s3=l3,Go="@imgly/plugin-ai-generation",u3=`
69
69
  <svg>
70
70
  <symbol
71
71
  fill="none"
@@ -83,7 +83,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
83
83
  fill="none"
84
84
  xmlns="http://www.w3.org/2000/svg"
85
85
  viewBox="0 0 24 24"
86
- id="${_o}/image"
86
+ id="${Go}/image"
87
87
  >
88
88
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
89
89
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -95,7 +95,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
95
95
  fill="none"
96
96
  xmlns="http://www.w3.org/2000/svg"
97
97
  viewBox="0 0 24 24"
98
- id="${_o}/video"
98
+ id="${Go}/video"
99
99
  >
100
100
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
101
101
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -106,7 +106,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
106
106
  fill="none"
107
107
  xmlns="http://www.w3.org/2000/svg"
108
108
  viewBox="0 0 24 24"
109
- id="${_o}/audio"
109
+ id="${Go}/audio"
110
110
  >
111
111
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
112
112
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -126,8 +126,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
126
126
 
127
127
  </symbol>
128
128
  </svg>
129
- `,W9=Q9;function K9(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 Gu(2e3),await J9(t,e,r)):i(t,r)}async function J9(e,t,r){switch(t.kind){case"image":return X9(e,t,r);case"video":return e3(e,t,r);case"text":return t3(e,t,r);case"audio":return i3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function X9(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 Z5(s,r),l=await Vo(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
- `,"+")}`}}async function e3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function t3(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=Ir(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ir(n,o)}else"customPrompt"in e?a=Ir(n,"custom"):a=Ir(n,"improved");else a=Ir(n,"generated");return r3(a,r.abortSignal)}async function*r3(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 Gu(100)}return{kind:"text",text:e}}function Ir(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 i3(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:n3(220,i),duration:i,thumbnailUrl:void 0}}function n3(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 o3(i,44100)}function o3(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,b)=>{for(let h=0;h<b.length;h++)u.setUint8(f+h,b.charCodeAt(h))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let b=Math.max(-1,Math.min(1,e[f])),h=Math.round(b*32767);u.setInt16(g,h,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Gu(e){return new Promise(t=>{setTimeout(t,e)})}var a3=K9,Yu="USER_CANCEL";function l3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=W5([...e.provider.output.middleware??[],...r?.middlewares??[],J5({enable:r?.debug}),a3({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:r9(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ko(n)?{status:"aborted",message:n.message}:n===Yu?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var s3=l3;async function u3(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};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Wo.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=Y9(a),s=Z9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=s3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await q9(a,c);i9(r.cesdk,"@imgly/plugin-ai-generation",W9);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Tu.get().register(u),u}var Lo=u3;function c3(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 Q0(n,r,i);return r.engine.asset.addSource(a),a.id}var d3=c3;function Sr(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 p3(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Lo(e,u,r,i)));o.push(...l),a=f3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Lo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Lo(e,d,r,i)));o.push(...u),a=g3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=d3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(yn)}),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 g3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),b=[];f.value==="fromText"?b.push(...r):f.value==="fromImage"?b.push(...i):b.push(...r,...i);let h=r.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),M=i.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,h[0]),C=o.experimental.global(`${t}.selectedProvider.fromImage`,M[0]),v=f.value==="fromText"?k:f.value==="fromImage"?C:void 0,w=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,m=n.feature.isEnabled(w,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let x=d&&p&&r.length>0&&i.length>0,j=a&&x,I=b.length>1&&m;if((j||I)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(j&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Sr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Sr(e,"fromText.label"),icon:f.value!=="fromText"&&Js(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Sr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Js(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),I){let A=f.value==="fromText"?h:f.value==="fromImage"?M:[...h,...M];v!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Sr(e,"providerSelect.label"),values:A,...v})}}}),b.length>1)v?.value.builderRenderFunction?.(o);else{let A=b[0];A&&A.panel?.builderRenderFunction?.(o)}}}function f3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:d,panel:g})=>({id:d.id,label:d.name??d.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Sr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Js(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Xo(r.id),!1).value)}var y3=p3,mn="ly.img.ai.editMode",Hu="ly.img.ai.metadata";async function m3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Iu(n,Hu),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let b=s.applyCallbacks?.onApply;b!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let h=e.cesdk.engine.editor;typeof h._update=="function"&&h._update(),b()}});break}default:}};return Promise.resolve(r)}var b3=m3;function h3(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 v3=h3;function w3(e){return`ly.img.ai.${e}.canvasMenu`}var k3=w3;function x3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=k3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var I3=x3;function A3(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return C3(e,t);case"image":return M3(e,t);case"video":return j3(e,t);case"audio":return S3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function C3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function M3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await Vo(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),b=r.engine.block.getCropTranslationY(a),h=r.engine.block.getCropRotation(a),M=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,b),r.engine.block.setCropRotation(a,h)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,C=await r.engine.editor.getMimeType(k),v=await $3(r,k,C),w=await Vo(v,t.cesdk.engine),m=w.width/w.height,x=Math.abs(g-m)>.001,j=c?[{uri:v,width:w.width,height:w.height}]:void 0,I=v;j==null?r.engine.block.setString(o,"fill/image/imageFileURI",I):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",j)),await r.engine.block.forceLoadResources([o]),x?r.engine.block.setContentFillMode(a,"Cover"):M();let A=()=>{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);M()},S=()=>{if(j==null){if(I==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",I)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",j);x?r.engine.block.setContentFillMode(a,"Cover"):M()};return{applyCallbacks:{onBefore:A,onAfter:S,onCancel:()=>{A()},onApply:()=>{S(),t.cesdk.engine.editor.addUndoStep()}}}}async function j3(e,t){throw new Error("Function not implemented.")}async function S3(e,t){throw new Error("Function not implemented.")}async function $3(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${H5(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var E3=A3;function _3(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var L3=_3,T3=class Zu{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Zu),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=T3;function O3(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(yn)),c=new Iu(e.cesdk.engine,Hu),l=e.lock??!0?L3({engine:e.cesdk.engine,editModeToLockTo:mn,blockIdsToLock:i}):()=>{};i.forEach(u=>{ve.get().register(u,{onCancelGeneration:()=>{o.abort(Yu),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),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await E3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{ve.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Xs=O3;function N3(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===mn)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=I3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=D3(s).filter(v=>{if(v==="ly.img.separator")return!0;let w=v.id.replace("ly.img.",""),m=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${w}`;if(!e.cesdk.feature.isEnabled(m,{engine:e.engine}))return!1;let x=v.scopes;if(x!=null&&x.length>0&&!n.every(j=>x.every(I=>e.engine.block.isAllowedByScope(j,I))))return!1;if(v.enable!=null){if(typeof v.enable=="function")return v.enable({engine:e.engine});if(typeof v.enable=="boolean")return v.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((v,w)=>{if(w.provider.kind!==e.kind)return v;let m=c.map(x=>{if(x==="ly.img.separator")return x;if(w.provider.input?.quickActions?.supported?.[x.id]!=null)return{definition:x};{let j=Tu.get().getAll().filter(I=>I.provider.kind!==e.kind&&I.provider.id!==w.provider.id).find(I=>I.provider.input?.quickActions?.supported?.[x.id]!=null);if(j!=null){let I={definition:x,providerInitializationResult:j};return l.push(I),I}else return}}).filter(yn);return m=v3(m),m.length===0||m.every(x=>x==="ly.img.separator")||m.every(x=>x==="ly.img.separator"||x.providerInitializationResult!=null)||v.push({providerInitializationResult:w,quickActions:m}),v},[]);if(u.length===0)if(l.length>0){let v=new Map;l.forEach(m=>{let x=m.definition.id;v.has(x)||v.set(x,m)});let w=Array.from(v.values());u.push({providerInitializationResult:w[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:w})}else return;let d=u.map(({providerInitializationResult:v})=>({id:v.provider.id,label:v.provider.name??v.provider.id})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:v}}})=>v===g.value?.id),y=n.every(v=>i.engine.block.getState(v).type==="Ready"),{builder:f,experimental:b,state:h}=i,M=h(`${t}.isGenerating`,!1),k=h(`${t}.toggleExpandedState`,void 0),C=async(v,w,m)=>{M.setValue(!0);try{return await m(v,w)}finally{M.setValue(!1)}};b.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:M.value,trailingIcon:null,children:({close:v})=>{if(k.value!==void 0){let w=p?.quickActions.find(I=>I!=="ly.img.separator"&&I.definition.id===k.value);if(w==null||w.definition.render==null)return;let m=u.filter(({quickActions:I})=>I.some(A=>A!=="ly.img.separator"&&A.definition.id===w.definition.id)).map(({providerInitializationResult:I})=>({id:I.provider.id,label:I.provider.name??I.provider.id})),x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(x,{engine:e.engine});m.length>1&&j&&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,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>w.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Xs({blockIds:n,providerInitializationResult:w.providerInitializationResult??p?.providerInitializationResult,quickAction:w.definition,middlewares:[C],confirmation:w.definition.defaults?.confirmation??!0,lock:w.definition.defaults?.lock??!0,close:v,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:v,providerId:g.value.id})})}else{let w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,m=e.cesdk.feature.isEnabled(w,{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,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{b.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(x=>{if(x==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}x.definition.render!=null&&x.definition.render({...i,toggleExpand:()=>{k.setValue(x.definition.id)},isExpanded:!1,generate:Xs({blockIds:n,providerInitializationResult:x.providerInitializationResult??p?.providerInitializationResult,quickAction:x.definition,middlewares:[C],confirmation:x.definition.defaults?.confirmation??!0,close:v,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:v,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function D3(e){return e.map(t=>t==="ly.img.separator"?t:Wo.get().getBy({id:t,type:"quick"})[0]).filter(yn)}var P3=N3;async function z3(e){let t=await P3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await b3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===mn){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 U3=z3,R3="@imgly/plugin-ai-image-generation",F3=`
129
+ `,c3=u3;function d3(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 oc(2e3),await p3(t,e,r)):i(t,r)}async function p3(e,t,r){switch(t.kind){case"image":return g3(e,t,r);case"video":return f3(e,t,r);case"text":return y3(e,t,r);case"audio":return h3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function g3(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 s9(s,r),l=await ra(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
+ `,"+")}`}}async function f3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function y3(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=jr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=jr(n,o)}else"customPrompt"in e?a=jr(n,"custom"):a=jr(n,"improved");else a=jr(n,"generated");return m3(a,r.abortSignal)}async function*m3(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 oc(100)}return{kind:"text",text:e}}function jr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function h3(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:b3(220,i),duration:i,thumbnailUrl:void 0}}function b3(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 v3(i,44100)}function v3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function oc(e){return new Promise(t=>{setTimeout(t,e)})}var w3=d3,ac="USER_CANCEL";function k3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=c9([...e.provider.output.middleware??[],...r?.middlewares??[],p9({enable:r?.debug}),w3({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:m9(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return da(n)?{status:"aborted",message:n.message}:n===ac?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var x3=k3;async function I3(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=ca.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=a3(a),s=s3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=x3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await n3(a,c);h9(r.cesdk,"@imgly/plugin-ai-generation",c3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Hu.get().register(u),u}var Yo=I3;function A3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new u2(n,r,i);return r.engine.asset.addSource(a),a.id}var C3=A3;function Lr(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 M3(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Yo(e,u,r,i)));o.push(...l),a=S3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Yo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Yo(e,d,r,i)));o.push(...u),a=j3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=C3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter($n)}),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 j3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{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 C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Lr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Lr(e,"fromText.label"),icon:f.value!=="fromText"&&pu(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Lr(e,"fromImage.label"),icon:f.value!=="fromImage"&&pu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Lr(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function S3({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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Lr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function pu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ga(r.id),!1).value)}var $3=M3,_n="ly.img.ai.editMode",lc="ly.img.ai.metadata";async function _3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Pu(n,lc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var E3=_3;function L3(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 T3=L3;function O3(e){return`ly.img.ai.${e}.canvasMenu`}var N3=O3;function D3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=N3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var P3=D3;function z3(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 U3(e,t);case"image":return R3(e,t);case"video":return F3(e,t);case"audio":return V3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function U3(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 R3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ra(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),w=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,I=await r.engine.editor.getMimeType(k),y=await B3(r,k,I),x=await ra(y,t.cesdk.engine),j=x.width/x.height,C=Math.abs(p-j)>.001,S=c?[{uri:y,width:x.width,height:x.height}]:void 0,M=y;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",M):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):w();let A=()=>{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);w()},v=()=>{if(S==null){if(M==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",M)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);C?r.engine.block.setContentFillMode(a,"Cover"):w()};return{applyCallbacks:{onBefore:A,onAfter:v,onCancel:()=>{A()},onApply:()=>{v(),t.cesdk.engine.editor.addUndoStep()}}}}async function F3(e,t){throw new Error("Function not implemented.")}async function V3(e,t){throw new Error("Function not implemented.")}async function B3(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${l9(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var q3=z3;function G3(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 Y3=G3,H3=class sc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new sc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ie=H3;function Z3(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($n)),c=new Pu(e.cesdk.engine,lc),l=e.lock??!0?Y3({engine:e.cesdk.engine,editModeToLockTo:_n,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ie.get().register(u,{onCancelGeneration:()=>{o.abort(ac),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),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await q3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Ie.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var gu=Z3;function Q3(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===_n)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=P3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=W3(s).filter(y=>{if(y==="ly.img.separator")return!0;let x=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let C=y.scopes;if(C!=null&&C.length>0&&!n.every(S=>C.every(M=>e.engine.block.isAllowedByScope(S,M))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,x)=>{if(x.provider.kind!==e.kind)return y;let j=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let S=Hu.get().getAll().filter(M=>M.provider.kind!==e.kind&&M.provider.id!==x.provider.id).find(M=>M.provider.input?.quickActions?.supported?.[C.id]!=null);if(S!=null){let M={definition:C,providerInitializationResult:S};return l.push(M),M}else return}}).filter($n);return j=T3(j),j.length===0||j.every(C=>C==="ly.img.separator")||j.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||y.push({providerInitializationResult:x,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let C=j.definition.id;y.has(C)||y.set(C,j)});let x=Array.from(y.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,w=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),I=async(y,x,j)=>{w.setValue(!0);try{return await j(y,x)}finally{w.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:w.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let x=g?.quickActions.find(M=>M!=="ly.img.separator"&&M.definition.id===k.value);if(x==null||x.definition.render==null)return;let j=u.filter(({quickActions:M})=>M.some(A=>A!=="ly.img.separator"&&A.definition.id===x.definition.id)).map(({providerInitializationResult:M})=>({id:M.provider.id,label:M.provider.name??M.provider.id})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(C,{engine:e.engine});j.length>1&&S&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:gu({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&j&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{k.setValue(C.definition.id)},isExpanded:!1,generate:gu({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function W3(e){return e.map(t=>t==="ly.img.separator"?t:ca.get().getBy({id:t,type:"quick"})[0]).filter($n)}var K3=Q3;async function J3(e){let t=await K3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await E3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===_n){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ie.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ie.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ie.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ie.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ie.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var X3=J3,ev="@imgly/plugin-ai-image-generation",tv=`
131
131
  <svg>
132
132
  <symbol
133
133
  fill="none"
@@ -141,10 +141,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
141
141
 
142
142
  </symbol>
143
143
  </svg>
144
- `,V3=F3,B3=typeof global=="object"&&global&&global.Object===Object&&global,Qu=B3,q3=typeof self=="object"&&self&&self.Object===Object&&self,G3=Qu||q3||Function("return this")(),Z=G3,Y3=Z.Symbol,tt=Y3,Wu=Object.prototype,H3=Wu.hasOwnProperty,Z3=Wu.toString,Ar=tt?tt.toStringTag:void 0;function Q3(e){var t=H3.call(e,Ar),r=e[Ar];try{e[Ar]=void 0;var i=!0}catch{}var n=Z3.call(e);return i&&(t?e[Ar]=r:delete e[Ar]),n}var W3=Q3,K3=Object.prototype,J3=K3.toString;function X3(e){return J3.call(e)}var e8=X3,t8="[object Null]",r8="[object Undefined]",eu=tt?tt.toStringTag:void 0;function i8(e){return e==null?e===void 0?r8:t8:eu&&eu in Object(e)?W3(e):e8(e)}var zr=i8;function n8(e){return e!=null&&typeof e=="object"}var ea=n8,OK=Array.isArray;function o8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ku=o8,a8="[object AsyncFunction]",l8="[object Function]",s8="[object GeneratorFunction]",u8="[object Proxy]";function c8(e){if(!Ku(e))return!1;var t=zr(e);return t==l8||t==s8||t==a8||t==u8}var d8=c8,p8=Z["__core-js_shared__"],To=p8,tu=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function g8(e){return!!tu&&tu in e}var f8=g8,y8=Function.prototype,m8=y8.toString;function b8(e){if(e!=null){try{return m8.call(e)}catch{}try{return e+""}catch{}}return""}var xe=b8,h8=/[\\^$.*+?()[\]{}|]/g,v8=/^\[object .+?Constructor\]$/,w8=Function.prototype,k8=Object.prototype,x8=w8.toString,I8=k8.hasOwnProperty,A8=RegExp("^"+x8.call(I8).replace(h8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function C8(e){if(!Ku(e)||f8(e))return!1;var t=d8(e)?A8:v8;return t.test(xe(e))}var M8=C8;function j8(e,t){return e?.[t]}var S8=j8;function $8(e,t){var r=S8(e,t);return M8(r)?r:void 0}var at=$8,E8=at(Z,"WeakMap"),qo=E8;function _8(e,t){return e===t||e!==e&&t!==t}var L8=_8,T8=9007199254740991;function O8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=T8}var N8=O8,NK=Object.prototype,D8="[object Arguments]";function P8(e){return ea(e)&&zr(e)==D8}var ru=P8,Ju=Object.prototype,z8=Ju.hasOwnProperty,U8=Ju.propertyIsEnumerable,DK=ru(function(){return arguments}())?ru:function(e){return ea(e)&&z8.call(e,"callee")&&!U8.call(e,"callee")},Xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,iu=Xu&&typeof module=="object"&&module&&!module.nodeType&&module,R8=iu&&iu.exports===Xu,nu=R8?Z.Buffer:void 0,PK=nu?nu.isBuffer:void 0,F8="[object Arguments]",V8="[object Array]",B8="[object Boolean]",q8="[object Date]",G8="[object Error]",Y8="[object Function]",H8="[object Map]",Z8="[object Number]",Q8="[object Object]",W8="[object RegExp]",K8="[object Set]",J8="[object String]",X8="[object WeakMap]",e7="[object ArrayBuffer]",t7="[object DataView]",r7="[object Float32Array]",i7="[object Float64Array]",n7="[object Int8Array]",o7="[object Int16Array]",a7="[object Int32Array]",l7="[object Uint8Array]",s7="[object Uint8ClampedArray]",u7="[object Uint16Array]",c7="[object Uint32Array]",L={};L[r7]=L[i7]=L[n7]=L[o7]=L[a7]=L[l7]=L[s7]=L[u7]=L[c7]=!0;L[F8]=L[V8]=L[e7]=L[B8]=L[t7]=L[q8]=L[G8]=L[Y8]=L[H8]=L[Z8]=L[Q8]=L[W8]=L[K8]=L[J8]=L[X8]=!1;function d7(e){return ea(e)&&N8(e.length)&&!!L[zr(e)]}var p7=d7;function g7(e){return function(t){return e(t)}}var f7=g7,ec=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Er=ec&&typeof module=="object"&&module&&!module.nodeType&&module,y7=Er&&Er.exports===ec,Oo=y7&&Qu.process,m7=function(){try{var e=Er&&Er.require&&Er.require("util").types;return e||Oo&&Oo.binding&&Oo.binding("util")}catch{}}(),ou=m7,au=ou&&ou.isTypedArray,zK=au?f7(au):p7,b7=Object.prototype,UK=b7.hasOwnProperty;function h7(e,t){return function(r){return e(t(r))}}var v7=h7,RK=v7(Object.keys,Object),w7=Object.prototype,FK=w7.hasOwnProperty,k7=at(Object,"create"),Tr=k7;function x7(){this.__data__=Tr?Tr(null):{},this.size=0}var I7=x7;function A7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var C7=A7,M7="__lodash_hash_undefined__",j7=Object.prototype,S7=j7.hasOwnProperty;function $7(e){var t=this.__data__;if(Tr){var r=t[e];return r===M7?void 0:r}return S7.call(t,e)?t[e]:void 0}var E7=$7,_7=Object.prototype,L7=_7.hasOwnProperty;function T7(e){var t=this.__data__;return Tr?t[e]!==void 0:L7.call(t,e)}var O7=T7,N7="__lodash_hash_undefined__";function D7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Tr&&t===void 0?N7:t,this}var P7=D7;function lt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lt.prototype.clear=I7;lt.prototype.delete=C7;lt.prototype.get=E7;lt.prototype.has=O7;lt.prototype.set=P7;var lu=lt;function z7(){this.__data__=[],this.size=0}var U7=z7;function R7(e,t){for(var r=e.length;r--;)if(L8(e[r][0],t))return r;return-1}var bn=R7,F7=Array.prototype,V7=F7.splice;function B7(e){var t=this.__data__,r=bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():V7.call(t,r,1),--this.size,!0}var q7=B7;function G7(e){var t=this.__data__,r=bn(t,e);return r<0?void 0:t[r][1]}var Y7=G7;function H7(e){return bn(this.__data__,e)>-1}var Z7=H7;function Q7(e,t){var r=this.__data__,i=bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var W7=Q7;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=U7;st.prototype.delete=q7;st.prototype.get=Y7;st.prototype.has=Z7;st.prototype.set=W7;var hn=st,K7=at(Z,"Map"),Or=K7;function J7(){this.size=0,this.__data__={hash:new lu,map:new(Or||hn),string:new lu}}var X7=J7;function ev(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var tv=ev;function rv(e,t){var r=e.__data__;return tv(t)?r[typeof t=="string"?"string":"hash"]:r.map}var vn=rv;function iv(e){var t=vn(this,e).delete(e);return this.size-=t?1:0,t}var nv=iv;function ov(e){return vn(this,e).get(e)}var av=ov;function lv(e){return vn(this,e).has(e)}var sv=lv;function uv(e,t){var r=vn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var cv=uv;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=X7;ut.prototype.delete=nv;ut.prototype.get=av;ut.prototype.has=sv;ut.prototype.set=cv;var tc=ut;function dv(){this.__data__=new hn,this.size=0}var pv=dv;function gv(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var fv=gv;function yv(e){return this.__data__.get(e)}var mv=yv;function bv(e){return this.__data__.has(e)}var hv=bv,vv=200;function wv(e,t){var r=this.__data__;if(r instanceof hn){var i=r.__data__;if(!Or||i.length<vv-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new tc(i)}return r.set(e,t),this.size=r.size,this}var kv=wv;function Ur(e){var t=this.__data__=new hn(e);this.size=t.size}Ur.prototype.clear=pv;Ur.prototype.delete=fv;Ur.prototype.get=mv;Ur.prototype.has=hv;Ur.prototype.set=kv;var xv=Object.prototype,VK=xv.propertyIsEnumerable,Iv=at(Z,"DataView"),Go=Iv,Av=at(Z,"Promise"),Yo=Av,Cv=at(Z,"Set"),Ho=Cv,su="[object Map]",Mv="[object Object]",uu="[object Promise]",cu="[object Set]",du="[object WeakMap]",pu="[object DataView]",jv=xe(Go),Sv=xe(Or),$v=xe(Yo),Ev=xe(Ho),_v=xe(qo),Je=zr;(Go&&Je(new Go(new ArrayBuffer(1)))!=pu||Or&&Je(new Or)!=su||Yo&&Je(Yo.resolve())!=uu||Ho&&Je(new Ho)!=cu||qo&&Je(new qo)!=du)&&(Je=function(e){var t=zr(e),r=t==Mv?e.constructor:void 0,i=r?xe(r):"";if(i)switch(i){case jv:return pu;case Sv:return su;case $v:return uu;case Ev:return cu;case _v:return du}return t});var BK=Z.Uint8Array,Lv="__lodash_hash_undefined__";function Tv(e){return this.__data__.set(e,Lv),this}var Ov=Tv;function Nv(e){return this.__data__.has(e)}var Dv=Nv;function Zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new tc;++t<r;)this.add(e[t])}Zo.prototype.add=Zo.prototype.push=Ov;Zo.prototype.has=Dv;var gu=tt?tt.prototype:void 0,qK=gu?gu.valueOf:void 0,Pv=Object.prototype,GK=Pv.hasOwnProperty,zv=Object.prototype,YK=zv.hasOwnProperty,HK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QK=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Uv(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 ct(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 Uv(i,t)}function Rv(e){return e==null?[]:Array.isArray(e)?e:[e]}var fu=Rv,dn="@imgly/plugin-ai-image-generation-web",Fv=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"],wn="editImage",ie=`ly.img.${wn}`,yu=`ly.img.plugin-ai-image-generation-web.quickAction.${wn}`,rn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${wn}`;function nn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${wn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Vv=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${rn}`]:"Edit Image...",[`${rn}.description`]:"Change image based on description",[`${rn}.prompt`]:"Edit Image...",[`${yu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${rn}.apply`]:"Change"}}),{id:ie,type:"quick",kind:"image",label:`${yu}`,enable:Pr(),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(`${ie}.prompt`,"");t.TextArea(`${ie}.prompt`,{inputLabel:nn(l,"prompt"),placeholder:nn(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:nn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await ct(g,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ie}.button`,{label:nn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),Bv=Vv,kn="swapBackground",ne=`ly.img.${kn}`,mu=`ly.img.plugin-ai-image-generation-web.quickAction.${kn}`,on=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${kn}`;function an(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${kn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qv=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${on}`]:"Swap Background...",[`${on}.description`]:"Change the background of the image",[`${on}.prompt`]:"Swap Background...",[`${mu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${on}.apply`]:"Change"}}),{id:ne,type:"quick",kind:"image",label:`${mu}`,enable:Pr(),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(`${ne}.prompt`,"");t.TextArea(`${ne}.prompt`,{inputLabel:an(l,"prompt"),placeholder:an(l,"prompt.placeholder")[1],...u}),t.Separator(`${ne}.separator`),r.builder.ButtonRow(`${ne}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ne}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ne}.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[g]=o.block.findAllSelected(),p=await ct(g,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ne}.button`,{label:an(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),Gv=qv,xn="styleTransfer",Cr=`ly.img.${xn}`,Yv=`ly.img.plugin-ai-image-generation-web.quickAction.${xn}`,q=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${xn}`;function bu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${xn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Hv=[{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."}],Zv=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${q}`]:"Change Art Style",[`${q}.description`]:"Transform image into different art styles",[`${q}.water`]:"Watercolor Painting",[`${q}.oil`]:"Oil Painting",[`${q}.charcoal`]:"Charcoal Sketch",[`${q}.pencil`]:"Pencil Drawing",[`${q}.pastel`]:"Pastel Artwork",[`${q}.ink`]:"Ink Wash",[`${q}.stained-glass`]:"Stained Glass Window",[`${q}.japanese`]:"Japanese Woodblock Print"}}),{id:Cr,type:"quick",kind:"image",label:`${Yv}`,enable:Pr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Cr}.popover`,{label:bu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Cr}.popover.section`,{children:()=>{r.builder.Menu(`${Cr}.popover.menu`,{children:()=>{Hv.forEach(s=>{t.Button(`${Cr}.popover.menu.${s.id}`,{label:bu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ct(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"})}}})})}})}})}})}}),Qv=Zv,In="artistTransfer",Mr=`ly.img.${In}`,Wv=`ly.img.plugin-ai-image-generation-web.quickAction.${In}`,F=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${In}`;function hu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${In}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Kv=[{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."}],Jv=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${F}`]:"Painted By",[`${F}.description`]:"Transform image in the style of famous artists",[`${F}.van-gogh`]:"Van Gogh",[`${F}.monet`]:"Monet",[`${F}.picasso`]:"Picasso",[`${F}.dali`]:"Dal\xED",[`${F}.matisse`]:"Matisse",[`${F}.warhol`]:"Warhol",[`${F}.michelangelo`]:"Michelangelo",[`${F}.da-vinci`]:"Da Vinci",[`${F}.rembrandt`]:"Rembrandt",[`${F}.mondrian`]:"Mondrian",[`${F}.kahlo`]:"Frida Kahlo",[`${F}.hokusai`]:"Hokusai"}}),{id:Mr,type:"quick",kind:"image",label:`${Wv}`,enable:Pr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Mr}.popover`,{label:hu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Mr}.popover.section`,{children:()=>{r.builder.Menu(`${Mr}.popover.menu`,{children:()=>{Kv.forEach(s=>{t.Button(`${Mr}.popover.menu.${s.id}`,{label:hu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ct(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"})}}})})}})}})}})}}),Xv=Jv,An="createVariant",oe=`ly.img.${An}`,vu=`ly.img.plugin-ai-image-generation-web.quickAction.${An}`,ln=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${An}`;function sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${An}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var e6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${ln}`]:"Create Variant...",[`${ln}.description`]:"Create a variation of the image",[`${ln}.prompt`]:"Create Variant...",[`${vu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${ln}.apply`]:"Create"}}),{id:oe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${vu}`,enable:t=>{if(!Pr()(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(`${oe}.prompt`,"");t.TextArea(`${oe}.prompt`,{inputLabel:sn(l,"prompt"),placeholder:sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${oe}.separator`),r.builder.ButtonRow(`${oe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${oe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${oe}.footer.apply`,{label:sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getType(g),y=o.block.duplicate(g);p==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(h=>{o.block.destroy(h)}),o.block.setSelected(g,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&p!=="//ly.img.ubq/page"){let h=o.block.getWidth(f),M=o.block.getHeight(f),k=.02*Math.min(h,M)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let b=await ct(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:b},{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(`${oe}.button`,{label:sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),t6=e6,Cn="combineImages",ae=`ly.img.${Cn}`,wu=`ly.img.plugin-ai-image-generation-web.quickAction.${Cn}`,No=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Cn}`;function un(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Cn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var r6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${No}.apply`]:"Combine",[`${No}`]:"Combine Images...",[`${No}.prompt`]:"Image Combination Instructions",[`${wu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:ae,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${wu}`,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(`${ae}.prompt`,"");t.TextArea(`${ae}.prompt`,{inputLabel:un(l,"prompt"),placeholder:un(l,"prompt.placeholder")[1],...u}),t.Separator(`${ae}.separator`),r.builder.ButtonRow(`${ae}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ae}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ae}.footer.apply`,{label:un(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let g=o.block.findAllSelected(),p=o.block.duplicate(g[0]);g.forEach(C=>{o.block.setSelected(C,!1)}),o.block.setSelected(p,!0);let y=o.block.getParent(p);if(y==null)throw new Error("Parent not found");let f=1,b=o.block.getWidth(y),h=o.block.getHeight(y),M=.02*Math.min(b,h)*f;o.block.setPositionX(p,o.block.getPositionX(p)+M),o.block.setPositionY(p,o.block.getPositionY(p)+M);let k=await Promise.all(g.map(C=>ct(C,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:g},{blockIds:[p]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ae}.button`,{label:un(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),i6=r6,Mn="remixPage",ku=`ly.img.${Mn}`,n6=`ly.img.plugin-ai-image-generation-web.quickAction.${Mn}`,o6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Mn}`;function a6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Mn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var l6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${o6}`]:"Turn Page into Image"}}),{id:ku,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${n6}`,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(`${ku}.button`,{label:a6(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(h=>{i.block.destroy(h)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),g=i.block.getPositionX(o),p=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,g),i.block.setPositionY(f,p);let b=i.block.createFill("image");i.block.setFill(f,b),i.block.setString(b,"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"})}}})}}),s6=l6,jn="remixPageWithPrompt",le=`ly.img.${jn}`,xu=`ly.img.plugin-ai-image-generation-web.quickAction.${jn}`,Do=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${jn}`;function cn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var u6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Do}`]:"Remix Page...",[`${Do}.prompt`]:"Remix Page Prompt",[`${xu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Do}.apply`]:"Remix"}}),{id:le,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${xu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${le}.prompt`,"");t.TextArea(`${le}.prompt`,{inputLabel:cn(l,"prompt"),placeholder:cn(l,"prompt.placeholder")[1],...u}),t.Separator(`${le}.separator`),r.builder.ButtonRow(`${le}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${le}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${le}.footer.apply`,{label:cn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await o.block.export(g),y=URL.createObjectURL(p),f=o.block.duplicate(g);o.block.getChildren(f).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(g,!1);let b=o.block.getFrameWidth(g),h=o.block.getFrameHeight(g),M=o.block.getPositionX(g),k=o.block.getPositionY(g),C=o.block.createShape("rect"),v=o.block.create("graphic");o.block.setShape(v,C),o.block.appendChild(f,v),o.block.setWidth(v,b),o.block.setHeight(v,h),o.block.setPositionX(v,M),o.block.setPositionY(v,k);let w=o.block.createFill("image");o.block.setFill(v,w),o.block.setString(w,"fill/image/imageFileURI",y),o.block.setSelected(v,!0),o.scene.zoomToBlock(v),await a({prompt:d,uri:y},{blockIds:[v]}),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(`${le}.button`,{label:cn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),c6=u6,se="ly.img.ai.image-generation";function d6(e){return{async initialize({cesdk:t}){if(t==null)return;n9(t,dn,"0.2.6"),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=Wo.get(),i=r.register({type:"plugin",sceneMode:"Design",id:dn,pluginId:dn,label:"Generate Image",meta:{panelId:se},execute:()=>{t.ui.isPanelOpen(se)?t.ui.closePanel(se):t.ui.openPanel(se)}});t.ui.addIconSet(R3,V3),t.i18n.setTranslations({en:{[`panel.${se}`]:"Image Generation",[`${se}.dock.label`]:"AI Image"}}),p6(e),r.register(Bv({cesdk:t})),r.register(Gv({cesdk:t})),r.register(Qv({cesdk:t})),r.register(Xv({cesdk:t})),r.register(t6({cesdk:t})),r.register(i6({cesdk:t})),r.register(s6({cesdk:t})),r.register(c6({cesdk:t}));let n=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,o=await Promise.all(fu(n).map(u=>u({cesdk:t}))),s=await Promise.all(fu(a).map(u=>u({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await y3("image",{fromText:o,fromImage:s},{cesdk:t},e),l=await U3({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Fv});c.history?.assetSourceId!=null,l.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",l.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:mn})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(se,c.panel.builderRenderFunction),a9({cesdk:t,panelId:se})):i()}}}function p6(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 g6=d6,f6=e=>({name:dn,version:"0.2.6",...g6(e)}),rc=f6;var y6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;gt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{gt(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 gt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),gt(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 gt(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]=gt(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]=gt(n,t,a)}return e}var m6=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},b6=typeof global=="object"&&global&&global.Object===Object&&global,Pc=b6,h6=typeof self=="object"&&self&&self.Object===Object&&self,v6=Pc||h6||Function("return this")(),Q=v6,w6=Q.Symbol,ft=w6,zc=Object.prototype,k6=zc.hasOwnProperty,x6=zc.toString,Rr=ft?ft.toStringTag:void 0;function I6(e){var t=k6.call(e,Rr),r=e[Rr];try{e[Rr]=void 0;var i=!0}catch{}var n=x6.call(e);return i&&(t?e[Rr]=r:delete e[Rr]),n}var A6=I6,C6=Object.prototype,M6=C6.toString;function j6(e){return M6.call(e)}var S6=j6,$6="[object Null]",E6="[object Undefined]",ic=ft?ft.toStringTag:void 0;function _6(e){return e==null?e===void 0?E6:$6:ic&&ic in Object(e)?A6(e):S6(e)}var Kr=_6;function L6(e){return e!=null&&typeof e=="object"}var wa=L6,eJ=Array.isArray;function T6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Uc=T6,O6="[object AsyncFunction]",N6="[object Function]",D6="[object GeneratorFunction]",P6="[object Proxy]";function z6(e){if(!Uc(e))return!1;var t=Kr(e);return t==N6||t==D6||t==O6||t==P6}var U6=z6,R6=Q["__core-js_shared__"],ta=R6,nc=function(){var e=/[^.]+$/.exec(ta&&ta.keys&&ta.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function F6(e){return!!nc&&nc in e}var V6=F6,B6=Function.prototype,q6=B6.toString;function G6(e){if(e!=null){try{return q6.call(e)}catch{}try{return e+""}catch{}}return""}var Ae=G6,Y6=/[\\^$.*+?()[\]{}|]/g,H6=/^\[object .+?Constructor\]$/,Z6=Function.prototype,Q6=Object.prototype,W6=Z6.toString,K6=Q6.hasOwnProperty,J6=RegExp("^"+W6.call(K6).replace(Y6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function X6(e){if(!Uc(e)||V6(e))return!1;var t=U6(e)?J6:H6;return t.test(Ae(e))}var ew=X6;function tw(e,t){return e?.[t]}var rw=tw;function iw(e,t){var r=rw(e,t);return ew(r)?r:void 0}var mt=iw,nw=mt(Q,"WeakMap"),sa=nw;function ow(e,t){return e===t||e!==e&&t!==t}var aw=ow,lw=9007199254740991;function sw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=lw}var uw=sw,tJ=Object.prototype,cw="[object Arguments]";function dw(e){return wa(e)&&Kr(e)==cw}var oc=dw,Rc=Object.prototype,pw=Rc.hasOwnProperty,gw=Rc.propertyIsEnumerable,rJ=oc(function(){return arguments}())?oc:function(e){return wa(e)&&pw.call(e,"callee")&&!gw.call(e,"callee")},Fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ac=Fc&&typeof module=="object"&&module&&!module.nodeType&&module,fw=ac&&ac.exports===Fc,lc=fw?Q.Buffer:void 0,iJ=lc?lc.isBuffer:void 0,yw="[object Arguments]",mw="[object Array]",bw="[object Boolean]",hw="[object Date]",vw="[object Error]",ww="[object Function]",kw="[object Map]",xw="[object Number]",Iw="[object Object]",Aw="[object RegExp]",Cw="[object Set]",Mw="[object String]",jw="[object WeakMap]",Sw="[object ArrayBuffer]",$w="[object DataView]",Ew="[object Float32Array]",_w="[object Float64Array]",Lw="[object Int8Array]",Tw="[object Int16Array]",Ow="[object Int32Array]",Nw="[object Uint8Array]",Dw="[object Uint8ClampedArray]",Pw="[object Uint16Array]",zw="[object Uint32Array]",T={};T[Ew]=T[_w]=T[Lw]=T[Tw]=T[Ow]=T[Nw]=T[Dw]=T[Pw]=T[zw]=!0;T[yw]=T[mw]=T[Sw]=T[bw]=T[$w]=T[hw]=T[vw]=T[ww]=T[kw]=T[xw]=T[Iw]=T[Aw]=T[Cw]=T[Mw]=T[jw]=!1;function Uw(e){return wa(e)&&uw(e.length)&&!!T[Kr(e)]}var Rw=Uw;function Fw(e){return function(t){return e(t)}}var Vw=Fw,Vc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gr=Vc&&typeof module=="object"&&module&&!module.nodeType&&module,Bw=Gr&&Gr.exports===Vc,ra=Bw&&Pc.process,qw=function(){try{var e=Gr&&Gr.require&&Gr.require("util").types;return e||ra&&ra.binding&&ra.binding("util")}catch{}}(),sc=qw,uc=sc&&sc.isTypedArray,nJ=uc?Vw(uc):Rw,Gw=Object.prototype,oJ=Gw.hasOwnProperty;function Yw(e,t){return function(r){return e(t(r))}}var Hw=Yw,aJ=Hw(Object.keys,Object),Zw=Object.prototype,lJ=Zw.hasOwnProperty,Qw=mt(Object,"create"),Hr=Qw;function Ww(){this.__data__=Hr?Hr(null):{},this.size=0}var Kw=Ww;function Jw(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xw=Jw,ek="__lodash_hash_undefined__",tk=Object.prototype,rk=tk.hasOwnProperty;function ik(e){var t=this.__data__;if(Hr){var r=t[e];return r===ek?void 0:r}return rk.call(t,e)?t[e]:void 0}var nk=ik,ok=Object.prototype,ak=ok.hasOwnProperty;function lk(e){var t=this.__data__;return Hr?t[e]!==void 0:ak.call(t,e)}var sk=lk,uk="__lodash_hash_undefined__";function ck(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Hr&&t===void 0?uk:t,this}var dk=ck;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=Kw;bt.prototype.delete=Xw;bt.prototype.get=nk;bt.prototype.has=sk;bt.prototype.set=dk;var cc=bt;function pk(){this.__data__=[],this.size=0}var gk=pk;function fk(e,t){for(var r=e.length;r--;)if(aw(e[r][0],t))return r;return-1}var $n=fk,yk=Array.prototype,mk=yk.splice;function bk(e){var t=this.__data__,r=$n(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():mk.call(t,r,1),--this.size,!0}var hk=bk;function vk(e){var t=this.__data__,r=$n(t,e);return r<0?void 0:t[r][1]}var wk=vk;function kk(e){return $n(this.__data__,e)>-1}var xk=kk;function Ik(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 Ak=Ik;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=gk;ht.prototype.delete=hk;ht.prototype.get=wk;ht.prototype.has=xk;ht.prototype.set=Ak;var En=ht,Ck=mt(Q,"Map"),Zr=Ck;function Mk(){this.size=0,this.__data__={hash:new cc,map:new(Zr||En),string:new cc}}var jk=Mk;function Sk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var $k=Sk;function Ek(e,t){var r=e.__data__;return $k(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _n=Ek;function _k(e){var t=_n(this,e).delete(e);return this.size-=t?1:0,t}var Lk=_k;function Tk(e){return _n(this,e).get(e)}var Ok=Tk;function Nk(e){return _n(this,e).has(e)}var Dk=Nk;function Pk(e,t){var r=_n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var zk=Pk;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=jk;vt.prototype.delete=Lk;vt.prototype.get=Ok;vt.prototype.has=Dk;vt.prototype.set=zk;var Bc=vt;function Uk(){this.__data__=new En,this.size=0}var Rk=Uk;function Fk(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Vk=Fk;function Bk(e){return this.__data__.get(e)}var qk=Bk;function Gk(e){return this.__data__.has(e)}var Yk=Gk,Hk=200;function Zk(e,t){var r=this.__data__;if(r instanceof En){var i=r.__data__;if(!Zr||i.length<Hk-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Bc(i)}return r.set(e,t),this.size=r.size,this}var Qk=Zk;function Jr(e){var t=this.__data__=new En(e);this.size=t.size}Jr.prototype.clear=Rk;Jr.prototype.delete=Vk;Jr.prototype.get=qk;Jr.prototype.has=Yk;Jr.prototype.set=Qk;var Wk=Object.prototype,sJ=Wk.propertyIsEnumerable,Kk=mt(Q,"DataView"),ua=Kk,Jk=mt(Q,"Promise"),ca=Jk,Xk=mt(Q,"Set"),da=Xk,dc="[object Map]",ex="[object Object]",pc="[object Promise]",gc="[object Set]",fc="[object WeakMap]",yc="[object DataView]",tx=Ae(ua),rx=Ae(Zr),ix=Ae(ca),nx=Ae(da),ox=Ae(sa),dt=Kr;(ua&&dt(new ua(new ArrayBuffer(1)))!=yc||Zr&&dt(new Zr)!=dc||ca&&dt(ca.resolve())!=pc||da&&dt(new da)!=gc||sa&&dt(new sa)!=fc)&&(dt=function(e){var t=Kr(e),r=t==ex?e.constructor:void 0,i=r?Ae(r):"";if(i)switch(i){case tx:return yc;case rx:return dc;case ix:return pc;case nx:return gc;case ox:return fc}return t});var uJ=Q.Uint8Array,ax="__lodash_hash_undefined__";function lx(e){return this.__data__.set(e,ax),this}var sx=lx;function ux(e){return this.__data__.has(e)}var cx=ux;function pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Bc;++t<r;)this.add(e[t])}pa.prototype.add=pa.prototype.push=sx;pa.prototype.has=cx;var mc=ft?ft.prototype:void 0,cJ=mc?mc.valueOf:void 0,dx=Object.prototype,dJ=dx.hasOwnProperty,px=Object.prototype,pJ=px.hasOwnProperty,gJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),fJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function qc(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 gx(e,t){let r=await qc(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 fx(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 qc(i,t)}function yx(e){return e!==void 0}var mx=yx,ga=class Gc{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 Gc),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))}},bx=class Yc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Yc),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 hx(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,b)=>s(l+1,f,b),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function vx({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var wx=vx,ia="ly.img.ai.temp";async function kx(e,t){return e.engine.asset.findAllSources().includes(ia)||e.engine.asset.addLocalSource(ia),e.engine.asset.apply(ia,t)}function xx(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 Ix(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 Ax(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 ka(e){return e instanceof Error&&e.name==="AbortError"}function Cx(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Mx(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
144
+ `,rv=tv,iv=typeof global=="object"&&global&&global.Object===Object&&global,uc=iv,nv=typeof self=="object"&&self&&self.Object===Object&&self,ov=uc||nv||Function("return this")(),J=ov,av=J.Symbol,ot=av,cc=Object.prototype,lv=cc.hasOwnProperty,sv=cc.toString,Sr=ot?ot.toStringTag:void 0;function uv(e){var t=lv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=sv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var cv=uv,dv=Object.prototype,pv=dv.toString;function gv(e){return pv.call(e)}var fv=gv,yv="[object Null]",mv="[object Undefined]",fu=ot?ot.toStringTag:void 0;function hv(e){return e==null?e===void 0?mv:yv:fu&&fu in Object(e)?cv(e):fv(e)}var qr=hv;function bv(e){return e!=null&&typeof e=="object"}var fa=bv,ZK=Array.isArray;function vv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dc=vv,wv="[object AsyncFunction]",kv="[object Function]",xv="[object GeneratorFunction]",Iv="[object Proxy]";function Av(e){if(!dc(e))return!1;var t=qr(e);return t==kv||t==xv||t==wv||t==Iv}var Cv=Av,Mv=J["__core-js_shared__"],Ho=Mv,yu=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jv(e){return!!yu&&yu in e}var Sv=jv,$v=Function.prototype,_v=$v.toString;function Ev(e){if(e!=null){try{return _v.call(e)}catch{}try{return e+""}catch{}}return""}var Me=Ev,Lv=/[\\^$.*+?()[\]{}|]/g,Tv=/^\[object .+?Constructor\]$/,Ov=Function.prototype,Nv=Object.prototype,Dv=Ov.toString,Pv=Nv.hasOwnProperty,zv=RegExp("^"+Dv.call(Pv).replace(Lv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uv(e){if(!dc(e)||Sv(e))return!1;var t=Cv(e)?zv:Tv;return t.test(Me(e))}var Rv=Uv;function Fv(e,t){return e?.[t]}var Vv=Fv;function Bv(e,t){var r=Vv(e,t);return Rv(r)?r:void 0}var ct=Bv,qv=ct(J,"WeakMap"),na=qv;function Gv(e,t){return e===t||e!==e&&t!==t}var Yv=Gv,Hv=9007199254740991;function Zv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hv}var Qv=Zv,QK=Object.prototype,Wv="[object Arguments]";function Kv(e){return fa(e)&&qr(e)==Wv}var mu=Kv,pc=Object.prototype,Jv=pc.hasOwnProperty,Xv=pc.propertyIsEnumerable,WK=mu(function(){return arguments}())?mu:function(e){return fa(e)&&Jv.call(e,"callee")&&!Xv.call(e,"callee")},gc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=gc&&typeof module=="object"&&module&&!module.nodeType&&module,e7=hu&&hu.exports===gc,bu=e7?J.Buffer:void 0,KK=bu?bu.isBuffer:void 0,t7="[object Arguments]",r7="[object Array]",i7="[object Boolean]",n7="[object Date]",o7="[object Error]",a7="[object Function]",l7="[object Map]",s7="[object Number]",u7="[object Object]",c7="[object RegExp]",d7="[object Set]",p7="[object String]",g7="[object WeakMap]",f7="[object ArrayBuffer]",y7="[object DataView]",m7="[object Float32Array]",h7="[object Float64Array]",b7="[object Int8Array]",v7="[object Int16Array]",w7="[object Int32Array]",k7="[object Uint8Array]",x7="[object Uint8ClampedArray]",I7="[object Uint16Array]",A7="[object Uint32Array]",N={};N[m7]=N[h7]=N[b7]=N[v7]=N[w7]=N[k7]=N[x7]=N[I7]=N[A7]=!0;N[t7]=N[r7]=N[f7]=N[i7]=N[y7]=N[n7]=N[o7]=N[a7]=N[l7]=N[s7]=N[u7]=N[c7]=N[d7]=N[p7]=N[g7]=!1;function C7(e){return fa(e)&&Qv(e.length)&&!!N[qr(e)]}var M7=C7;function j7(e){return function(t){return e(t)}}var S7=j7,fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Or=fc&&typeof module=="object"&&module&&!module.nodeType&&module,$7=Or&&Or.exports===fc,Zo=$7&&uc.process,_7=function(){try{var e=Or&&Or.require&&Or.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),vu=_7,wu=vu&&vu.isTypedArray,JK=wu?S7(wu):M7,E7=Object.prototype,XK=E7.hasOwnProperty;function L7(e,t){return function(r){return e(t(r))}}var T7=L7,eJ=T7(Object.keys,Object),O7=Object.prototype,tJ=O7.hasOwnProperty,N7=ct(Object,"create"),Pr=N7;function D7(){this.__data__=Pr?Pr(null):{},this.size=0}var P7=D7;function z7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var U7=z7,R7="__lodash_hash_undefined__",F7=Object.prototype,V7=F7.hasOwnProperty;function B7(e){var t=this.__data__;if(Pr){var r=t[e];return r===R7?void 0:r}return V7.call(t,e)?t[e]:void 0}var q7=B7,G7=Object.prototype,Y7=G7.hasOwnProperty;function H7(e){var t=this.__data__;return Pr?t[e]!==void 0:Y7.call(t,e)}var Z7=H7,Q7="__lodash_hash_undefined__";function W7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pr&&t===void 0?Q7:t,this}var K7=W7;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=P7;dt.prototype.delete=U7;dt.prototype.get=q7;dt.prototype.has=Z7;dt.prototype.set=K7;var ku=dt;function J7(){this.__data__=[],this.size=0}var X7=J7;function e8(e,t){for(var r=e.length;r--;)if(Yv(e[r][0],t))return r;return-1}var En=e8,t8=Array.prototype,r8=t8.splice;function i8(e){var t=this.__data__,r=En(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():r8.call(t,r,1),--this.size,!0}var n8=i8;function o8(e){var t=this.__data__,r=En(t,e);return r<0?void 0:t[r][1]}var a8=o8;function l8(e){return En(this.__data__,e)>-1}var s8=l8;function u8(e,t){var r=this.__data__,i=En(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var c8=u8;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=X7;pt.prototype.delete=n8;pt.prototype.get=a8;pt.prototype.has=s8;pt.prototype.set=c8;var Ln=pt,d8=ct(J,"Map"),zr=d8;function p8(){this.size=0,this.__data__={hash:new ku,map:new(zr||Ln),string:new ku}}var g8=p8;function f8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var y8=f8;function m8(e,t){var r=e.__data__;return y8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=m8;function h8(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var b8=h8;function v8(e){return Tn(this,e).get(e)}var w8=v8;function k8(e){return Tn(this,e).has(e)}var x8=k8;function I8(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var A8=I8;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=g8;gt.prototype.delete=b8;gt.prototype.get=w8;gt.prototype.has=x8;gt.prototype.set=A8;var yc=gt;function C8(){this.__data__=new Ln,this.size=0}var M8=C8;function j8(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var S8=j8;function $8(e){return this.__data__.get(e)}var _8=$8;function E8(e){return this.__data__.has(e)}var L8=E8,T8=200;function O8(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!zr||i.length<T8-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yc(i)}return r.set(e,t),this.size=r.size,this}var N8=O8;function Gr(e){var t=this.__data__=new Ln(e);this.size=t.size}Gr.prototype.clear=M8;Gr.prototype.delete=S8;Gr.prototype.get=_8;Gr.prototype.has=L8;Gr.prototype.set=N8;var D8=Object.prototype,rJ=D8.propertyIsEnumerable,P8=ct(J,"DataView"),oa=P8,z8=ct(J,"Promise"),aa=z8,U8=ct(J,"Set"),la=U8,xu="[object Map]",R8="[object Object]",Iu="[object Promise]",Au="[object Set]",Cu="[object WeakMap]",Mu="[object DataView]",F8=Me(oa),V8=Me(zr),B8=Me(aa),q8=Me(la),G8=Me(na),rt=qr;(oa&&rt(new oa(new ArrayBuffer(1)))!=Mu||zr&&rt(new zr)!=xu||aa&&rt(aa.resolve())!=Iu||la&&rt(new la)!=Au||na&&rt(new na)!=Cu)&&(rt=function(e){var t=qr(e),r=t==R8?e.constructor:void 0,i=r?Me(r):"";if(i)switch(i){case F8:return Mu;case V8:return xu;case B8:return Iu;case q8:return Au;case G8:return Cu}return t});var iJ=J.Uint8Array,Y8="__lodash_hash_undefined__";function H8(e){return this.__data__.set(e,Y8),this}var Z8=H8;function Q8(e){return this.__data__.has(e)}var W8=Q8;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=Z8;sa.prototype.has=W8;var ju=ot?ot.prototype:void 0,nJ=ju?ju.valueOf:void 0,K8=Object.prototype,oJ=K8.hasOwnProperty,J8=Object.prototype,aJ=J8.hasOwnProperty,lJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),sJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),uJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function X8(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 ft(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 X8(i,t)}function e6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Su=e6,Cn="@imgly/plugin-ai-image-generation-web",t6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"],On="editImage",le=`ly.img.${On}`,$u=`ly.img.plugin-ai-image-generation-web.quickAction.${On}`,hn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${On}`;function bn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${On}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var r6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${hn}`]:"Edit Image...",[`${hn}.description`]:"Change image based on description",[`${hn}.prompt`]:"Edit Image...",[`${$u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${hn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${$u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${le}.prompt`,"");t.TextArea(`${le}.prompt`,{inputLabel:bn(l,"prompt"),placeholder:bn(l,"prompt.placeholder")[1],...u}),t.Separator(`${le}.separator`),r.builder.ButtonRow(`${le}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${le}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${le}.footer.apply`,{label:bn(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 ft(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${le}.button`,{label:bn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),i6=r6,Nn="swapBackground",se=`ly.img.${Nn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Nn}`,vn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Nn}`;function wn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Nn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var n6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${vn}`]:"Swap Background...",[`${vn}.description`]:"Change the background of the image",[`${vn}.prompt`]:"Swap Background...",[`${_u}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${vn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${_u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${se}.prompt`,"");t.TextArea(`${se}.prompt`,{inputLabel:wn(l,"prompt"),placeholder:wn(l,"prompt.placeholder")[1],...u}),t.Separator(`${se}.separator`),r.builder.ButtonRow(`${se}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${se}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${se}.footer.apply`,{label:wn(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 ft(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${se}.button`,{label:wn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),o6=n6,Dn="styleTransfer",$r=`ly.img.${Dn}`,a6=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function Eu(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 l6=[{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."}],s6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${Z}`]:"Change Art Style",[`${Z}.description`]:"Transform image into different art styles",[`${Z}.water`]:"Watercolor Painting",[`${Z}.oil`]:"Oil Painting",[`${Z}.charcoal`]:"Charcoal Sketch",[`${Z}.pencil`]:"Pencil Drawing",[`${Z}.pastel`]:"Pastel Artwork",[`${Z}.ink`]:"Ink Wash",[`${Z}.stained-glass`]:"Stained Glass Window",[`${Z}.japanese`]:"Japanese Woodblock Print"}}),{id:$r,type:"quick",kind:"image",label:`${a6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Eu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${$r}.popover.section`,{children:()=>{r.builder.Menu(`${$r}.popover.menu`,{children:()=>{l6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Eu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(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"})}}})})}})}})}})}}),u6=s6,Pn="artistTransfer",_r=`ly.img.${Pn}`,c6=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function Lu(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 d6=[{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."}],p6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:_r,type:"quick",kind:"image",label:`${c6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Lu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{d6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Lu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(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"})}}})})}})}})}})}}),g6=p6,zn="createVariant",ue=`ly.img.${zn}`,Tu=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,kn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function xn(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 f6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${kn}`]:"Create Variant...",[`${kn}.description`]:"Create a variation of the image",[`${kn}.prompt`]:"Create Variant...",[`${Tu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${kn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Tu}`,enable:t=>{if(!Br()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:xn(l,"prompt"),placeholder:xn(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:xn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),w=o.block.getHeight(f),k=.02*Math.min(b,w)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await ft(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:xn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),y6=f6,Un="combineImages",ce=`ly.img.${Un}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,Qo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function In(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 m6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Qo}.apply`]:"Combine",[`${Qo}`]:"Combine Images...",[`${Qo}.prompt`]:"Image Combination Instructions",[`${Ou}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:ce,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel: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=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),w=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+w),o.block.setPositionY(g,o.block.getPositionY(g)+w);let k=await Promise.all(p.map(I=>ft(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(`${ce}.button`,{label:In(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),h6=m6,Rn="remixPage",Nu=`ly.img.${Rn}`,b6=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,v6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function w6(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 k6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${v6}`]:"Turn Page into Image"}}),{id:Nu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${b6}`,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(`${Nu}.button`,{label:w6(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(b=>{i.block.destroy(b)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),x6=k6,Fn="remixPageWithPrompt",de=`ly.img.${Fn}`,Du=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Wo=`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 I6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Wo}`]:"Remix Page...",[`${Wo}.prompt`]:"Remix Page Prompt",[`${Du}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Wo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Du}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel: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=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),w=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,I),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,w),o.block.setPositionY(y,k);let x=o.block.createFill("image");o.block.setFill(y,x),o.block.setString(x,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=I6,pe="ly.img.ai.image-generation";function C6(e){return{async initialize({cesdk:t}){if(t==null)return;b9(t,Cn,"0.2.7"),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=ca.get(),i=r.register({type:"plugin",sceneMode:"Design",id:Cn,pluginId:Cn,label:"Generate Image",meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});t.ui.addIconSet(ev,rv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image"}}),M6(e),r.register(i6({cesdk:t})),r.register(o6({cesdk:t})),r.register(u6({cesdk:t})),r.register(g6({cesdk:t})),r.register(y6({cesdk:t})),r.register(h6({cesdk:t})),r.register(x6({cesdk:t})),r.register(A6({cesdk:t}));let n=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,o=await Promise.all(Su(n).map(u=>u({cesdk:t}))),s=await Promise.all(Su(a).map(u=>u({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await $3("image",{fromText:o,fromImage:s},{cesdk:t},e),l=await X3({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:t6});c.history?.assetSourceId!=null,l.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",l.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:_n})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,c.panel.builderRenderFunction),w9({cesdk:t,panelId:pe})):i()}}}function M6(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 j6=C6,S6=e=>({name:Cn,version:"0.2.7",...j6(e)}),mc=S6;var $6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ht(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ht(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ht(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ht(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ht(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ht(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ht(n,t,a)}return e}var _6=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")}},E6=typeof global=="object"&&global&&global.Object===Object&&global,Kc=E6,L6=typeof self=="object"&&self&&self.Object===Object&&self,T6=Kc||L6||Function("return this")(),X=T6,O6=X.Symbol,bt=O6,Jc=Object.prototype,N6=Jc.hasOwnProperty,D6=Jc.toString,Yr=bt?bt.toStringTag:void 0;function P6(e){var t=N6.call(e,Yr),r=e[Yr];try{e[Yr]=void 0;var i=!0}catch{}var n=D6.call(e);return i&&(t?e[Yr]=r:delete e[Yr]),n}var z6=P6,U6=Object.prototype,R6=U6.toString;function F6(e){return R6.call(e)}var V6=F6,B6="[object Null]",q6="[object Undefined]",hc=bt?bt.toStringTag:void 0;function G6(e){return e==null?e===void 0?q6:B6:hc&&hc in Object(e)?z6(e):V6(e)}var ii=G6;function Y6(e){return e!=null&&typeof e=="object"}var Oa=Y6,fJ=Array.isArray;function H6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xc=H6,Z6="[object AsyncFunction]",Q6="[object Function]",W6="[object GeneratorFunction]",K6="[object Proxy]";function J6(e){if(!Xc(e))return!1;var t=ii(e);return t==Q6||t==W6||t==Z6||t==K6}var X6=J6,ew=X["__core-js_shared__"],ya=ew,bc=function(){var e=/[^.]+$/.exec(ya&&ya.keys&&ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tw(e){return!!bc&&bc in e}var rw=tw,iw=Function.prototype,nw=iw.toString;function ow(e){if(e!=null){try{return nw.call(e)}catch{}try{return e+""}catch{}}return""}var Se=ow,aw=/[\\^$.*+?()[\]{}|]/g,lw=/^\[object .+?Constructor\]$/,sw=Function.prototype,uw=Object.prototype,cw=sw.toString,dw=uw.hasOwnProperty,pw=RegExp("^"+cw.call(dw).replace(aw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gw(e){if(!Xc(e)||rw(e))return!1;var t=X6(e)?pw:lw;return t.test(Se(e))}var fw=gw;function yw(e,t){return e?.[t]}var mw=yw;function hw(e,t){var r=mw(e,t);return fw(r)?r:void 0}var wt=hw,bw=wt(X,"WeakMap"),xa=bw;function vw(e,t){return e===t||e!==e&&t!==t}var ww=vw,kw=9007199254740991;function xw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kw}var Iw=xw,yJ=Object.prototype,Aw="[object Arguments]";function Cw(e){return Oa(e)&&ii(e)==Aw}var vc=Cw,ed=Object.prototype,Mw=ed.hasOwnProperty,jw=ed.propertyIsEnumerable,mJ=vc(function(){return arguments}())?vc:function(e){return Oa(e)&&Mw.call(e,"callee")&&!jw.call(e,"callee")},td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wc=td&&typeof module=="object"&&module&&!module.nodeType&&module,Sw=wc&&wc.exports===td,kc=Sw?X.Buffer:void 0,hJ=kc?kc.isBuffer:void 0,$w="[object Arguments]",_w="[object Array]",Ew="[object Boolean]",Lw="[object Date]",Tw="[object Error]",Ow="[object Function]",Nw="[object Map]",Dw="[object Number]",Pw="[object Object]",zw="[object RegExp]",Uw="[object Set]",Rw="[object String]",Fw="[object WeakMap]",Vw="[object ArrayBuffer]",Bw="[object DataView]",qw="[object Float32Array]",Gw="[object Float64Array]",Yw="[object Int8Array]",Hw="[object Int16Array]",Zw="[object Int32Array]",Qw="[object Uint8Array]",Ww="[object Uint8ClampedArray]",Kw="[object Uint16Array]",Jw="[object Uint32Array]",D={};D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=!0;D[$w]=D[_w]=D[Vw]=D[Ew]=D[Bw]=D[Lw]=D[Tw]=D[Ow]=D[Nw]=D[Dw]=D[Pw]=D[zw]=D[Uw]=D[Rw]=D[Fw]=!1;function Xw(e){return Oa(e)&&Iw(e.length)&&!!D[ii(e)]}var ek=Xw;function tk(e){return function(t){return e(t)}}var rk=tk,rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kr=rd&&typeof module=="object"&&module&&!module.nodeType&&module,ik=Kr&&Kr.exports===rd,ma=ik&&Kc.process,nk=function(){try{var e=Kr&&Kr.require&&Kr.require("util").types;return e||ma&&ma.binding&&ma.binding("util")}catch{}}(),xc=nk,Ic=xc&&xc.isTypedArray,bJ=Ic?rk(Ic):ek,ok=Object.prototype,vJ=ok.hasOwnProperty;function ak(e,t){return function(r){return e(t(r))}}var lk=ak,wJ=lk(Object.keys,Object),sk=Object.prototype,kJ=sk.hasOwnProperty,uk=wt(Object,"create"),Xr=uk;function ck(){this.__data__=Xr?Xr(null):{},this.size=0}var dk=ck;function pk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gk=pk,fk="__lodash_hash_undefined__",yk=Object.prototype,mk=yk.hasOwnProperty;function hk(e){var t=this.__data__;if(Xr){var r=t[e];return r===fk?void 0:r}return mk.call(t,e)?t[e]:void 0}var bk=hk,vk=Object.prototype,wk=vk.hasOwnProperty;function kk(e){var t=this.__data__;return Xr?t[e]!==void 0:wk.call(t,e)}var xk=kk,Ik="__lodash_hash_undefined__";function Ak(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xr&&t===void 0?Ik:t,this}var Ck=Ak;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=dk;kt.prototype.delete=gk;kt.prototype.get=bk;kt.prototype.has=xk;kt.prototype.set=Ck;var Ac=kt;function Mk(){this.__data__=[],this.size=0}var jk=Mk;function Sk(e,t){for(var r=e.length;r--;)if(ww(e[r][0],t))return r;return-1}var Bn=Sk,$k=Array.prototype,_k=$k.splice;function Ek(e){var t=this.__data__,r=Bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_k.call(t,r,1),--this.size,!0}var Lk=Ek;function Tk(e){var t=this.__data__,r=Bn(t,e);return r<0?void 0:t[r][1]}var Ok=Tk;function Nk(e){return Bn(this.__data__,e)>-1}var Dk=Nk;function Pk(e,t){var r=this.__data__,i=Bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zk=Pk;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=jk;xt.prototype.delete=Lk;xt.prototype.get=Ok;xt.prototype.has=Dk;xt.prototype.set=zk;var qn=xt,Uk=wt(X,"Map"),ei=Uk;function Rk(){this.size=0,this.__data__={hash:new Ac,map:new(ei||qn),string:new Ac}}var Fk=Rk;function Vk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bk=Vk;function qk(e,t){var r=e.__data__;return Bk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Gn=qk;function Gk(e){var t=Gn(this,e).delete(e);return this.size-=t?1:0,t}var Yk=Gk;function Hk(e){return Gn(this,e).get(e)}var Zk=Hk;function Qk(e){return Gn(this,e).has(e)}var Wk=Qk;function Kk(e,t){var r=Gn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jk=Kk;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=Fk;It.prototype.delete=Yk;It.prototype.get=Zk;It.prototype.has=Wk;It.prototype.set=Jk;var id=It;function Xk(){this.__data__=new qn,this.size=0}var ex=Xk;function tx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rx=tx;function ix(e){return this.__data__.get(e)}var nx=ix;function ox(e){return this.__data__.has(e)}var ax=ox,lx=200;function sx(e,t){var r=this.__data__;if(r instanceof qn){var i=r.__data__;if(!ei||i.length<lx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new id(i)}return r.set(e,t),this.size=r.size,this}var ux=sx;function ni(e){var t=this.__data__=new qn(e);this.size=t.size}ni.prototype.clear=ex;ni.prototype.delete=rx;ni.prototype.get=nx;ni.prototype.has=ax;ni.prototype.set=ux;var cx=Object.prototype,xJ=cx.propertyIsEnumerable,dx=wt(X,"DataView"),Ia=dx,px=wt(X,"Promise"),Aa=px,gx=wt(X,"Set"),Ca=gx,Cc="[object Map]",fx="[object Object]",Mc="[object Promise]",jc="[object Set]",Sc="[object WeakMap]",$c="[object DataView]",yx=Se(Ia),mx=Se(ei),hx=Se(Aa),bx=Se(Ca),vx=Se(xa),yt=ii;(Ia&&yt(new Ia(new ArrayBuffer(1)))!=$c||ei&&yt(new ei)!=Cc||Aa&&yt(Aa.resolve())!=Mc||Ca&&yt(new Ca)!=jc||xa&&yt(new xa)!=Sc)&&(yt=function(e){var t=ii(e),r=t==fx?e.constructor:void 0,i=r?Se(r):"";if(i)switch(i){case yx:return $c;case mx:return Cc;case hx:return Mc;case bx:return jc;case vx:return Sc}return t});var IJ=X.Uint8Array,wx="__lodash_hash_undefined__";function kx(e){return this.__data__.set(e,wx),this}var xx=kx;function Ix(e){return this.__data__.has(e)}var Ax=Ix;function Ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new id;++t<r;)this.add(e[t])}Ma.prototype.add=Ma.prototype.push=xx;Ma.prototype.has=Ax;var _c=bt?bt.prototype:void 0,AJ=_c?_c.valueOf:void 0,Cx=Object.prototype,CJ=Cx.hasOwnProperty,Mx=Object.prototype,MJ=Mx.hasOwnProperty,jJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function nd(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 jx(e,t){let r=await nd(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 Sx(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 nd(i,t)}function $x(e){return e!==void 0}var _x=$x;function oi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ai(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ja=class od{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 od),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))}},Ex=class ad{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ad),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 Lx(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Tx({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 Ox=Tx,ha="ly.img.ai.temp";async function Nx(e,t){return e.engine.asset.findAllSources().includes(ha)||e.engine.asset.addLocalSource(ha),e.engine.asset.apply(ha,t)}function Dx(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 ld(){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 Px(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 zx(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 Na(e){return e instanceof Error&&e.name==="AbortError"}function Ux(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Rx(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
145
145
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
146
146
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
147
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function jx(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 Sx=jx;function $x(){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 Ex=$x;function _x(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),Lx(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:xx(e)})}function Lx(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var bc=_x,Tx="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",xa=Tx;function Ox(e,t,r){switch(t){case"image":return Nx(e,r[t]);case"video":return Dx(e,r[t]);case"sticker":return Px(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Nx(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:xa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Dx(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:xa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Px(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:xa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var zx=Ox;async function Ux(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 Rx(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 Fx(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 Vx(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 Bx(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Rx(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 Fx(e,t,r){let i=t.width,n=t.height,a=await Ix(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 Vx(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 Bx(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 Zc=Ux;function qx(e){switch(e.userFlow){case"placeholder":return Yx(e);case"generation-only":return Gx(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Gx(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(de(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(de(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(de(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Hc(),c=await Zc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Yx(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(de(t,r))return{status:"aborted"};let s=Hc(),c=zx(s,a,o);if(i=await kx(t,c),de(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(de(t,r,i))return{status:"aborted"};if(l.status!=="success")return 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 Zc(s,a,o,l.output);if(de(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),de(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)&&(ka(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function de(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Hx=qx;function Ia(e){return`${e}.generating`}function Zx(e){return`${e}.abort`}function Qx(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(Zx(d),()=>{}),y=c.global(Ia(d),!1),f,b=y.value&&g,h=()=>{b&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},M;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=i();M=a.requiredInputs.every(v=>!C.input[v])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:M,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:v})=>{l.ui.closeDialog(v),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:v})=>{h(),l.ui.closeDialog(v),k.setValue(void 0)}}});k.setValue(C)}}:void 0,onClick:async()=>{f=new AbortController;let C=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let v=await Hx({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(v.status==="aborted")return;if(v.status==="error"){bc(v.message,{cesdk:l,provider:t,getInput:i});return}if(v.status==="success"&&v.type==="sync"){let w=t.output.notification;Wx(l,w,()=>({input:i().input,output:v.output}))}}catch(v){if(ka(v))return;bc(v,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.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 Wx(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 Qc=Qx;async function Kx({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Ia(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Qc(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Jx=Kx;function Wc(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 Br(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=Wc(e,t.$ref),n={...Br(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Br(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Br(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Br(e,t[n],r));return i}return t}function Xx(e){return Br(e,{...e})}function eI(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 tI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return rI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function rI(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=iI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function iI(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 Kc=tI;function Ie(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function Jc(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 Xc(e,t,r,i,n,a,o){if(t.schema==null)return i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null?i.renderCustomProperty[t.id](e,t):void 0;let s=t,c=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null)return i.renderCustomProperty[t.id](e,t);switch(c){case"string":return t.schema.enum!=null?nI(e,s,r,i,n,a,o):ed(e,s,r,i,n,a,o);case"boolean":return td(e,s,r,i,n,a,o);case"number":case"integer":return rd(e,s,r,i,n,a,o);case"object":return fa(e,s,r,i,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return oI(e,s,r,i,n,a,o);break}default:console.error(`Unsupported property type: ${c}`)}}function fa(e,t,r,i,n,a,o){let s=Kc(t.schema??{},i).reduce((c,l)=>{let u=Xc(e,l,r,i,n,a,o);return u!=null&&(c[l.id]=u()),c},{});return()=>({id:t.id,type:"object",value:s})}function ed(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Ie(t,r,o),g=c(u,t.schema.default??""),p=aI(t.schema),y=p?.component!=null&&p?.component==="TextArea"?"TextArea":"TextInput";return s[y](u,{inputLabel:d,placeholder:n.i18n?.prompt,...g}),()=>({id:t.id,type:"string",value:g.value})}function nI(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Ie(t,r,o),{labels:g,icons:p}=Jc(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:Ie(t,r,o,h),icon:p[h]})),f=t.schema.default!=null?y.find(h=>h.id===t.schema.default)??y[0]:y[0],b=c(u,f);return s.Select(u,{inputLabel:d,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function td(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Ie(t,r,o),g=!!t.schema.default,p=c(u,g);return s.Checkbox(u,{inputLabel:d,...p}),()=>({id:t.id,type:"boolean",value:p.value})}function rd(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Ie(t,r,o),g=t.schema.minimum,p=t.schema.maximum,y=t.schema.default;y==null&&(g!=null?y=g:p!=null?y=p:y=0);let f=c(u,y);if(g!=null&&p!=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"]),s.Slider(u,{inputLabel:d,min:g,max:p,step:b,...f})}else s.NumberInput(u,{inputLabel:d,min:g,max:p,...f});return()=>({id:t.id,type:"integer",value:f.value})}function oI(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Ie(t,r,o),g=t.schema.anyOf??[],p=[],y={},f={},{labels:b,icons:h}=Jc(t.schema),M={string:ed,boolean:td,integer:rd,object:fa},k=(m,x)=>m.$ref?m.$ref.split("/").pop():x.split(".").pop()??x,C=(m,x)=>({id:m,label:Ie(t,r,o,x),icon:h[x]??h[m]});g.forEach((m,x)=>{let j=`${r.id}.${l}.anyOf[${x}]`;if(m.$ref||m.title){let I=m.$ref?m.$ref.split("/").pop():m.title;y[j]=()=>fa(e,{id:j,schema:{...m,title:b[I]||I}},r,i,n,a,o),p.push(C(j,I))}else if(m.type==="string"&&m.enum)m.enum.forEach(I=>{p.push(C(I,I))});else if(m.type&&M[m.type]){let I=M[m.type];y[j]=()=>I(e,{id:j,schema:{...m,title:m.title}},r,i,n,a,o);let A=k(m,j);p.push(m.type==="string"&&!m.enum?{id:j,label:m.title||A,icon:m.title&&h[m.title]||h[A]}:C(j,A))}});let v=t.schema.default!=null?p.find(m=>m.id===t.schema.default)??p[0]:p[0],w=c(u,v);if(s.Select(u,{inputLabel:d,values:p,...w}),w.value.id in y){let m=y[w.value.id]();f[w.value.id]=m}return()=>{let m=f[w.value.id];return m!=null?{...m(),id:t.id}:{id:t.id,type:"string",value:w.value.id}}}function aI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var lI=Xc,sI={"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 hc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function uI(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||hc(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||hc(p);n[a(l.id,p)]=y}})}});let c={...sI,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function cI({options:e,provider:t,panelInput:r,config:i},n){let{id:a}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=Xx(r.document),s=Wc(o,r.inputReference);if(!eI(s,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let c=s,l=Kc(c,r);return uI(l,t,e,t.kind),u=>{let{builder:d}=u,g=[];d.Section(`${a}.schema.section`,{children:()=>{l.forEach(b=>{let h=lI(u,b,t,r,e,i,t.kind);h!=null&&(Array.isArray(h)?g.push(...h):g.push(h))})}});let p=g.map(b=>b()),y=b=>b.type==="object"?Object.entries(b.value).reduce((h,[M,k])=>(h[M]=y(k),h),{}):b.value,f=p.reduce((b,h)=>(b[h.id]=y(h),b),{});Qc(u,t,n,()=>({input:f}),()=>r.getBlockInput(f),{...e,requiredInputs:c.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var dI=cI;async function pI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Jx(e,t);case"schema":return dI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gI=pI;function fI(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 y6(o,r)),o}return i}var yI=fI;function mI(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 bI=mI,na="@imgly/plugin-ai-generation",hI=`
147
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Fx(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 Vx=Fx;function Bx(){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 qx=Bx;function Gx(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),Yx(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Dx(e)})}function Yx(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Ec=Gx,Hx="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Da=Hx;function Zx(e,t,r){switch(t){case"image":return Qx(e,r[t]);case"video":return Wx(e,r[t]);case"sticker":return Kx(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Qx(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Da,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Wx(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Da,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Kx(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Da,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Jx=Zx;async function Xx(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 eI(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 tI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return rI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return iI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function eI(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 tI(e,t,r){let i=t.width,n=t.height,a=await Px(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function rI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function iI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var sd=Xx;function nI(e){switch(e.userFlow){case"placeholder":return aI(e);case"generation-only":return oI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function oI(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=ld(),c=await sd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function aI(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=ld(),c=Jx(s,a,o);if(i=await Nx(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,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await sd(s,a,o,l.output);if(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)&&(Na(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var lI=nI;function Pa(e){return`${e}.generating`}function sI(e){return`${e}.abort`}function uI(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(sI(d),()=>{}),m=c.global(Pa(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await lI({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(y.status==="aborted")return;if(y.status==="error"){Ec(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;cI(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(Na(y))return;Ec(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function cI(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=uI;async function dI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Pa(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 pI=dI;function cd(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 Qr(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=cd(e,t.$ref),n={...Qr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Qr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Qr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Qr(e,t[n],r));return i}return t}function gI(e){return Qr(e,{...e})}function fI(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 yI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return mI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function mI(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=hI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function hI(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var dd=yI;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function pd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function gd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?bI(e,c,r,i,n,a,o,s):fd(e,c,r,i,n,a,o,s);case"boolean":return yd(e,c,r,i,n,a,o,s);case"number":case"integer":return md(e,c,r,i,n,a,o,s);case"object":return Sa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return vI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Sa(e,t,r,i,n,a,o,s){let c=dd(t.schema??{},i).reduce((l,u)=>{let d=gd(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 fd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=oi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=ai(d,f,m,t.schema.default,""),b=l(p,h),w=wI(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function bI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),{labels:m,icons:f}=pd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(t,r,o,x),icon:f[x]})),b=oi(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=ai(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function yd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=oi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ai(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function md(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=oi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=ai(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function vI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=pd(t.schema),I=oi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:fd,boolean:yd,integer:md,object:Sa},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:je(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Sa(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=ai(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function wI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var kI=gd,xI={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Lc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function II(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Lc(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Lc(g);n[a(l.id,g)]=m}})}});let c={...xI,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function AI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=gI(r.document),c=cd(s,r.inputReference);if(!fI(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=dd(l,r);return II(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=kI(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});ud(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var CI=AI;async function MI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return pI(e,t);case"schema":return CI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var jI=MI;function SI(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 $6(o,r)),o}return i}var $I=SI;function _I(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 EI=_I,ba="@imgly/plugin-ai-generation",LI=`
148
148
  <svg>
149
149
  <symbol
150
150
  fill="none"
@@ -162,7 +162,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
162
162
  fill="none"
163
163
  xmlns="http://www.w3.org/2000/svg"
164
164
  viewBox="0 0 24 24"
165
- id="${na}/image"
165
+ id="${ba}/image"
166
166
  >
167
167
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
168
168
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -174,7 +174,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
174
174
  fill="none"
175
175
  xmlns="http://www.w3.org/2000/svg"
176
176
  viewBox="0 0 24 24"
177
- id="${na}/video"
177
+ id="${ba}/video"
178
178
  >
179
179
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
180
180
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -185,7 +185,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
185
185
  fill="none"
186
186
  xmlns="http://www.w3.org/2000/svg"
187
187
  viewBox="0 0 24 24"
188
- id="${na}/audio"
188
+ id="${ba}/audio"
189
189
  >
190
190
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
191
191
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -205,11 +205,11 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
205
205
 
206
206
  </symbol>
207
207
  </svg>
208
- `,vI=hI;function wI(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await id(2e3),await kI(t,e,r)):i(t,r)}async function kI(e,t,r){switch(t.kind){case"image":return xI(e,t,r);case"video":return II(e,t,r);case"text":return AI(e,t,r);case"audio":return MI(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xI(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 fx(s,r),l=await gx(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function II(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function AI(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=Fr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Fr(n,o)}else"customPrompt"in e?a=Fr(n,"custom"):a=Fr(n,"improved");else a=Fr(n,"generated");return CI(a,r.abortSignal)}async function*CI(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 id(100)}return{kind:"text",text:e}}function Fr(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 MI(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:jI(220,i),duration:i,thumbnailUrl:void 0}}function jI(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 SI(i,44100)}function SI(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,b)=>{for(let h=0;h<b.length;h++)u.setUint8(f+h,b.charCodeAt(h))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let b=Math.max(-1,Math.min(1,e[f])),h=Math.round(b*32767);u.setInt16(g,h,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function id(e){return new Promise(t=>{setTimeout(t,e)})}var $I=wI,EI="USER_CANCEL";function _I(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=hx([...e.provider.output.middleware??[],...r?.middlewares??[],wx({enable:r?.debug}),$I({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:Ax(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return ka(n)?{status:"aborted",message:n.message}:n===EI?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var LI=_I;async function TI(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};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=ga.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=yI(a),s=bI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=LI({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gI(a,c);Cx(r.cesdk,"@imgly/plugin-ai-generation",vI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return bx.get().register(u),u}var oa=TI;function OI(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 m6(n,r,i);return r.engine.asset.addSource(a),a.id}var NI=OI;function qr(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 DI(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>oa(e,u,r,i)));o.push(...l),a=zI({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>oa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>oa(e,d,r,i)));o.push(...u),a=PI({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=NI({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(mx)}),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 PI({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),b=[];f.value==="fromText"?b.push(...r):f.value==="fromImage"?b.push(...i):b.push(...r,...i);let h=r.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),M=i.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,h[0]),C=o.experimental.global(`${t}.selectedProvider.fromImage`,M[0]),v=f.value==="fromText"?k:f.value==="fromImage"?C:void 0,w=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,m=n.feature.isEnabled(w,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let x=d&&p&&r.length>0&&i.length>0,j=a&&x,I=b.length>1&&m;if((j||I)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(j&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:qr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:qr(e,"fromText.label"),icon:f.value!=="fromText"&&vc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:qr(e,"fromImage.label"),icon:f.value!=="fromImage"&&vc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),I){let A=f.value==="fromText"?h:f.value==="fromImage"?M:[...h,...M];v!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:qr(e,"providerSelect.label"),values:A,...v})}}}),b.length>1)v?.value.builderRenderFunction?.(o);else{let A=b[0];A&&A.panel?.builderRenderFunction?.(o)}}}function zI({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:d,panel:g})=>({id:d.id,label:d.name??d.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:qr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function vc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ia(r.id),!1).value)}var UI=DI,RI=typeof global=="object"&&global&&global.Object===Object&&global,nd=RI,FI=typeof self=="object"&&self&&self.Object===Object&&self,VI=nd||FI||Function("return this")(),W=VI,BI=W.Symbol,yt=BI,od=Object.prototype,qI=od.hasOwnProperty,GI=od.toString,Vr=yt?yt.toStringTag:void 0;function YI(e){var t=qI.call(e,Vr),r=e[Vr];try{e[Vr]=void 0;var i=!0}catch{}var n=GI.call(e);return i&&(t?e[Vr]=r:delete e[Vr]),n}var HI=YI,ZI=Object.prototype,QI=ZI.toString;function WI(e){return QI.call(e)}var KI=WI,JI="[object Null]",XI="[object Undefined]",wc=yt?yt.toStringTag:void 0;function eA(e){return e==null?e===void 0?XI:JI:wc&&wc in Object(e)?HI(e):KI(e)}var Xr=eA;function tA(e){return e!=null&&typeof e=="object"}var Aa=tA,mJ=Array.isArray;function rA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ad=rA,iA="[object AsyncFunction]",nA="[object Function]",oA="[object GeneratorFunction]",aA="[object Proxy]";function lA(e){if(!ad(e))return!1;var t=Xr(e);return t==nA||t==oA||t==iA||t==aA}var sA=lA,uA=W["__core-js_shared__"],aa=uA,kc=function(){var e=/[^.]+$/.exec(aa&&aa.keys&&aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cA(e){return!!kc&&kc in e}var dA=cA,pA=Function.prototype,gA=pA.toString;function fA(e){if(e!=null){try{return gA.call(e)}catch{}try{return e+""}catch{}}return""}var Ce=fA,yA=/[\\^$.*+?()[\]{}|]/g,mA=/^\[object .+?Constructor\]$/,bA=Function.prototype,hA=Object.prototype,vA=bA.toString,wA=hA.hasOwnProperty,kA=RegExp("^"+vA.call(wA).replace(yA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xA(e){if(!ad(e)||dA(e))return!1;var t=sA(e)?kA:mA;return t.test(Ce(e))}var IA=xA;function AA(e,t){return e?.[t]}var CA=AA;function MA(e,t){var r=CA(e,t);return IA(r)?r:void 0}var wt=MA,jA=wt(W,"WeakMap"),ya=jA;function SA(e,t){return e===t||e!==e&&t!==t}var $A=SA,EA=9007199254740991;function _A(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EA}var LA=_A,bJ=Object.prototype,TA="[object Arguments]";function OA(e){return Aa(e)&&Xr(e)==TA}var xc=OA,ld=Object.prototype,NA=ld.hasOwnProperty,DA=ld.propertyIsEnumerable,hJ=xc(function(){return arguments}())?xc:function(e){return Aa(e)&&NA.call(e,"callee")&&!DA.call(e,"callee")},sd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ic=sd&&typeof module=="object"&&module&&!module.nodeType&&module,PA=Ic&&Ic.exports===sd,Ac=PA?W.Buffer:void 0,vJ=Ac?Ac.isBuffer:void 0,zA="[object Arguments]",UA="[object Array]",RA="[object Boolean]",FA="[object Date]",VA="[object Error]",BA="[object Function]",qA="[object Map]",GA="[object Number]",YA="[object Object]",HA="[object RegExp]",ZA="[object Set]",QA="[object String]",WA="[object WeakMap]",KA="[object ArrayBuffer]",JA="[object DataView]",XA="[object Float32Array]",eC="[object Float64Array]",tC="[object Int8Array]",rC="[object Int16Array]",iC="[object Int32Array]",nC="[object Uint8Array]",oC="[object Uint8ClampedArray]",aC="[object Uint16Array]",lC="[object Uint32Array]",O={};O[XA]=O[eC]=O[tC]=O[rC]=O[iC]=O[nC]=O[oC]=O[aC]=O[lC]=!0;O[zA]=O[UA]=O[KA]=O[RA]=O[JA]=O[FA]=O[VA]=O[BA]=O[qA]=O[GA]=O[YA]=O[HA]=O[ZA]=O[QA]=O[WA]=!1;function sC(e){return Aa(e)&&LA(e.length)&&!!O[Xr(e)]}var uC=sC;function cC(e){return function(t){return e(t)}}var dC=cC,ud=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yr=ud&&typeof module=="object"&&module&&!module.nodeType&&module,pC=Yr&&Yr.exports===ud,la=pC&&nd.process,gC=function(){try{var e=Yr&&Yr.require&&Yr.require("util").types;return e||la&&la.binding&&la.binding("util")}catch{}}(),Cc=gC,Mc=Cc&&Cc.isTypedArray,wJ=Mc?dC(Mc):uC,fC=Object.prototype,kJ=fC.hasOwnProperty;function yC(e,t){return function(r){return e(t(r))}}var mC=yC,xJ=mC(Object.keys,Object),bC=Object.prototype,IJ=bC.hasOwnProperty,hC=wt(Object,"create"),Qr=hC;function vC(){this.__data__=Qr?Qr(null):{},this.size=0}var wC=vC;function kC(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var xC=kC,IC="__lodash_hash_undefined__",AC=Object.prototype,CC=AC.hasOwnProperty;function MC(e){var t=this.__data__;if(Qr){var r=t[e];return r===IC?void 0:r}return CC.call(t,e)?t[e]:void 0}var jC=MC,SC=Object.prototype,$C=SC.hasOwnProperty;function EC(e){var t=this.__data__;return Qr?t[e]!==void 0:$C.call(t,e)}var _C=EC,LC="__lodash_hash_undefined__";function TC(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Qr&&t===void 0?LC:t,this}var OC=TC;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=wC;kt.prototype.delete=xC;kt.prototype.get=jC;kt.prototype.has=_C;kt.prototype.set=OC;var jc=kt;function NC(){this.__data__=[],this.size=0}var DC=NC;function PC(e,t){for(var r=e.length;r--;)if($A(e[r][0],t))return r;return-1}var Ln=PC,zC=Array.prototype,UC=zC.splice;function RC(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():UC.call(t,r,1),--this.size,!0}var FC=RC;function VC(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var BC=VC;function qC(e){return Ln(this.__data__,e)>-1}var GC=qC;function YC(e,t){var r=this.__data__,i=Ln(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HC=YC;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=DC;xt.prototype.delete=FC;xt.prototype.get=BC;xt.prototype.has=GC;xt.prototype.set=HC;var Tn=xt,ZC=wt(W,"Map"),Wr=ZC;function QC(){this.size=0,this.__data__={hash:new jc,map:new(Wr||Tn),string:new jc}}var WC=QC;function KC(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var JC=KC;function XC(e,t){var r=e.__data__;return JC(t)?r[typeof t=="string"?"string":"hash"]:r.map}var On=XC;function eM(e){var t=On(this,e).delete(e);return this.size-=t?1:0,t}var tM=eM;function rM(e){return On(this,e).get(e)}var iM=rM;function nM(e){return On(this,e).has(e)}var oM=nM;function aM(e,t){var r=On(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var lM=aM;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=WC;It.prototype.delete=tM;It.prototype.get=iM;It.prototype.has=oM;It.prototype.set=lM;var cd=It;function sM(){this.__data__=new Tn,this.size=0}var uM=sM;function cM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dM=cM;function pM(e){return this.__data__.get(e)}var gM=pM;function fM(e){return this.__data__.has(e)}var yM=fM,mM=200;function bM(e,t){var r=this.__data__;if(r instanceof Tn){var i=r.__data__;if(!Wr||i.length<mM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cd(i)}return r.set(e,t),this.size=r.size,this}var hM=bM;function ei(e){var t=this.__data__=new Tn(e);this.size=t.size}ei.prototype.clear=uM;ei.prototype.delete=dM;ei.prototype.get=gM;ei.prototype.has=yM;ei.prototype.set=hM;var vM=Object.prototype,AJ=vM.propertyIsEnumerable,wM=wt(W,"DataView"),ma=wM,kM=wt(W,"Promise"),ba=kM,xM=wt(W,"Set"),ha=xM,Sc="[object Map]",IM="[object Object]",$c="[object Promise]",Ec="[object Set]",_c="[object WeakMap]",Lc="[object DataView]",AM=Ce(ma),CM=Ce(Wr),MM=Ce(ba),jM=Ce(ha),SM=Ce(ya),pt=Xr;(ma&&pt(new ma(new ArrayBuffer(1)))!=Lc||Wr&&pt(new Wr)!=Sc||ba&&pt(ba.resolve())!=$c||ha&&pt(new ha)!=Ec||ya&&pt(new ya)!=_c)&&(pt=function(e){var t=Xr(e),r=t==IM?e.constructor:void 0,i=r?Ce(r):"";if(i)switch(i){case AM:return Lc;case CM:return Sc;case MM:return $c;case jM:return Ec;case SM:return _c}return t});var CJ=W.Uint8Array,$M="__lodash_hash_undefined__";function EM(e){return this.__data__.set(e,$M),this}var _M=EM;function LM(e){return this.__data__.has(e)}var TM=LM;function va(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cd;++t<r;)this.add(e[t])}va.prototype.add=va.prototype.push=_M;va.prototype.has=TM;var Tc=yt?yt.prototype:void 0,MJ=Tc?Tc.valueOf:void 0,OM=Object.prototype,jJ=OM.hasOwnProperty,NM=Object.prototype,SJ=NM.hasOwnProperty,$J=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),EJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_J=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function DM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function PM(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return DM(i,t)}function zM(e){return e==null?[]:Array.isArray(e)?e:[e]}var Oc=zM,Sn="@imgly/plugin-ai-video-generation-web";var Nn="createVideo",Nc=`ly.img.${Nn}`,UM=`ly.img.plugin-ai-video-generation-web.quickAction.${Nn}`,Dc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Nn}`;function RM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Nn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var FM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Dc}`]:"Create Video...",[`${Dc}.description`]:"Create a video from the image"}}),{id:Nc,type:"quick",kind:"image",label:`${UM}`,enable:Ex(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Nc}.button`,{label:RM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await PM(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),VM=FM,ce="ly.img.ai.video-generation";function BM(e){return{async initialize({cesdk:t}){if(t==null)return;Mx(t,Sn,"0.2.6"),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),t.setTranslations({en:{[`panel.${ce}`]:"Video Generation",[`${ce}.dock.label`]:"AI Video"}}),qM(e);let r=ga.get().register({type:"plugin",sceneMode:"Video",id:Sn,pluginId:Sn,label:"Generate Video",meta:{panelId:ce},execute:()=>{t.ui.isPanelOpen(ce)?t.ui.closePanel(ce):t.ui.openPanel(ce)}}),i=e.providers?.text2video??e.text2video,n=e.providers?.image2video??e.image2video,a=await Promise.all(Oc(i).map(c=>c({cesdk:t}))),o=await Promise.all(Oc(n).map(c=>c({cesdk:t})));if(!(a.length>0||o.length>0)){r();return}let s=await UI("video",{fromText:a,fromImage:o},{cesdk:t},e);ga.get().register(VM({cesdk:t})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(ce,s.panel.builderRenderFunction),Sx({cesdk:t,panelId:ce})):r()}}}function qM(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 GM=BM,YM=e=>({name:Sn,version:"0.2.6",...GM(e)}),dd=YM;var HM=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;jt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{jt(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 jt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),jt(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 jt(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]=jt(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]=jt(n,t,a)}return e}var ZM=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},QM=typeof global=="object"&&global&&global.Object===Object&&global,Yd=QM,WM=typeof self=="object"&&self&&self.Object===Object&&self,KM=Yd||WM||Function("return this")(),K=KM,JM=K.Symbol,St=JM,Hd=Object.prototype,XM=Hd.hasOwnProperty,ej=Hd.toString,ti=St?St.toStringTag:void 0;function tj(e){var t=XM.call(e,ti),r=e[ti];try{e[ti]=void 0;var i=!0}catch{}var n=ej.call(e);return i&&(t?e[ti]=r:delete e[ti]),n}var rj=tj,ij=Object.prototype,nj=ij.toString;function oj(e){return nj.call(e)}var aj=oj,lj="[object Null]",sj="[object Undefined]",pd=St?St.toStringTag:void 0;function uj(e){return e==null?e===void 0?sj:lj:pd&&pd in Object(e)?rj(e):aj(e)}var pi=uj;function cj(e){return e!=null&&typeof e=="object"}var Ba=cj,NJ=Array.isArray;function dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zd=dj,pj="[object AsyncFunction]",gj="[object Function]",fj="[object GeneratorFunction]",yj="[object Proxy]";function mj(e){if(!Zd(e))return!1;var t=pi(e);return t==gj||t==fj||t==pj||t==yj}var bj=mj,hj=K["__core-js_shared__"],Ca=hj,gd=function(){var e=/[^.]+$/.exec(Ca&&Ca.keys&&Ca.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vj(e){return!!gd&&gd in e}var wj=vj,kj=Function.prototype,xj=kj.toString;function Ij(e){if(e!=null){try{return xj.call(e)}catch{}try{return e+""}catch{}}return""}var $e=Ij,Aj=/[\\^$.*+?()[\]{}|]/g,Cj=/^\[object .+?Constructor\]$/,Mj=Function.prototype,jj=Object.prototype,Sj=Mj.toString,$j=jj.hasOwnProperty,Ej=RegExp("^"+Sj.call($j).replace(Aj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _j(e){if(!Zd(e)||wj(e))return!1;var t=bj(e)?Ej:Cj;return t.test($e(e))}var Lj=_j;function Tj(e,t){return e?.[t]}var Oj=Tj;function Nj(e,t){var r=Oj(e,t);return Lj(r)?r:void 0}var Et=Nj,Dj=Et(K,"WeakMap"),La=Dj;function Pj(e,t){return e===t||e!==e&&t!==t}var zj=Pj,Uj=9007199254740991;function Rj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Uj}var Fj=Rj,DJ=Object.prototype,Vj="[object Arguments]";function Bj(e){return Ba(e)&&pi(e)==Vj}var fd=Bj,Qd=Object.prototype,qj=Qd.hasOwnProperty,Gj=Qd.propertyIsEnumerable,PJ=fd(function(){return arguments}())?fd:function(e){return Ba(e)&&qj.call(e,"callee")&&!Gj.call(e,"callee")},Wd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yd=Wd&&typeof module=="object"&&module&&!module.nodeType&&module,Yj=yd&&yd.exports===Wd,md=Yj?K.Buffer:void 0,zJ=md?md.isBuffer:void 0,Hj="[object Arguments]",Zj="[object Array]",Qj="[object Boolean]",Wj="[object Date]",Kj="[object Error]",Jj="[object Function]",Xj="[object Map]",eS="[object Number]",tS="[object Object]",rS="[object RegExp]",iS="[object Set]",nS="[object String]",oS="[object WeakMap]",aS="[object ArrayBuffer]",lS="[object DataView]",sS="[object Float32Array]",uS="[object Float64Array]",cS="[object Int8Array]",dS="[object Int16Array]",pS="[object Int32Array]",gS="[object Uint8Array]",fS="[object Uint8ClampedArray]",yS="[object Uint16Array]",mS="[object Uint32Array]",N={};N[sS]=N[uS]=N[cS]=N[dS]=N[pS]=N[gS]=N[fS]=N[yS]=N[mS]=!0;N[Hj]=N[Zj]=N[aS]=N[Qj]=N[lS]=N[Wj]=N[Kj]=N[Jj]=N[Xj]=N[eS]=N[tS]=N[rS]=N[iS]=N[nS]=N[oS]=!1;function bS(e){return Ba(e)&&Fj(e.length)&&!!N[pi(e)]}var hS=bS;function vS(e){return function(t){return e(t)}}var wS=vS,Kd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ai=Kd&&typeof module=="object"&&module&&!module.nodeType&&module,kS=ai&&ai.exports===Kd,Ma=kS&&Yd.process,xS=function(){try{var e=ai&&ai.require&&ai.require("util").types;return e||Ma&&Ma.binding&&Ma.binding("util")}catch{}}(),bd=xS,hd=bd&&bd.isTypedArray,UJ=hd?wS(hd):hS,IS=Object.prototype,RJ=IS.hasOwnProperty;function AS(e,t){return function(r){return e(t(r))}}var CS=AS,FJ=CS(Object.keys,Object),MS=Object.prototype,VJ=MS.hasOwnProperty,jS=Et(Object,"create"),si=jS;function SS(){this.__data__=si?si(null):{},this.size=0}var $S=SS;function ES(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _S=ES,LS="__lodash_hash_undefined__",TS=Object.prototype,OS=TS.hasOwnProperty;function NS(e){var t=this.__data__;if(si){var r=t[e];return r===LS?void 0:r}return OS.call(t,e)?t[e]:void 0}var DS=NS,PS=Object.prototype,zS=PS.hasOwnProperty;function US(e){var t=this.__data__;return si?t[e]!==void 0:zS.call(t,e)}var RS=US,FS="__lodash_hash_undefined__";function VS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=si&&t===void 0?FS:t,this}var BS=VS;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=$S;_t.prototype.delete=_S;_t.prototype.get=DS;_t.prototype.has=RS;_t.prototype.set=BS;var vd=_t;function qS(){this.__data__=[],this.size=0}var GS=qS;function YS(e,t){for(var r=e.length;r--;)if(zj(e[r][0],t))return r;return-1}var Dn=YS,HS=Array.prototype,ZS=HS.splice;function QS(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ZS.call(t,r,1),--this.size,!0}var WS=QS;function KS(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var JS=KS;function XS(e){return Dn(this.__data__,e)>-1}var e$=XS;function t$(e,t){var r=this.__data__,i=Dn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r$=t$;function Lt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Lt.prototype.clear=GS;Lt.prototype.delete=WS;Lt.prototype.get=JS;Lt.prototype.has=e$;Lt.prototype.set=r$;var Pn=Lt,i$=Et(K,"Map"),ui=i$;function n$(){this.size=0,this.__data__={hash:new vd,map:new(ui||Pn),string:new vd}}var o$=n$;function a$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l$=a$;function s$(e,t){var r=e.__data__;return l$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=s$;function u$(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var c$=u$;function d$(e){return zn(this,e).get(e)}var p$=d$;function g$(e){return zn(this,e).has(e)}var f$=g$;function y$(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m$=y$;function Tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Tt.prototype.clear=o$;Tt.prototype.delete=c$;Tt.prototype.get=p$;Tt.prototype.has=f$;Tt.prototype.set=m$;var Jd=Tt;function b$(){this.__data__=new Pn,this.size=0}var h$=b$;function v$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w$=v$;function k$(e){return this.__data__.get(e)}var x$=k$;function I$(e){return this.__data__.has(e)}var A$=I$,C$=200;function M$(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!ui||i.length<C$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Jd(i)}return r.set(e,t),this.size=r.size,this}var j$=M$;function gi(e){var t=this.__data__=new Pn(e);this.size=t.size}gi.prototype.clear=h$;gi.prototype.delete=w$;gi.prototype.get=x$;gi.prototype.has=A$;gi.prototype.set=j$;var S$=Object.prototype,BJ=S$.propertyIsEnumerable,$$=Et(K,"DataView"),Ta=$$,E$=Et(K,"Promise"),Oa=E$,_$=Et(K,"Set"),Na=_$,wd="[object Map]",L$="[object Object]",kd="[object Promise]",xd="[object Set]",Id="[object WeakMap]",Ad="[object DataView]",T$=$e(Ta),O$=$e(ui),N$=$e(Oa),D$=$e(Na),P$=$e(La),At=pi;(Ta&&At(new Ta(new ArrayBuffer(1)))!=Ad||ui&&At(new ui)!=wd||Oa&&At(Oa.resolve())!=kd||Na&&At(new Na)!=xd||La&&At(new La)!=Id)&&(At=function(e){var t=pi(e),r=t==L$?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case T$:return Ad;case O$:return wd;case N$:return kd;case D$:return xd;case P$:return Id}return t});var qJ=K.Uint8Array,z$="__lodash_hash_undefined__";function U$(e){return this.__data__.set(e,z$),this}var R$=U$;function F$(e){return this.__data__.has(e)}var V$=F$;function Da(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Jd;++t<r;)this.add(e[t])}Da.prototype.add=Da.prototype.push=R$;Da.prototype.has=V$;var Cd=St?St.prototype:void 0,GJ=Cd?Cd.valueOf:void 0,B$=Object.prototype,YJ=B$.hasOwnProperty,q$=Object.prototype,HJ=q$.hasOwnProperty,ZJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),QJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),WJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Xd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function G$(e,t){let r=await Xd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Y$(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Xd(i,t)}function H$(e){return e!==void 0}var Z$=H$,ep=class tp{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 tp),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))}},Q$=class rp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function W$(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,b)=>s(l+1,f,b),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function K$({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 J$=K$,ja="ly.img.ai.temp";async function X$(e,t){return e.engine.asset.findAllSources().includes(ja)||e.engine.asset.addLocalSource(ja),e.engine.asset.apply(ja,t)}function eE(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 ip(){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 tE(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 rE(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 iE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function nE(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
208
+ `,TI=LI;function OI(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 hd(2e3),await NI(t,e,r)):i(t,r)}async function NI(e,t,r){switch(t.kind){case"image":return DI(e,t,r);case"video":return PI(e,t,r);case"text":return zI(e,t,r);case"audio":return RI(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function DI(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 Sx(s,r),l=await jx(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
+ `,"+")}`}}async function PI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function zI(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=Hr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Hr(n,o)}else"customPrompt"in e?a=Hr(n,"custom"):a=Hr(n,"improved");else a=Hr(n,"generated");return UI(a,r.abortSignal)}async function*UI(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 hd(100)}return{kind:"text",text:e}}function Hr(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 RI(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:FI(220,i),duration:i,thumbnailUrl:void 0}}function FI(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 VI(i,44100)}function VI(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function hd(e){return new Promise(t=>{setTimeout(t,e)})}var BI=OI,qI="USER_CANCEL";function GI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Lx([...e.provider.output.middleware??[],...r?.middlewares??[],Ox({enable:r?.debug}),BI({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:zx(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Na(n)?{status:"aborted",message:n.message}:n===qI?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var YI=GI;async function HI(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=ja.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=$I(a),s=EI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=YI({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await jI(a,c);Ux(r.cesdk,"@imgly/plugin-ai-generation",TI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ex.get().register(u),u}var va=HI;function ZI(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 _6(n,r,i);return r.engine.asset.addSource(a),a.id}var QI=ZI;function Wr(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 WI(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>va(e,u,r,i)));o.push(...l),a=JI({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>va(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>va(e,d,r,i)));o.push(...u),a=KI({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=QI({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_x)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function KI({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{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 C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Wr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Wr(e,"fromText.label"),icon:f.value!=="fromText"&&Tc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Wr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function JI({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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Tc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pa(r.id),!1).value)}var XI=WI,eA=typeof global=="object"&&global&&global.Object===Object&&global,bd=eA,tA=typeof self=="object"&&self&&self.Object===Object&&self,rA=bd||tA||Function("return this")(),ee=rA,iA=ee.Symbol,vt=iA,vd=Object.prototype,nA=vd.hasOwnProperty,oA=vd.toString,Zr=vt?vt.toStringTag:void 0;function aA(e){var t=nA.call(e,Zr),r=e[Zr];try{e[Zr]=void 0;var i=!0}catch{}var n=oA.call(e);return i&&(t?e[Zr]=r:delete e[Zr]),n}var lA=aA,sA=Object.prototype,uA=sA.toString;function cA(e){return uA.call(e)}var dA=cA,pA="[object Null]",gA="[object Undefined]",Oc=vt?vt.toStringTag:void 0;function fA(e){return e==null?e===void 0?gA:pA:Oc&&Oc in Object(e)?lA(e):dA(e)}var li=fA;function yA(e){return e!=null&&typeof e=="object"}var za=yA,_J=Array.isArray;function mA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wd=mA,hA="[object AsyncFunction]",bA="[object Function]",vA="[object GeneratorFunction]",wA="[object Proxy]";function kA(e){if(!wd(e))return!1;var t=li(e);return t==bA||t==vA||t==hA||t==wA}var xA=kA,IA=ee["__core-js_shared__"],wa=IA,Nc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AA(e){return!!Nc&&Nc in e}var CA=AA,MA=Function.prototype,jA=MA.toString;function SA(e){if(e!=null){try{return jA.call(e)}catch{}try{return e+""}catch{}}return""}var $e=SA,$A=/[\\^$.*+?()[\]{}|]/g,_A=/^\[object .+?Constructor\]$/,EA=Function.prototype,LA=Object.prototype,TA=EA.toString,OA=LA.hasOwnProperty,NA=RegExp("^"+TA.call(OA).replace($A,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function DA(e){if(!wd(e)||CA(e))return!1;var t=xA(e)?NA:_A;return t.test($e(e))}var PA=DA;function zA(e,t){return e?.[t]}var UA=zA;function RA(e,t){var r=UA(e,t);return PA(r)?r:void 0}var At=RA,FA=At(ee,"WeakMap"),$a=FA;function VA(e,t){return e===t||e!==e&&t!==t}var BA=VA,qA=9007199254740991;function GA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qA}var YA=GA,EJ=Object.prototype,HA="[object Arguments]";function ZA(e){return za(e)&&li(e)==HA}var Dc=ZA,kd=Object.prototype,QA=kd.hasOwnProperty,WA=kd.propertyIsEnumerable,LJ=Dc(function(){return arguments}())?Dc:function(e){return za(e)&&QA.call(e,"callee")&&!WA.call(e,"callee")},xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pc=xd&&typeof module=="object"&&module&&!module.nodeType&&module,KA=Pc&&Pc.exports===xd,zc=KA?ee.Buffer:void 0,TJ=zc?zc.isBuffer:void 0,JA="[object Arguments]",XA="[object Array]",eC="[object Boolean]",tC="[object Date]",rC="[object Error]",iC="[object Function]",nC="[object Map]",oC="[object Number]",aC="[object Object]",lC="[object RegExp]",sC="[object Set]",uC="[object String]",cC="[object WeakMap]",dC="[object ArrayBuffer]",pC="[object DataView]",gC="[object Float32Array]",fC="[object Float64Array]",yC="[object Int8Array]",mC="[object Int16Array]",hC="[object Int32Array]",bC="[object Uint8Array]",vC="[object Uint8ClampedArray]",wC="[object Uint16Array]",kC="[object Uint32Array]",P={};P[gC]=P[fC]=P[yC]=P[mC]=P[hC]=P[bC]=P[vC]=P[wC]=P[kC]=!0;P[JA]=P[XA]=P[dC]=P[eC]=P[pC]=P[tC]=P[rC]=P[iC]=P[nC]=P[oC]=P[aC]=P[lC]=P[sC]=P[uC]=P[cC]=!1;function xC(e){return za(e)&&YA(e.length)&&!!P[li(e)]}var IC=xC;function AC(e){return function(t){return e(t)}}var CC=AC,Id=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jr=Id&&typeof module=="object"&&module&&!module.nodeType&&module,MC=Jr&&Jr.exports===Id,ka=MC&&bd.process,jC=function(){try{var e=Jr&&Jr.require&&Jr.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Uc=jC,Rc=Uc&&Uc.isTypedArray,OJ=Rc?CC(Rc):IC,SC=Object.prototype,NJ=SC.hasOwnProperty;function $C(e,t){return function(r){return e(t(r))}}var _C=$C,DJ=_C(Object.keys,Object),EC=Object.prototype,PJ=EC.hasOwnProperty,LC=At(Object,"create"),ti=LC;function TC(){this.__data__=ti?ti(null):{},this.size=0}var OC=TC;function NC(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var DC=NC,PC="__lodash_hash_undefined__",zC=Object.prototype,UC=zC.hasOwnProperty;function RC(e){var t=this.__data__;if(ti){var r=t[e];return r===PC?void 0:r}return UC.call(t,e)?t[e]:void 0}var FC=RC,VC=Object.prototype,BC=VC.hasOwnProperty;function qC(e){var t=this.__data__;return ti?t[e]!==void 0:BC.call(t,e)}var GC=qC,YC="__lodash_hash_undefined__";function HC(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?YC:t,this}var ZC=HC;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=OC;Ct.prototype.delete=DC;Ct.prototype.get=FC;Ct.prototype.has=GC;Ct.prototype.set=ZC;var Fc=Ct;function QC(){this.__data__=[],this.size=0}var WC=QC;function KC(e,t){for(var r=e.length;r--;)if(BA(e[r][0],t))return r;return-1}var Yn=KC,JC=Array.prototype,XC=JC.splice;function eM(e){var t=this.__data__,r=Yn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():XC.call(t,r,1),--this.size,!0}var tM=eM;function rM(e){var t=this.__data__,r=Yn(t,e);return r<0?void 0:t[r][1]}var iM=rM;function nM(e){return Yn(this.__data__,e)>-1}var oM=nM;function aM(e,t){var r=this.__data__,i=Yn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var lM=aM;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=WC;Mt.prototype.delete=tM;Mt.prototype.get=iM;Mt.prototype.has=oM;Mt.prototype.set=lM;var Hn=Mt,sM=At(ee,"Map"),ri=sM;function uM(){this.size=0,this.__data__={hash:new Fc,map:new(ri||Hn),string:new Fc}}var cM=uM;function dM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var pM=dM;function gM(e,t){var r=e.__data__;return pM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=gM;function fM(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var yM=fM;function mM(e){return Zn(this,e).get(e)}var hM=mM;function bM(e){return Zn(this,e).has(e)}var vM=bM;function wM(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var kM=wM;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=cM;jt.prototype.delete=yM;jt.prototype.get=hM;jt.prototype.has=vM;jt.prototype.set=kM;var Ad=jt;function xM(){this.__data__=new Hn,this.size=0}var IM=xM;function AM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CM=AM;function MM(e){return this.__data__.get(e)}var jM=MM;function SM(e){return this.__data__.has(e)}var $M=SM,_M=200;function EM(e,t){var r=this.__data__;if(r instanceof Hn){var i=r.__data__;if(!ri||i.length<_M-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ad(i)}return r.set(e,t),this.size=r.size,this}var LM=EM;function si(e){var t=this.__data__=new Hn(e);this.size=t.size}si.prototype.clear=IM;si.prototype.delete=CM;si.prototype.get=jM;si.prototype.has=$M;si.prototype.set=LM;var TM=Object.prototype,zJ=TM.propertyIsEnumerable,OM=At(ee,"DataView"),_a=OM,NM=At(ee,"Promise"),Ea=NM,DM=At(ee,"Set"),La=DM,Vc="[object Map]",PM="[object Object]",Bc="[object Promise]",qc="[object Set]",Gc="[object WeakMap]",Yc="[object DataView]",zM=$e(_a),UM=$e(ri),RM=$e(Ea),FM=$e(La),VM=$e($a),mt=li;(_a&&mt(new _a(new ArrayBuffer(1)))!=Yc||ri&&mt(new ri)!=Vc||Ea&&mt(Ea.resolve())!=Bc||La&&mt(new La)!=qc||$a&&mt(new $a)!=Gc)&&(mt=function(e){var t=li(e),r=t==PM?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case zM:return Yc;case UM:return Vc;case RM:return Bc;case FM:return qc;case VM:return Gc}return t});var UJ=ee.Uint8Array,BM="__lodash_hash_undefined__";function qM(e){return this.__data__.set(e,BM),this}var GM=qM;function YM(e){return this.__data__.has(e)}var HM=YM;function Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ad;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=GM;Ta.prototype.has=HM;var Hc=vt?vt.prototype:void 0,RJ=Hc?Hc.valueOf:void 0,ZM=Object.prototype,FJ=ZM.hasOwnProperty,QM=Object.prototype,VJ=QM.hasOwnProperty,BJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function WM(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 KM(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 WM(i,t)}function JM(e){return e==null?[]:Array.isArray(e)?e:[e]}var Zc=JM,Vn="@imgly/plugin-ai-video-generation-web";var Qn="createVideo",Qc=`ly.img.${Qn}`,XM=`ly.img.plugin-ai-video-generation-web.quickAction.${Qn}`,Wc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Qn}`;function ej(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Wc}`]:"Create Video...",[`${Wc}.description`]:"Create a video from the image"}}),{id:Qc,type:"quick",kind:"image",label:`${XM}`,enable:qx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Qc}.button`,{label:ej(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await KM(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),rj=tj,fe="ly.img.ai.video-generation";function ij(e){return{async initialize({cesdk:t}){if(t==null)return;Rx(t,Vn,"0.2.7"),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),t.setTranslations({en:{[`panel.${fe}`]:"Video Generation",[`${fe}.dock.label`]:"AI Video"}}),nj(e);let r=ja.get().register({type:"plugin",sceneMode:"Video",id:Vn,pluginId:Vn,label:"Generate Video",meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}}),i=e.providers?.text2video??e.text2video,n=e.providers?.image2video??e.image2video,a=await Promise.all(Zc(i).map(c=>c({cesdk:t}))),o=await Promise.all(Zc(n).map(c=>c({cesdk:t})));if(!(a.length>0||o.length>0)){r();return}let s=await XI("video",{fromText:a,fromImage:o},{cesdk:t},e);ja.get().register(rj({cesdk:t})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,s.panel.builderRenderFunction),Vx({cesdk:t,panelId:fe})):r()}}}function nj(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 oj=ij,aj=e=>({name:Vn,version:"0.2.7",...oj(e)}),Cd=aj;var lj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Et(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Et(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Et(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Et(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Et(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Et(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Et(n,t,a)}return e}var sj=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")}},uj=typeof global=="object"&&global&&global.Object===Object&&global,ap=uj,cj=typeof self=="object"&&self&&self.Object===Object&&self,dj=ap||cj||Function("return this")(),te=dj,pj=te.Symbol,Lt=pj,lp=Object.prototype,gj=lp.hasOwnProperty,fj=lp.toString,ui=Lt?Lt.toStringTag:void 0;function yj(e){var t=gj.call(e,ui),r=e[ui];try{e[ui]=void 0;var i=!0}catch{}var n=fj.call(e);return i&&(t?e[ui]=r:delete e[ui]),n}var mj=yj,hj=Object.prototype,bj=hj.toString;function vj(e){return bj.call(e)}var wj=vj,kj="[object Null]",xj="[object Undefined]",Md=Lt?Lt.toStringTag:void 0;function Ij(e){return e==null?e===void 0?xj:kj:Md&&Md in Object(e)?mj(e):wj(e)}var wi=Ij;function Aj(e){return e!=null&&typeof e=="object"}var il=Aj,QJ=Array.isArray;function Cj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var sp=Cj,Mj="[object AsyncFunction]",jj="[object Function]",Sj="[object GeneratorFunction]",$j="[object Proxy]";function _j(e){if(!sp(e))return!1;var t=wi(e);return t==jj||t==Sj||t==Mj||t==$j}var Ej=_j,Lj=te["__core-js_shared__"],Ua=Lj,jd=function(){var e=/[^.]+$/.exec(Ua&&Ua.keys&&Ua.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tj(e){return!!jd&&jd in e}var Oj=Tj,Nj=Function.prototype,Dj=Nj.toString;function Pj(e){if(e!=null){try{return Dj.call(e)}catch{}try{return e+""}catch{}}return""}var Te=Pj,zj=/[\\^$.*+?()[\]{}|]/g,Uj=/^\[object .+?Constructor\]$/,Rj=Function.prototype,Fj=Object.prototype,Vj=Rj.toString,Bj=Fj.hasOwnProperty,qj=RegExp("^"+Vj.call(Bj).replace(zj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Gj(e){if(!sp(e)||Oj(e))return!1;var t=Ej(e)?qj:Uj;return t.test(Te(e))}var Yj=Gj;function Hj(e,t){return e?.[t]}var Zj=Hj;function Qj(e,t){var r=Zj(e,t);return Yj(r)?r:void 0}var Ot=Qj,Wj=Ot(te,"WeakMap"),Ya=Wj;function Kj(e,t){return e===t||e!==e&&t!==t}var Jj=Kj,Xj=9007199254740991;function eS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Xj}var tS=eS,WJ=Object.prototype,rS="[object Arguments]";function iS(e){return il(e)&&wi(e)==rS}var Sd=iS,up=Object.prototype,nS=up.hasOwnProperty,oS=up.propertyIsEnumerable,KJ=Sd(function(){return arguments}())?Sd:function(e){return il(e)&&nS.call(e,"callee")&&!oS.call(e,"callee")},cp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$d=cp&&typeof module=="object"&&module&&!module.nodeType&&module,aS=$d&&$d.exports===cp,_d=aS?te.Buffer:void 0,JJ=_d?_d.isBuffer:void 0,lS="[object Arguments]",sS="[object Array]",uS="[object Boolean]",cS="[object Date]",dS="[object Error]",pS="[object Function]",gS="[object Map]",fS="[object Number]",yS="[object Object]",mS="[object RegExp]",hS="[object Set]",bS="[object String]",vS="[object WeakMap]",wS="[object ArrayBuffer]",kS="[object DataView]",xS="[object Float32Array]",IS="[object Float64Array]",AS="[object Int8Array]",CS="[object Int16Array]",MS="[object Int32Array]",jS="[object Uint8Array]",SS="[object Uint8ClampedArray]",$S="[object Uint16Array]",_S="[object Uint32Array]",z={};z[xS]=z[IS]=z[AS]=z[CS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=!0;z[lS]=z[sS]=z[wS]=z[uS]=z[kS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=z[yS]=z[mS]=z[hS]=z[bS]=z[vS]=!1;function ES(e){return il(e)&&tS(e.length)&&!!z[wi(e)]}var LS=ES;function TS(e){return function(t){return e(t)}}var OS=TS,dp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fi=dp&&typeof module=="object"&&module&&!module.nodeType&&module,NS=fi&&fi.exports===dp,Ra=NS&&ap.process,DS=function(){try{var e=fi&&fi.require&&fi.require("util").types;return e||Ra&&Ra.binding&&Ra.binding("util")}catch{}}(),Ed=DS,Ld=Ed&&Ed.isTypedArray,XJ=Ld?OS(Ld):LS,PS=Object.prototype,eX=PS.hasOwnProperty;function zS(e,t){return function(r){return e(t(r))}}var US=zS,tX=US(Object.keys,Object),RS=Object.prototype,rX=RS.hasOwnProperty,FS=Ot(Object,"create"),mi=FS;function VS(){this.__data__=mi?mi(null):{},this.size=0}var BS=VS;function qS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var GS=qS,YS="__lodash_hash_undefined__",HS=Object.prototype,ZS=HS.hasOwnProperty;function QS(e){var t=this.__data__;if(mi){var r=t[e];return r===YS?void 0:r}return ZS.call(t,e)?t[e]:void 0}var WS=QS,KS=Object.prototype,JS=KS.hasOwnProperty;function XS(e){var t=this.__data__;return mi?t[e]!==void 0:JS.call(t,e)}var e$=XS,t$="__lodash_hash_undefined__";function r$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=mi&&t===void 0?t$:t,this}var i$=r$;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=BS;Nt.prototype.delete=GS;Nt.prototype.get=WS;Nt.prototype.has=e$;Nt.prototype.set=i$;var Td=Nt;function n$(){this.__data__=[],this.size=0}var o$=n$;function a$(e,t){for(var r=e.length;r--;)if(Jj(e[r][0],t))return r;return-1}var Wn=a$,l$=Array.prototype,s$=l$.splice;function u$(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():s$.call(t,r,1),--this.size,!0}var c$=u$;function d$(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var p$=d$;function g$(e){return Wn(this.__data__,e)>-1}var f$=g$;function y$(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var m$=y$;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=o$;Dt.prototype.delete=c$;Dt.prototype.get=p$;Dt.prototype.has=f$;Dt.prototype.set=m$;var Kn=Dt,h$=Ot(te,"Map"),hi=h$;function b$(){this.size=0,this.__data__={hash:new Td,map:new(hi||Kn),string:new Td}}var v$=b$;function w$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var k$=w$;function x$(e,t){var r=e.__data__;return k$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=x$;function I$(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var A$=I$;function C$(e){return Jn(this,e).get(e)}var M$=C$;function j$(e){return Jn(this,e).has(e)}var S$=j$;function $$(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _$=$$;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=v$;Pt.prototype.delete=A$;Pt.prototype.get=M$;Pt.prototype.has=S$;Pt.prototype.set=_$;var pp=Pt;function E$(){this.__data__=new Kn,this.size=0}var L$=E$;function T$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var O$=T$;function N$(e){return this.__data__.get(e)}var D$=N$;function P$(e){return this.__data__.has(e)}var z$=P$,U$=200;function R$(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!hi||i.length<U$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new pp(i)}return r.set(e,t),this.size=r.size,this}var F$=R$;function ki(e){var t=this.__data__=new Kn(e);this.size=t.size}ki.prototype.clear=L$;ki.prototype.delete=O$;ki.prototype.get=D$;ki.prototype.has=z$;ki.prototype.set=F$;var V$=Object.prototype,iX=V$.propertyIsEnumerable,B$=Ot(te,"DataView"),Ha=B$,q$=Ot(te,"Promise"),Za=q$,G$=Ot(te,"Set"),Qa=G$,Od="[object Map]",Y$="[object Object]",Nd="[object Promise]",Dd="[object Set]",Pd="[object WeakMap]",zd="[object DataView]",H$=Te(Ha),Z$=Te(hi),Q$=Te(Za),W$=Te(Qa),K$=Te(Ya),St=wi;(Ha&&St(new Ha(new ArrayBuffer(1)))!=zd||hi&&St(new hi)!=Od||Za&&St(Za.resolve())!=Nd||Qa&&St(new Qa)!=Dd||Ya&&St(new Ya)!=Pd)&&(St=function(e){var t=wi(e),r=t==Y$?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case H$:return zd;case Z$:return Od;case Q$:return Nd;case W$:return Dd;case K$:return Pd}return t});var nX=te.Uint8Array,J$="__lodash_hash_undefined__";function X$(e){return this.__data__.set(e,J$),this}var e_=X$;function t_(e){return this.__data__.has(e)}var r_=t_;function Wa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new pp;++t<r;)this.add(e[t])}Wa.prototype.add=Wa.prototype.push=e_;Wa.prototype.has=r_;var Ud=Lt?Lt.prototype:void 0,oX=Ud?Ud.valueOf:void 0,i_=Object.prototype,aX=i_.hasOwnProperty,n_=Object.prototype,lX=n_.hasOwnProperty,sX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),uX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),cX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function gp(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 o_(e,t){let r=await gp(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 a_(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 gp(i,t)}function l_(e){return e!==void 0}var s_=l_;function xi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Ii(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var fp=class yp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},u_=class mp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function c_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function d_({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 p_=d_,Fa="ly.img.ai.temp";async function g_(e,t){return e.engine.asset.findAllSources().includes(Fa)||e.engine.asset.addLocalSource(Fa),e.engine.asset.apply(Fa,t)}function f_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function hp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function y_(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 m_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function nl(e){return e instanceof Error&&e.name==="AbortError"}function h_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function b_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
210
210
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
211
211
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
212
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function oE(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 Md=oE;function aE(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),lE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:eE(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}),!0}var jd=aE,sE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ga=sE;function uE(e,t,r){switch(t){case"image":return cE(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 cE(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 dE(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 pE(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 gE=uE;async function fE(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 yE(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 mE(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 bE(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 hE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function yE(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 mE(e,t,r){let i=t.width,n=t.height,a=await tE(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 bE(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 hE(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 np=fE;function vE(e){switch(e.userFlow){case"placeholder":return kE(e);case"generation-only":return wE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function wE(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(pe(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(pe(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(pe(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=ip(),c=await np(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function kE(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(pe(t,r))return{status:"aborted"};let s=ip(),c=gE(s,a,o);if(i=await X$(t,c),pe(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(pe(t,r,i))return{status:"aborted"};if(l.status!=="success")return 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 np(s,a,o,l.output);if(pe(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),pe(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)}}}}function pe(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var xE=vE;function Ya(e){return`${e}.generating`}function IE(e){return`${e}.abort`}function AE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(IE(d),()=>{}),y=c.global(Ya(d),!1),f,b=y.value&&g,h=()=>{b&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},M;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=i();M=a.requiredInputs.every(v=>!C.input[v])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:M,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:v})=>{l.ui.closeDialog(v),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:v})=>{h(),l.ui.closeDialog(v),k.setValue(void 0)}}});k.setValue(C)}}:void 0,onClick:async()=>{f=new AbortController;let C=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let v=await xE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(v.status==="aborted")return;if(v.status==="error"){jd(v.message,{cesdk:l,provider:t,getInput:i});return}if(v.status==="success"&&v.type==="sync"){let w=t.output.notification;CE(l,w,()=>({input:i().input,output:v.output}))}}catch(v){if(qa(v))return;jd(v,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.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 CE(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 op=AE;async function ME({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Ya(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return op(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var jE=ME;function ap(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function ni(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=ap(e,t.$ref),n={...ni(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=ni(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>ni(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=ni(e,t[n],r));return i}return t}function SE(e){return ni(e,{...e})}function $E(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 EE(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return _E(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function _E(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=LE(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function LE(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 lp=EE;function Se(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function sp(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 up(e,t,r,i,n,a,o){if(t.schema==null)return i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null?i.renderCustomProperty[t.id](e,t):void 0;let s=t,c=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null)return i.renderCustomProperty[t.id](e,t);switch(c){case"string":return t.schema.enum!=null?TE(e,s,r,i,n,a,o):cp(e,s,r,i,n,a,o);case"boolean":return dp(e,s,r,i,n,a,o);case"number":case"integer":return pp(e,s,r,i,n,a,o);case"object":return Pa(e,s,r,i,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return OE(e,s,r,i,n,a,o);break}default:console.error(`Unsupported property type: ${c}`)}}function Pa(e,t,r,i,n,a,o){let s=lp(t.schema??{},i).reduce((c,l)=>{let u=up(e,l,r,i,n,a,o);return u!=null&&(c[l.id]=u()),c},{});return()=>({id:t.id,type:"object",value:s})}function cp(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Se(t,r,o),g=c(u,t.schema.default??""),p=NE(t.schema),y=p?.component!=null&&p?.component==="TextArea"?"TextArea":"TextInput";return s[y](u,{inputLabel:d,placeholder:n.i18n?.prompt,...g}),()=>({id:t.id,type:"string",value:g.value})}function TE(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Se(t,r,o),{labels:g,icons:p}=sp(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:Se(t,r,o,h),icon:p[h]})),f=t.schema.default!=null?y.find(h=>h.id===t.schema.default)??y[0]:y[0],b=c(u,f);return s.Select(u,{inputLabel:d,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function dp(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Se(t,r,o),g=!!t.schema.default,p=c(u,g);return s.Checkbox(u,{inputLabel:d,...p}),()=>({id:t.id,type:"boolean",value:p.value})}function pp(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Se(t,r,o),g=t.schema.minimum,p=t.schema.maximum,y=t.schema.default;y==null&&(g!=null?y=g:p!=null?y=p:y=0);let f=c(u,y);if(g!=null&&p!=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"]),s.Slider(u,{inputLabel:d,min:g,max:p,step:b,...f})}else s.NumberInput(u,{inputLabel:d,min:g,max:p,...f});return()=>({id:t.id,type:"integer",value:f.value})}function OE(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Se(t,r,o),g=t.schema.anyOf??[],p=[],y={},f={},{labels:b,icons:h}=sp(t.schema),M={string:cp,boolean:dp,integer:pp,object:Pa},k=(m,x)=>m.$ref?m.$ref.split("/").pop():x.split(".").pop()??x,C=(m,x)=>({id:m,label:Se(t,r,o,x),icon:h[x]??h[m]});g.forEach((m,x)=>{let j=`${r.id}.${l}.anyOf[${x}]`;if(m.$ref||m.title){let I=m.$ref?m.$ref.split("/").pop():m.title;y[j]=()=>Pa(e,{id:j,schema:{...m,title:b[I]||I}},r,i,n,a,o),p.push(C(j,I))}else if(m.type==="string"&&m.enum)m.enum.forEach(I=>{p.push(C(I,I))});else if(m.type&&M[m.type]){let I=M[m.type];y[j]=()=>I(e,{id:j,schema:{...m,title:m.title}},r,i,n,a,o);let A=k(m,j);p.push(m.type==="string"&&!m.enum?{id:j,label:m.title||A,icon:m.title&&h[m.title]||h[A]}:C(j,A))}});let v=t.schema.default!=null?p.find(m=>m.id===t.schema.default)??p[0]:p[0],w=c(u,v);if(s.Select(u,{inputLabel:d,values:p,...w}),w.value.id in y){let m=y[w.value.id]();f[w.value.id]=m}return()=>{let m=f[w.value.id];return m!=null?{...m(),id:t.id}:{id:t.id,type:"string",value:w.value.id}}}function NE(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var DE=up,PE={"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 Sd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function zE(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Sd(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Sd(p);n[a(l.id,p)]=y}})}});let c={...PE,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function UE({options:e,provider:t,panelInput:r,config:i},n){let{id:a}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=SE(r.document),s=ap(o,r.inputReference);if(!$E(s,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let c=s,l=lp(c,r);return zE(l,t,e,t.kind),u=>{let{builder:d}=u,g=[];d.Section(`${a}.schema.section`,{children:()=>{l.forEach(b=>{let h=DE(u,b,t,r,e,i,t.kind);h!=null&&(Array.isArray(h)?g.push(...h):g.push(h))})}});let p=g.map(b=>b()),y=b=>b.type==="object"?Object.entries(b.value).reduce((h,[M,k])=>(h[M]=y(k),h),{}):b.value,f=p.reduce((b,h)=>(b[h.id]=y(h),b),{});op(u,t,n,()=>({input:f}),()=>r.getBlockInput(f),{...e,requiredInputs:c.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var RE=UE;async function FE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return jE(e,t);case"schema":return RE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var VE=FE;function BE(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new HM(o,r)),o}return i}var qE=BE;function GE(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 YE=GE,Sa="@imgly/plugin-ai-generation",HE=`
212
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function v_(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 Rd=v_;function w_(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),k_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:f_(e)})}function k_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Fd=w_,x_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ol=x_;function I_(e,t,r){switch(t){case"image":return A_(e,r[t]);case"video":return C_(e,r[t]);case"sticker":return M_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function A_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ol,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function C_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ol,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function M_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ol,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var j_=I_;async function S_(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 $_(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 __(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 E_(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 L_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function $_(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 __(e,t,r){let i=t.width,n=t.height,a=await y_(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 E_(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 L_(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 bp=S_;function T_(e){switch(e.userFlow){case"placeholder":return N_(e);case"generation-only":return O_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function O_(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=hp(),c=await bp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function N_(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=hp(),c=j_(s,a,o);if(i=await g_(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,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;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 bp(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)&&(nl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var D_=T_;function al(e){return`${e}.generating`}function P_(e){return`${e}.abort`}function z_(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(P_(d),()=>{}),m=c.global(al(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await D_({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(y.status==="aborted")return;if(y.status==="error"){Fd(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;U_(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(nl(y))return;Fd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function U_(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 vp=z_;async function R_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(al(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return vp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var F_=R_;function wp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=wp(e,t.$ref),n={...pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=pi(e,t[n],r));return i}return t}function V_(e){return pi(e,{...e})}function B_(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 q_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return G_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function G_(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=Y_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Y_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var kp=q_;function Le(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function xp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Ip(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?H_(e,c,r,i,n,a,o,s):Ap(e,c,r,i,n,a,o,s);case"boolean":return Cp(e,c,r,i,n,a,o,s);case"number":case"integer":return Mp(e,c,r,i,n,a,o,s);case"object":return Ka(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 Z_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ka(e,t,r,i,n,a,o,s){let c=kp(t.schema??{},i).reduce((l,u)=>{let d=Ip(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 Ap(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=Le(t,r,o),m=xi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=Ii(d,f,m,t.schema.default,""),b=l(p,h),w=Q_(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function H_(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=Le(t,r,o),{labels:m,icons:f}=xp(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Le(t,r,o,x),icon:f[x]})),b=xi(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=Ii(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Cp(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=Le(t,r,o),m=xi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Ii(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Mp(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=Le(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=xi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=Ii(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function Z_(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=Le(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=xp(t.schema),I=xi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:Ap,boolean:Cp,integer:Mp,object:Ka},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Le(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Ka(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=Ii(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function Q_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var W_=Ip,K_={"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 Vd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function J_(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Vd(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Vd(g);n[a(l.id,g)]=m}})}});let c={...K_,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function X_({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=V_(r.document),c=wp(s,r.inputReference);if(!B_(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=kp(l,r);return J_(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=W_(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});vp(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var eE=X_;async function tE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return F_(e,t);case"schema":return eE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var rE=tE;function iE(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 lj(o,r)),o}return i}var nE=iE;function oE(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 aE=oE,Va="@imgly/plugin-ai-generation",lE=`
213
213
  <svg>
214
214
  <symbol
215
215
  fill="none"
@@ -227,7 +227,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
227
227
  fill="none"
228
228
  xmlns="http://www.w3.org/2000/svg"
229
229
  viewBox="0 0 24 24"
230
- id="${Sa}/image"
230
+ id="${Va}/image"
231
231
  >
232
232
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
233
233
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -239,7 +239,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
239
239
  fill="none"
240
240
  xmlns="http://www.w3.org/2000/svg"
241
241
  viewBox="0 0 24 24"
242
- id="${Sa}/video"
242
+ id="${Va}/video"
243
243
  >
244
244
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
245
245
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -250,7 +250,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
250
250
  fill="none"
251
251
  xmlns="http://www.w3.org/2000/svg"
252
252
  viewBox="0 0 24 24"
253
- id="${Sa}/audio"
253
+ id="${Va}/audio"
254
254
  >
255
255
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
256
256
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -270,8 +270,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
270
270
 
271
271
  </symbol>
272
272
  </svg>
273
- `,ZE=HE;function QE(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 gp(2e3),await WE(t,e,r)):i(t,r)}async function WE(e,t,r){switch(t.kind){case"image":return KE(e,t,r);case"video":return JE(e,t,r);case"text":return XE(e,t,r);case"audio":return t_(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function KE(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await Y$(s,r),l=await G$(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function JE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function XE(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=ri(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ri(n,o)}else"customPrompt"in e?a=ri(n,"custom"):a=ri(n,"improved");else a=ri(n,"generated");return e_(a,r.abortSignal)}async function*e_(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 gp(100)}return{kind:"text",text:e}}function ri(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 t_(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:r_(220,i),duration:i,thumbnailUrl:void 0}}function r_(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 i_(i,44100)}function i_(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,b)=>{for(let h=0;h<b.length;h++)u.setUint8(f+h,b.charCodeAt(h))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let b=Math.max(-1,Math.min(1,e[f])),h=Math.round(b*32767);u.setInt16(g,h,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function gp(e){return new Promise(t=>{setTimeout(t,e)})}var n_=QE,o_="USER_CANCEL";function a_(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=W$([...e.provider.output.middleware??[],...r?.middlewares??[],J$({enable:r?.debug}),n_({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:rE(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return qa(n)?{status:"aborted",message:n.message}:n===o_?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var l_=a_;async function s_(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};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=ep.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=qE(a),s=YE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=l_({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await VE(a,c);iE(r.cesdk,"@imgly/plugin-ai-generation",ZE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Q$.get().register(u),u}var $a=s_;function u_(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 ZM(n,r,i);return r.engine.asset.addSource(a),a.id}var c_=u_;function oi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function d_(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>$a(e,u,r,i)));o.push(...l),a=g_({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>$a(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>$a(e,d,r,i)));o.push(...u),a=p_({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=c_({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Z$)}),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 p_({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),b=[];f.value==="fromText"?b.push(...r):f.value==="fromImage"?b.push(...i):b.push(...r,...i);let h=r.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),M=i.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,h[0]),C=o.experimental.global(`${t}.selectedProvider.fromImage`,M[0]),v=f.value==="fromText"?k:f.value==="fromImage"?C:void 0,w=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,m=n.feature.isEnabled(w,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let x=d&&p&&r.length>0&&i.length>0,j=a&&x,I=b.length>1&&m;if((j||I)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(j&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:oi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:oi(e,"fromText.label"),icon:f.value!=="fromText"&&$d(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:oi(e,"fromImage.label"),icon:f.value!=="fromImage"&&$d(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),I){let A=f.value==="fromText"?h:f.value==="fromImage"?M:[...h,...M];v!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:oi(e,"providerSelect.label"),values:A,...v})}}}),b.length>1)v?.value.builderRenderFunction?.(o);else{let A=b[0];A&&A.panel?.builderRenderFunction?.(o)}}}function g_({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:d,panel:g})=>({id:d.id,label:d.name??d.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:oi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function $d(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ya(r.id),!1).value)}var Ed=d_,f_=typeof global=="object"&&global&&global.Object===Object&&global,fp=f_,y_=typeof self=="object"&&self&&self.Object===Object&&self,m_=fp||y_||Function("return this")(),J=m_,b_=J.Symbol,$t=b_,yp=Object.prototype,h_=yp.hasOwnProperty,v_=yp.toString,ii=$t?$t.toStringTag:void 0;function w_(e){var t=h_.call(e,ii),r=e[ii];try{e[ii]=void 0;var i=!0}catch{}var n=v_.call(e);return i&&(t?e[ii]=r:delete e[ii]),n}var k_=w_,x_=Object.prototype,I_=x_.toString;function A_(e){return I_.call(e)}var C_=A_,M_="[object Null]",j_="[object Undefined]",_d=$t?$t.toStringTag:void 0;function S_(e){return e==null?e===void 0?j_:M_:_d&&_d in Object(e)?k_(e):C_(e)}var fi=S_;function $_(e){return e!=null&&typeof e=="object"}var Ha=$_,KJ=Array.isArray;function E_(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var mp=E_,__="[object AsyncFunction]",L_="[object Function]",T_="[object GeneratorFunction]",O_="[object Proxy]";function N_(e){if(!mp(e))return!1;var t=fi(e);return t==L_||t==T_||t==__||t==O_}var D_=N_,P_=J["__core-js_shared__"],Ea=P_,Ld=function(){var e=/[^.]+$/.exec(Ea&&Ea.keys&&Ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function z_(e){return!!Ld&&Ld in e}var U_=z_,R_=Function.prototype,F_=R_.toString;function V_(e){if(e!=null){try{return F_.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=V_,B_=/[\\^$.*+?()[\]{}|]/g,q_=/^\[object .+?Constructor\]$/,G_=Function.prototype,Y_=Object.prototype,H_=G_.toString,Z_=Y_.hasOwnProperty,Q_=RegExp("^"+H_.call(Z_).replace(B_,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function W_(e){if(!mp(e)||U_(e))return!1;var t=D_(e)?Q_:q_;return t.test(Ee(e))}var K_=W_;function J_(e,t){return e?.[t]}var X_=J_;function eL(e,t){var r=X_(e,t);return K_(r)?r:void 0}var Ot=eL,tL=Ot(J,"WeakMap"),za=tL;function rL(e,t){return e===t||e!==e&&t!==t}var iL=rL,nL=9007199254740991;function oL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=nL}var aL=oL,JJ=Object.prototype,lL="[object Arguments]";function sL(e){return Ha(e)&&fi(e)==lL}var Td=sL,bp=Object.prototype,uL=bp.hasOwnProperty,cL=bp.propertyIsEnumerable,XJ=Td(function(){return arguments}())?Td:function(e){return Ha(e)&&uL.call(e,"callee")&&!cL.call(e,"callee")},hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Od=hp&&typeof module=="object"&&module&&!module.nodeType&&module,dL=Od&&Od.exports===hp,Nd=dL?J.Buffer:void 0,eX=Nd?Nd.isBuffer:void 0,pL="[object Arguments]",gL="[object Array]",fL="[object Boolean]",yL="[object Date]",mL="[object Error]",bL="[object Function]",hL="[object Map]",vL="[object Number]",wL="[object Object]",kL="[object RegExp]",xL="[object Set]",IL="[object String]",AL="[object WeakMap]",CL="[object ArrayBuffer]",ML="[object DataView]",jL="[object Float32Array]",SL="[object Float64Array]",$L="[object Int8Array]",EL="[object Int16Array]",_L="[object Int32Array]",LL="[object Uint8Array]",TL="[object Uint8ClampedArray]",OL="[object Uint16Array]",NL="[object Uint32Array]",D={};D[jL]=D[SL]=D[$L]=D[EL]=D[_L]=D[LL]=D[TL]=D[OL]=D[NL]=!0;D[pL]=D[gL]=D[CL]=D[fL]=D[ML]=D[yL]=D[mL]=D[bL]=D[hL]=D[vL]=D[wL]=D[kL]=D[xL]=D[IL]=D[AL]=!1;function DL(e){return Ha(e)&&aL(e.length)&&!!D[fi(e)]}var PL=DL;function zL(e){return function(t){return e(t)}}var UL=zL,vp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,li=vp&&typeof module=="object"&&module&&!module.nodeType&&module,RL=li&&li.exports===vp,_a=RL&&fp.process,FL=function(){try{var e=li&&li.require&&li.require("util").types;return e||_a&&_a.binding&&_a.binding("util")}catch{}}(),Dd=FL,Pd=Dd&&Dd.isTypedArray,tX=Pd?UL(Pd):PL,VL=Object.prototype,rX=VL.hasOwnProperty;function BL(e,t){return function(r){return e(t(r))}}var qL=BL,iX=qL(Object.keys,Object),GL=Object.prototype,nX=GL.hasOwnProperty,YL=Ot(Object,"create"),ci=YL;function HL(){this.__data__=ci?ci(null):{},this.size=0}var ZL=HL;function QL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var WL=QL,KL="__lodash_hash_undefined__",JL=Object.prototype,XL=JL.hasOwnProperty;function eT(e){var t=this.__data__;if(ci){var r=t[e];return r===KL?void 0:r}return XL.call(t,e)?t[e]:void 0}var tT=eT,rT=Object.prototype,iT=rT.hasOwnProperty;function nT(e){var t=this.__data__;return ci?t[e]!==void 0:iT.call(t,e)}var oT=nT,aT="__lodash_hash_undefined__";function lT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ci&&t===void 0?aT:t,this}var sT=lT;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=ZL;Nt.prototype.delete=WL;Nt.prototype.get=tT;Nt.prototype.has=oT;Nt.prototype.set=sT;var zd=Nt;function uT(){this.__data__=[],this.size=0}var cT=uT;function dT(e,t){for(var r=e.length;r--;)if(iL(e[r][0],t))return r;return-1}var Un=dT,pT=Array.prototype,gT=pT.splice;function fT(e){var t=this.__data__,r=Un(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():gT.call(t,r,1),--this.size,!0}var yT=fT;function mT(e){var t=this.__data__,r=Un(t,e);return r<0?void 0:t[r][1]}var bT=mT;function hT(e){return Un(this.__data__,e)>-1}var vT=hT;function wT(e,t){var r=this.__data__,i=Un(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var kT=wT;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=cT;Dt.prototype.delete=yT;Dt.prototype.get=bT;Dt.prototype.has=vT;Dt.prototype.set=kT;var Rn=Dt,xT=Ot(J,"Map"),di=xT;function IT(){this.size=0,this.__data__={hash:new zd,map:new(di||Rn),string:new zd}}var AT=IT;function CT(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var MT=CT;function jT(e,t){var r=e.__data__;return MT(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Fn=jT;function ST(e){var t=Fn(this,e).delete(e);return this.size-=t?1:0,t}var $T=ST;function ET(e){return Fn(this,e).get(e)}var _T=ET;function LT(e){return Fn(this,e).has(e)}var TT=LT;function OT(e,t){var r=Fn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var NT=OT;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=AT;Pt.prototype.delete=$T;Pt.prototype.get=_T;Pt.prototype.has=TT;Pt.prototype.set=NT;var wp=Pt;function DT(){this.__data__=new Rn,this.size=0}var PT=DT;function zT(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var UT=zT;function RT(e){return this.__data__.get(e)}var FT=RT;function VT(e){return this.__data__.has(e)}var BT=VT,qT=200;function GT(e,t){var r=this.__data__;if(r instanceof Rn){var i=r.__data__;if(!di||i.length<qT-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new wp(i)}return r.set(e,t),this.size=r.size,this}var YT=GT;function yi(e){var t=this.__data__=new Rn(e);this.size=t.size}yi.prototype.clear=PT;yi.prototype.delete=UT;yi.prototype.get=FT;yi.prototype.has=BT;yi.prototype.set=YT;var HT=Object.prototype,oX=HT.propertyIsEnumerable,ZT=Ot(J,"DataView"),Ua=ZT,QT=Ot(J,"Promise"),Ra=QT,WT=Ot(J,"Set"),Fa=WT,Ud="[object Map]",KT="[object Object]",Rd="[object Promise]",Fd="[object Set]",Vd="[object WeakMap]",Bd="[object DataView]",JT=Ee(Ua),XT=Ee(di),eO=Ee(Ra),tO=Ee(Fa),rO=Ee(za),Ct=fi;(Ua&&Ct(new Ua(new ArrayBuffer(1)))!=Bd||di&&Ct(new di)!=Ud||Ra&&Ct(Ra.resolve())!=Rd||Fa&&Ct(new Fa)!=Fd||za&&Ct(new za)!=Vd)&&(Ct=function(e){var t=fi(e),r=t==KT?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case JT:return Bd;case XT:return Ud;case eO:return Rd;case tO:return Fd;case rO:return Vd}return t});var aX=J.Uint8Array,iO="__lodash_hash_undefined__";function nO(e){return this.__data__.set(e,iO),this}var oO=nO;function aO(e){return this.__data__.has(e)}var lO=aO;function Va(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new wp;++t<r;)this.add(e[t])}Va.prototype.add=Va.prototype.push=oO;Va.prototype.has=lO;var qd=$t?$t.prototype:void 0,lX=qd?qd.valueOf:void 0,sO=Object.prototype,sX=sO.hasOwnProperty,uO=Object.prototype,uX=uO.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");function cO(e){return e==null?[]:Array.isArray(e)?e:[e]}var Gd=cO,Mt="@imgly/plugin-ai-audio-generation-web",Me="ly.img.ai.audio-generation.speech",je="ly.img.ai.audio-generation.sound";function dO(e){return{async initialize({cesdk:t}){if(t==null)return;nE(t,Mt,"0.2.6"),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),t.setTranslations({en:{[`panel.${Me}`]:"AI Voice",[`panel.${je}`]:"Sound Generation"}}),pO(e);let r=ep.get(),i=r.register({type:"plugin",sceneMode:"Video",id:`${Mt}/sound`,pluginId:Mt,label:"Generate Sound",meta:{panelId:je},execute:()=>{t.ui.isPanelOpen(je)?t.ui.closePanel(je):t.ui.openPanel(je)}}),n=r.register({type:"plugin",sceneMode:"Video",id:`${Mt}/speech`,pluginId:Mt,label:"AI Voice",meta:{panelId:Me},execute:()=>{t.ui.isPanelOpen(Me)?t.ui.closePanel(Me):t.ui.openPanel(Me)}}),a=e.providers?.text2speech??e.text2speech,o=e.providers?.text2sound??e.text2sound,s=await Promise.all(Gd(a).map(p=>p({cesdk:t}))),c=await Promise.all(Gd(o).map(p=>p({cesdk:t}))),l=s.length>0,u=c.length>0;if(!l&&!u){i(),n();return}u||i(),l||n();let d=await Ed("audio",s,{cesdk:t},e),g=await Ed("audio",c,{cesdk:t},e);g.panel.builderRenderFunction!=null?(t.ui.registerPanel(je,g.panel.builderRenderFunction),Md({cesdk:t,panelId:je})):i(),d.panel.builderRenderFunction!=null?(t.ui.registerPanel(Me,d.panel.builderRenderFunction),Md({cesdk:t,panelId:Me})):n()}}}function pO(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 gO=dO,fO=e=>({name:Mt,version:"0.2.6",...gO(e)}),kp=fO;var yO="@imgly/plugin-ai-text-generation",mO=`
273
+ `,sE=lE;function uE(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 jp(2e3),await cE(t,e,r)):i(t,r)}async function cE(e,t,r){switch(t.kind){case"image":return dE(e,t,r);case"video":return pE(e,t,r);case"text":return gE(e,t,r);case"audio":return yE(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function dE(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 a_(s,r),l=await o_(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
+ `,"+")}`}}async function pE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function gE(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=ci(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ci(n,o)}else"customPrompt"in e?a=ci(n,"custom"):a=ci(n,"improved");else a=ci(n,"generated");return fE(a,r.abortSignal)}async function*fE(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 jp(100)}return{kind:"text",text:e}}function ci(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 yE(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:mE(220,i),duration:i,thumbnailUrl:void 0}}function mE(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 hE(i,44100)}function hE(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jp(e){return new Promise(t=>{setTimeout(t,e)})}var bE=uE,vE="USER_CANCEL";function wE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=c_([...e.provider.output.middleware??[],...r?.middlewares??[],p_({enable:r?.debug}),bE({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:m_(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return nl(n)?{status:"aborted",message:n.message}:n===vE?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var kE=wE;async function xE(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=fp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=nE(a),s=aE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=kE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await rE(a,c);h_(r.cesdk,"@imgly/plugin-ai-generation",sE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return u_.get().register(u),u}var Ba=xE;function IE(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 sj(n,r,i);return r.engine.asset.addSource(a),a.id}var AE=IE;function gi(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 CE(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Ba(e,u,r,i)));o.push(...l),a=jE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ba(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ba(e,d,r,i)));o.push(...u),a=ME({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=AE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(s_)}),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 ME({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{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 C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:gi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:gi(e,"fromText.label"),icon:f.value!=="fromText"&&Bd(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:gi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Bd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function jE({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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Bd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(al(r.id),!1).value)}var qd=CE,SE=typeof global=="object"&&global&&global.Object===Object&&global,Sp=SE,$E=typeof self=="object"&&self&&self.Object===Object&&self,_E=Sp||$E||Function("return this")(),re=_E,EE=re.Symbol,Tt=EE,$p=Object.prototype,LE=$p.hasOwnProperty,TE=$p.toString,di=Tt?Tt.toStringTag:void 0;function OE(e){var t=LE.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=TE.call(e);return i&&(t?e[di]=r:delete e[di]),n}var NE=OE,DE=Object.prototype,PE=DE.toString;function zE(e){return PE.call(e)}var UE=zE,RE="[object Null]",FE="[object Undefined]",Gd=Tt?Tt.toStringTag:void 0;function VE(e){return e==null?e===void 0?FE:RE:Gd&&Gd in Object(e)?NE(e):UE(e)}var Ai=VE;function BE(e){return e!=null&&typeof e=="object"}var ll=BE,dX=Array.isArray;function qE(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _p=qE,GE="[object AsyncFunction]",YE="[object Function]",HE="[object GeneratorFunction]",ZE="[object Proxy]";function QE(e){if(!_p(e))return!1;var t=Ai(e);return t==YE||t==HE||t==GE||t==ZE}var WE=QE,KE=re["__core-js_shared__"],qa=KE,Yd=function(){var e=/[^.]+$/.exec(qa&&qa.keys&&qa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JE(e){return!!Yd&&Yd in e}var XE=JE,eL=Function.prototype,tL=eL.toString;function rL(e){if(e!=null){try{return tL.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=rL,iL=/[\\^$.*+?()[\]{}|]/g,nL=/^\[object .+?Constructor\]$/,oL=Function.prototype,aL=Object.prototype,lL=oL.toString,sL=aL.hasOwnProperty,uL=RegExp("^"+lL.call(sL).replace(iL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cL(e){if(!_p(e)||XE(e))return!1;var t=WE(e)?uL:nL;return t.test(Oe(e))}var dL=cL;function pL(e,t){return e?.[t]}var gL=pL;function fL(e,t){var r=gL(e,t);return dL(r)?r:void 0}var zt=fL,yL=zt(re,"WeakMap"),Ja=yL;function mL(e,t){return e===t||e!==e&&t!==t}var hL=mL,bL=9007199254740991;function vL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bL}var wL=vL,pX=Object.prototype,kL="[object Arguments]";function xL(e){return ll(e)&&Ai(e)==kL}var Hd=xL,Ep=Object.prototype,IL=Ep.hasOwnProperty,AL=Ep.propertyIsEnumerable,gX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&IL.call(e,"callee")&&!AL.call(e,"callee")},Lp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Lp&&typeof module=="object"&&module&&!module.nodeType&&module,CL=Zd&&Zd.exports===Lp,Qd=CL?re.Buffer:void 0,fX=Qd?Qd.isBuffer:void 0,ML="[object Arguments]",jL="[object Array]",SL="[object Boolean]",$L="[object Date]",_L="[object Error]",EL="[object Function]",LL="[object Map]",TL="[object Number]",OL="[object Object]",NL="[object RegExp]",DL="[object Set]",PL="[object String]",zL="[object WeakMap]",UL="[object ArrayBuffer]",RL="[object DataView]",FL="[object Float32Array]",VL="[object Float64Array]",BL="[object Int8Array]",qL="[object Int16Array]",GL="[object Int32Array]",YL="[object Uint8Array]",HL="[object Uint8ClampedArray]",ZL="[object Uint16Array]",QL="[object Uint32Array]",U={};U[FL]=U[VL]=U[BL]=U[qL]=U[GL]=U[YL]=U[HL]=U[ZL]=U[QL]=!0;U[ML]=U[jL]=U[UL]=U[SL]=U[RL]=U[$L]=U[_L]=U[EL]=U[LL]=U[TL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=!1;function WL(e){return ll(e)&&wL(e.length)&&!!U[Ai(e)]}var KL=WL;function JL(e){return function(t){return e(t)}}var XL=JL,Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yi=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,eT=yi&&yi.exports===Tp,Ga=eT&&Sp.process,tT=function(){try{var e=yi&&yi.require&&yi.require("util").types;return e||Ga&&Ga.binding&&Ga.binding("util")}catch{}}(),Wd=tT,Kd=Wd&&Wd.isTypedArray,yX=Kd?XL(Kd):KL,rT=Object.prototype,mX=rT.hasOwnProperty;function iT(e,t){return function(r){return e(t(r))}}var nT=iT,hX=nT(Object.keys,Object),oT=Object.prototype,bX=oT.hasOwnProperty,aT=zt(Object,"create"),bi=aT;function lT(){this.__data__=bi?bi(null):{},this.size=0}var sT=lT;function uT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cT=uT,dT="__lodash_hash_undefined__",pT=Object.prototype,gT=pT.hasOwnProperty;function fT(e){var t=this.__data__;if(bi){var r=t[e];return r===dT?void 0:r}return gT.call(t,e)?t[e]:void 0}var yT=fT,mT=Object.prototype,hT=mT.hasOwnProperty;function bT(e){var t=this.__data__;return bi?t[e]!==void 0:hT.call(t,e)}var vT=bT,wT="__lodash_hash_undefined__";function kT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=bi&&t===void 0?wT:t,this}var xT=kT;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=sT;Ut.prototype.delete=cT;Ut.prototype.get=yT;Ut.prototype.has=vT;Ut.prototype.set=xT;var Jd=Ut;function IT(){this.__data__=[],this.size=0}var AT=IT;function CT(e,t){for(var r=e.length;r--;)if(hL(e[r][0],t))return r;return-1}var Xn=CT,MT=Array.prototype,jT=MT.splice;function ST(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():jT.call(t,r,1),--this.size,!0}var $T=ST;function _T(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var ET=_T;function LT(e){return Xn(this.__data__,e)>-1}var TT=LT;function OT(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var NT=OT;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=AT;Rt.prototype.delete=$T;Rt.prototype.get=ET;Rt.prototype.has=TT;Rt.prototype.set=NT;var eo=Rt,DT=zt(re,"Map"),vi=DT;function PT(){this.size=0,this.__data__={hash:new Jd,map:new(vi||eo),string:new Jd}}var zT=PT;function UT(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RT=UT;function FT(e,t){var r=e.__data__;return RT(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=FT;function VT(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var BT=VT;function qT(e){return to(this,e).get(e)}var GT=qT;function YT(e){return to(this,e).has(e)}var HT=YT;function ZT(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QT=ZT;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=zT;Ft.prototype.delete=BT;Ft.prototype.get=GT;Ft.prototype.has=HT;Ft.prototype.set=QT;var Op=Ft;function WT(){this.__data__=new eo,this.size=0}var KT=WT;function JT(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XT=JT;function eO(e){return this.__data__.get(e)}var tO=eO;function rO(e){return this.__data__.has(e)}var iO=rO,nO=200;function oO(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<nO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Op(i)}return r.set(e,t),this.size=r.size,this}var aO=oO;function Ci(e){var t=this.__data__=new eo(e);this.size=t.size}Ci.prototype.clear=KT;Ci.prototype.delete=XT;Ci.prototype.get=tO;Ci.prototype.has=iO;Ci.prototype.set=aO;var lO=Object.prototype,vX=lO.propertyIsEnumerable,sO=zt(re,"DataView"),Xa=sO,uO=zt(re,"Promise"),el=uO,cO=zt(re,"Set"),tl=cO,Xd="[object Map]",dO="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",pO=Oe(Xa),gO=Oe(vi),fO=Oe(el),yO=Oe(tl),mO=Oe(Ja),$t=Ai;(Xa&&$t(new Xa(new ArrayBuffer(1)))!=ip||vi&&$t(new vi)!=Xd||el&&$t(el.resolve())!=ep||tl&&$t(new tl)!=tp||Ja&&$t(new Ja)!=rp)&&($t=function(e){var t=Ai(e),r=t==dO?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case pO:return ip;case gO:return Xd;case fO:return ep;case yO:return tp;case mO:return rp}return t});var wX=re.Uint8Array,hO="__lodash_hash_undefined__";function bO(e){return this.__data__.set(e,hO),this}var vO=bO;function wO(e){return this.__data__.has(e)}var kO=wO;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Op;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=vO;rl.prototype.has=kO;var np=Tt?Tt.prototype:void 0,kX=np?np.valueOf:void 0,xO=Object.prototype,xX=xO.hasOwnProperty,IO=Object.prototype,IX=IO.hasOwnProperty,AX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),CX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),MX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function AO(e){return e==null?[]:Array.isArray(e)?e:[e]}var op=AO,_t="@imgly/plugin-ai-audio-generation-web",_e="ly.img.ai.audio-generation.speech",Ee="ly.img.ai.audio-generation.sound";function CO(e){return{async initialize({cesdk:t}){if(t==null)return;b_(t,_t,"0.2.7"),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),t.setTranslations({en:{[`panel.${_e}`]:"AI Voice",[`panel.${Ee}`]:"Sound Generation"}}),MO(e);let r=fp.get(),i=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/sound`,pluginId:_t,label:"Generate Sound",meta:{panelId:Ee},execute:()=>{t.ui.isPanelOpen(Ee)?t.ui.closePanel(Ee):t.ui.openPanel(Ee)}}),n=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/speech`,pluginId:_t,label:"AI Voice",meta:{panelId:_e},execute:()=>{t.ui.isPanelOpen(_e)?t.ui.closePanel(_e):t.ui.openPanel(_e)}}),a=e.providers?.text2speech??e.text2speech,o=e.providers?.text2sound??e.text2sound,s=await Promise.all(op(a).map(g=>g({cesdk:t}))),c=await Promise.all(op(o).map(g=>g({cesdk:t}))),l=s.length>0,u=c.length>0;if(!l&&!u){i(),n();return}u||i(),l||n();let d=await qd("audio",s,{cesdk:t},e),p=await qd("audio",c,{cesdk:t},e);p.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ee,p.panel.builderRenderFunction),Rd({cesdk:t,panelId:Ee})):i(),d.panel.builderRenderFunction!=null?(t.ui.registerPanel(_e,d.panel.builderRenderFunction),Rd({cesdk:t,panelId:_e})):n()}}}function MO(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 jO=CO,SO=e=>({name:_t,version:"0.2.7",...jO(e)}),Np=SO;var $O="@imgly/plugin-ai-text-generation",_O=`
275
275
  <svg>
276
276
  <symbol
277
277
  fill="none"
@@ -347,10 +347,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
347
347
  <path d="M3.72318 6.44728C3.63105 6.26302 3.3681 6.26302 3.27597 6.44728L3.03684 6.92554C3.01265 6.97392 2.97343 7.01314 2.92505 7.03733L2.44677 7.27652C2.26252 7.36866 2.26254 7.63161 2.44681 7.72373L2.92503 7.9628C2.97342 7.98699 3.01266 8.02622 3.03685 8.07461L3.27597 8.55285C3.3681 8.73711 3.63105 8.73711 3.72318 8.55285L3.96231 8.0746C3.9865 8.02622 4.02573 7.98699 4.07411 7.9628L4.55236 7.72367C4.73663 7.63154 4.73663 7.36859 4.55236 7.27646L4.07411 7.03733C4.02573 7.01314 3.9865 6.97391 3.96231 6.92553L3.72318 6.44728Z" fill="currentColor"/>
348
348
  </symbol>
349
349
  </svg>
350
- `,bO=mO,hO=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Rt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Rt(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 Rt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Rt(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 Rt(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]=Rt(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]=Rt(n,t,a)}return e}var vO=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wO=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},sg=wO,kO=typeof global=="object"&&global&&global.Object===Object&&global,ug=kO,xO=typeof self=="object"&&self&&self.Object===Object&&self,IO=ug||xO||Function("return this")(),X=IO,AO=X.Symbol,Ft=AO,cg=Object.prototype,CO=cg.hasOwnProperty,MO=cg.toString,mi=Ft?Ft.toStringTag:void 0;function jO(e){var t=CO.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=MO.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var SO=jO,$O=Object.prototype,EO=$O.toString;function _O(e){return EO.call(e)}var LO=_O,TO="[object Null]",OO="[object Undefined]",xp=Ft?Ft.toStringTag:void 0;function NO(e){return e==null?e===void 0?OO:TO:xp&&xp in Object(e)?SO(e):LO(e)}var $i=NO;function DO(e){return e!=null&&typeof e=="object"}var fl=DO,mX=Array.isArray;function PO(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=PO,zO="[object AsyncFunction]",UO="[object Function]",RO="[object GeneratorFunction]",FO="[object Proxy]";function VO(e){if(!dg(e))return!1;var t=$i(e);return t==UO||t==RO||t==zO||t==FO}var BO=VO,qO=X["__core-js_shared__"],Za=qO,Ip=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function GO(e){return!!Ip&&Ip in e}var YO=GO,HO=Function.prototype,ZO=HO.toString;function QO(e){if(e!=null){try{return ZO.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=QO,WO=/[\\^$.*+?()[\]{}|]/g,KO=/^\[object .+?Constructor\]$/,JO=Function.prototype,XO=Object.prototype,eN=JO.toString,tN=XO.hasOwnProperty,rN=RegExp("^"+eN.call(tN).replace(WO,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function iN(e){if(!dg(e)||YO(e))return!1;var t=BO(e)?rN:KO;return t.test(Oe(e))}var nN=iN;function oN(e,t){return e?.[t]}var aN=oN;function lN(e,t){var r=aN(e,t);return nN(r)?r:void 0}var Bt=lN,sN=Bt(X,"WeakMap"),rl=sN;function uN(e,t){return e===t||e!==e&&t!==t}var cN=uN,dN=9007199254740991;function pN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=dN}var gN=pN,bX=Object.prototype,fN="[object Arguments]";function yN(e){return fl(e)&&$i(e)==fN}var Ap=yN,pg=Object.prototype,mN=pg.hasOwnProperty,bN=pg.propertyIsEnumerable,hX=Ap(function(){return arguments}())?Ap:function(e){return fl(e)&&mN.call(e,"callee")&&!bN.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Cp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,hN=Cp&&Cp.exports===gg,Mp=hN?X.Buffer:void 0,vX=Mp?Mp.isBuffer:void 0,vN="[object Arguments]",wN="[object Array]",kN="[object Boolean]",xN="[object Date]",IN="[object Error]",AN="[object Function]",CN="[object Map]",MN="[object Number]",jN="[object Object]",SN="[object RegExp]",$N="[object Set]",EN="[object String]",_N="[object WeakMap]",LN="[object ArrayBuffer]",TN="[object DataView]",ON="[object Float32Array]",NN="[object Float64Array]",DN="[object Int8Array]",PN="[object Int16Array]",zN="[object Int32Array]",UN="[object Uint8Array]",RN="[object Uint8ClampedArray]",FN="[object Uint16Array]",VN="[object Uint32Array]",P={};P[ON]=P[NN]=P[DN]=P[PN]=P[zN]=P[UN]=P[RN]=P[FN]=P[VN]=!0;P[vN]=P[wN]=P[LN]=P[kN]=P[TN]=P[xN]=P[IN]=P[AN]=P[CN]=P[MN]=P[jN]=P[SN]=P[$N]=P[EN]=P[_N]=!1;function BN(e){return fl(e)&&gN(e.length)&&!!P[$i(e)]}var qN=BN;function GN(e){return function(t){return e(t)}}var YN=GN,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ii=fg&&typeof module=="object"&&module&&!module.nodeType&&module,HN=Ii&&Ii.exports===fg,Qa=HN&&ug.process,ZN=function(){try{var e=Ii&&Ii.require&&Ii.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),jp=ZN,Sp=jp&&jp.isTypedArray,wX=Sp?YN(Sp):qN,QN=Object.prototype,kX=QN.hasOwnProperty;function WN(e,t){return function(r){return e(t(r))}}var KN=WN,xX=KN(Object.keys,Object),JN=Object.prototype,IX=JN.hasOwnProperty,XN=Bt(Object,"create"),Ci=XN;function eD(){this.__data__=Ci?Ci(null):{},this.size=0}var tD=eD;function rD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var iD=rD,nD="__lodash_hash_undefined__",oD=Object.prototype,aD=oD.hasOwnProperty;function lD(e){var t=this.__data__;if(Ci){var r=t[e];return r===nD?void 0:r}return aD.call(t,e)?t[e]:void 0}var sD=lD,uD=Object.prototype,cD=uD.hasOwnProperty;function dD(e){var t=this.__data__;return Ci?t[e]!==void 0:cD.call(t,e)}var pD=dD,gD="__lodash_hash_undefined__";function fD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ci&&t===void 0?gD:t,this}var yD=fD;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=tD;qt.prototype.delete=iD;qt.prototype.get=sD;qt.prototype.has=pD;qt.prototype.set=yD;var $p=qt;function mD(){this.__data__=[],this.size=0}var bD=mD;function hD(e,t){for(var r=e.length;r--;)if(cN(e[r][0],t))return r;return-1}var Vn=hD,vD=Array.prototype,wD=vD.splice;function kD(e){var t=this.__data__,r=Vn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():wD.call(t,r,1),--this.size,!0}var xD=kD;function ID(e){var t=this.__data__,r=Vn(t,e);return r<0?void 0:t[r][1]}var AD=ID;function CD(e){return Vn(this.__data__,e)>-1}var MD=CD;function jD(e,t){var r=this.__data__,i=Vn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var SD=jD;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=bD;Gt.prototype.delete=xD;Gt.prototype.get=AD;Gt.prototype.has=MD;Gt.prototype.set=SD;var Bn=Gt,$D=Bt(X,"Map"),Mi=$D;function ED(){this.size=0,this.__data__={hash:new $p,map:new(Mi||Bn),string:new $p}}var _D=ED;function LD(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var TD=LD;function OD(e,t){var r=e.__data__;return TD(t)?r[typeof t=="string"?"string":"hash"]:r.map}var qn=OD;function ND(e){var t=qn(this,e).delete(e);return this.size-=t?1:0,t}var DD=ND;function PD(e){return qn(this,e).get(e)}var zD=PD;function UD(e){return qn(this,e).has(e)}var RD=UD;function FD(e,t){var r=qn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var VD=FD;function Yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Yt.prototype.clear=_D;Yt.prototype.delete=DD;Yt.prototype.get=zD;Yt.prototype.has=RD;Yt.prototype.set=VD;var yg=Yt;function BD(){this.__data__=new Bn,this.size=0}var qD=BD;function GD(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var YD=GD;function HD(e){return this.__data__.get(e)}var ZD=HD;function QD(e){return this.__data__.has(e)}var WD=QD,KD=200;function JD(e,t){var r=this.__data__;if(r instanceof Bn){var i=r.__data__;if(!Mi||i.length<KD-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 XD=JD;function Ei(e){var t=this.__data__=new Bn(e);this.size=t.size}Ei.prototype.clear=qD;Ei.prototype.delete=YD;Ei.prototype.get=ZD;Ei.prototype.has=WD;Ei.prototype.set=XD;var eP=Object.prototype,AX=eP.propertyIsEnumerable,tP=Bt(X,"DataView"),il=tP,rP=Bt(X,"Promise"),nl=rP,iP=Bt(X,"Set"),ol=iP,Ep="[object Map]",nP="[object Object]",_p="[object Promise]",Lp="[object Set]",Tp="[object WeakMap]",Op="[object DataView]",oP=Oe(il),aP=Oe(Mi),lP=Oe(nl),sP=Oe(ol),uP=Oe(rl),zt=$i;(il&&zt(new il(new ArrayBuffer(1)))!=Op||Mi&&zt(new Mi)!=Ep||nl&&zt(nl.resolve())!=_p||ol&&zt(new ol)!=Lp||rl&&zt(new rl)!=Tp)&&(zt=function(e){var t=$i(e),r=t==nP?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case oP:return Op;case aP:return Ep;case lP:return _p;case sP:return Lp;case uP:return Tp}return t});var CX=X.Uint8Array,cP="__lodash_hash_undefined__";function dP(e){return this.__data__.set(e,cP),this}var pP=dP;function gP(e){return this.__data__.has(e)}var fP=gP;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=pP;al.prototype.has=fP;var Np=Ft?Ft.prototype:void 0,MX=Np?Np.valueOf:void 0,yP=Object.prototype,jX=yP.hasOwnProperty,mP=Object.prototype,SX=mP.hasOwnProperty,$X=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),EX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_X=new RegExp(/[A-Fa-f0-9]{2}/,"g");function bP(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function mg(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 mg(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 hP(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 mg(i,t)}function vP(e){return e!==void 0}var Gn=vP,yl=class bg{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new bg),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},hg=class vg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new vg),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function wP(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,b)=>s(l+1,f,b),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function kP({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var xP=kP,Wa="ly.img.ai.temp";async function IP(e,t){return e.engine.asset.findAllSources().includes(Wa)||e.engine.asset.addLocalSource(Wa),e.engine.asset.apply(Wa,t)}function AP(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 wg(){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 CP(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 MP(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 ml(e){return e instanceof Error&&e.name==="AbortError"}function jP(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function SP(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
350
+ `,EO=_O,LO=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;qt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{qt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return qt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),qt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function qt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=qt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=qt(n,t,a)}return e}var TO=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")}},OO=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)}},xg=OO,NO=typeof global=="object"&&global&&global.Object===Object&&global,Ig=NO,DO=typeof self=="object"&&self&&self.Object===Object&&self,PO=Ig||DO||Function("return this")(),ie=PO,zO=ie.Symbol,Gt=zO,Ag=Object.prototype,UO=Ag.hasOwnProperty,RO=Ag.toString,Mi=Gt?Gt.toStringTag:void 0;function FO(e){var t=UO.call(e,Mi),r=e[Mi];try{e[Mi]=void 0;var i=!0}catch{}var n=RO.call(e);return i&&(t?e[Mi]=r:delete e[Mi]),n}var VO=FO,BO=Object.prototype,qO=BO.toString;function GO(e){return qO.call(e)}var YO=GO,HO="[object Null]",ZO="[object Undefined]",Dp=Gt?Gt.toStringTag:void 0;function QO(e){return e==null?e===void 0?ZO:HO:Dp&&Dp in Object(e)?VO(e):YO(e)}var Ui=QO;function WO(e){return e!=null&&typeof e=="object"}var Sl=WO,_X=Array.isArray;function KO(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Cg=KO,JO="[object AsyncFunction]",XO="[object Function]",eN="[object GeneratorFunction]",tN="[object Proxy]";function rN(e){if(!Cg(e))return!1;var t=Ui(e);return t==XO||t==eN||t==JO||t==tN}var iN=rN,nN=ie["__core-js_shared__"],sl=nN,Pp=function(){var e=/[^.]+$/.exec(sl&&sl.keys&&sl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function oN(e){return!!Pp&&Pp in e}var aN=oN,lN=Function.prototype,sN=lN.toString;function uN(e){if(e!=null){try{return sN.call(e)}catch{}try{return e+""}catch{}}return""}var ze=uN,cN=/[\\^$.*+?()[\]{}|]/g,dN=/^\[object .+?Constructor\]$/,pN=Function.prototype,gN=Object.prototype,fN=pN.toString,yN=gN.hasOwnProperty,mN=RegExp("^"+fN.call(yN).replace(cN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function hN(e){if(!Cg(e)||aN(e))return!1;var t=iN(e)?mN:dN;return t.test(ze(e))}var bN=hN;function vN(e,t){return e?.[t]}var wN=vN;function kN(e,t){var r=wN(e,t);return bN(r)?r:void 0}var Ht=kN,xN=Ht(ie,"WeakMap"),ml=xN;function IN(e,t){return e===t||e!==e&&t!==t}var AN=IN,CN=9007199254740991;function MN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=CN}var jN=MN,EX=Object.prototype,SN="[object Arguments]";function $N(e){return Sl(e)&&Ui(e)==SN}var zp=$N,Mg=Object.prototype,_N=Mg.hasOwnProperty,EN=Mg.propertyIsEnumerable,LX=zp(function(){return arguments}())?zp:function(e){return Sl(e)&&_N.call(e,"callee")&&!EN.call(e,"callee")},jg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Up=jg&&typeof module=="object"&&module&&!module.nodeType&&module,LN=Up&&Up.exports===jg,Rp=LN?ie.Buffer:void 0,TX=Rp?Rp.isBuffer:void 0,TN="[object Arguments]",ON="[object Array]",NN="[object Boolean]",DN="[object Date]",PN="[object Error]",zN="[object Function]",UN="[object Map]",RN="[object Number]",FN="[object Object]",VN="[object RegExp]",BN="[object Set]",qN="[object String]",GN="[object WeakMap]",YN="[object ArrayBuffer]",HN="[object DataView]",ZN="[object Float32Array]",QN="[object Float64Array]",WN="[object Int8Array]",KN="[object Int16Array]",JN="[object Int32Array]",XN="[object Uint8Array]",eD="[object Uint8ClampedArray]",tD="[object Uint16Array]",rD="[object Uint32Array]",R={};R[ZN]=R[QN]=R[WN]=R[KN]=R[JN]=R[XN]=R[eD]=R[tD]=R[rD]=!0;R[TN]=R[ON]=R[YN]=R[NN]=R[HN]=R[DN]=R[PN]=R[zN]=R[UN]=R[RN]=R[FN]=R[VN]=R[BN]=R[qN]=R[GN]=!1;function iD(e){return Sl(e)&&jN(e.length)&&!!R[Ui(e)]}var nD=iD;function oD(e){return function(t){return e(t)}}var aD=oD,Sg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ti=Sg&&typeof module=="object"&&module&&!module.nodeType&&module,lD=Ti&&Ti.exports===Sg,ul=lD&&Ig.process,sD=function(){try{var e=Ti&&Ti.require&&Ti.require("util").types;return e||ul&&ul.binding&&ul.binding("util")}catch{}}(),Fp=sD,Vp=Fp&&Fp.isTypedArray,OX=Vp?aD(Vp):nD,uD=Object.prototype,NX=uD.hasOwnProperty;function cD(e,t){return function(r){return e(t(r))}}var dD=cD,DX=dD(Object.keys,Object),pD=Object.prototype,PX=pD.hasOwnProperty,gD=Ht(Object,"create"),Ni=gD;function fD(){this.__data__=Ni?Ni(null):{},this.size=0}var yD=fD;function mD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var hD=mD,bD="__lodash_hash_undefined__",vD=Object.prototype,wD=vD.hasOwnProperty;function kD(e){var t=this.__data__;if(Ni){var r=t[e];return r===bD?void 0:r}return wD.call(t,e)?t[e]:void 0}var xD=kD,ID=Object.prototype,AD=ID.hasOwnProperty;function CD(e){var t=this.__data__;return Ni?t[e]!==void 0:AD.call(t,e)}var MD=CD,jD="__lodash_hash_undefined__";function SD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ni&&t===void 0?jD:t,this}var $D=SD;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=yD;Zt.prototype.delete=hD;Zt.prototype.get=xD;Zt.prototype.has=MD;Zt.prototype.set=$D;var Bp=Zt;function _D(){this.__data__=[],this.size=0}var ED=_D;function LD(e,t){for(var r=e.length;r--;)if(AN(e[r][0],t))return r;return-1}var ro=LD,TD=Array.prototype,OD=TD.splice;function ND(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():OD.call(t,r,1),--this.size,!0}var DD=ND;function PD(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var zD=PD;function UD(e){return ro(this.__data__,e)>-1}var RD=UD;function FD(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var VD=FD;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=ED;Qt.prototype.delete=DD;Qt.prototype.get=zD;Qt.prototype.has=RD;Qt.prototype.set=VD;var io=Qt,BD=Ht(ie,"Map"),Di=BD;function qD(){this.size=0,this.__data__={hash:new Bp,map:new(Di||io),string:new Bp}}var GD=qD;function YD(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var HD=YD;function ZD(e,t){var r=e.__data__;return HD(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=ZD;function QD(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var WD=QD;function KD(e){return no(this,e).get(e)}var JD=KD;function XD(e){return no(this,e).has(e)}var eP=XD;function tP(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var rP=tP;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=GD;Wt.prototype.delete=WD;Wt.prototype.get=JD;Wt.prototype.has=eP;Wt.prototype.set=rP;var $g=Wt;function iP(){this.__data__=new io,this.size=0}var nP=iP;function oP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var aP=oP;function lP(e){return this.__data__.get(e)}var sP=lP;function uP(e){return this.__data__.has(e)}var cP=uP,dP=200;function pP(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!Di||i.length<dP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $g(i)}return r.set(e,t),this.size=r.size,this}var gP=pP;function Ri(e){var t=this.__data__=new io(e);this.size=t.size}Ri.prototype.clear=nP;Ri.prototype.delete=aP;Ri.prototype.get=sP;Ri.prototype.has=cP;Ri.prototype.set=gP;var fP=Object.prototype,zX=fP.propertyIsEnumerable,yP=Ht(ie,"DataView"),hl=yP,mP=Ht(ie,"Promise"),bl=mP,hP=Ht(ie,"Set"),vl=hP,qp="[object Map]",bP="[object Object]",Gp="[object Promise]",Yp="[object Set]",Hp="[object WeakMap]",Zp="[object DataView]",vP=ze(hl),wP=ze(Di),kP=ze(bl),xP=ze(vl),IP=ze(ml),Vt=Ui;(hl&&Vt(new hl(new ArrayBuffer(1)))!=Zp||Di&&Vt(new Di)!=qp||bl&&Vt(bl.resolve())!=Gp||vl&&Vt(new vl)!=Yp||ml&&Vt(new ml)!=Hp)&&(Vt=function(e){var t=Ui(e),r=t==bP?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case vP:return Zp;case wP:return qp;case kP:return Gp;case xP:return Yp;case IP:return Hp}return t});var UX=ie.Uint8Array,AP="__lodash_hash_undefined__";function CP(e){return this.__data__.set(e,AP),this}var MP=CP;function jP(e){return this.__data__.has(e)}var SP=jP;function wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $g;++t<r;)this.add(e[t])}wl.prototype.add=wl.prototype.push=MP;wl.prototype.has=SP;var Qp=Gt?Gt.prototype:void 0,RX=Qp?Qp.valueOf:void 0,$P=Object.prototype,FX=$P.hasOwnProperty,_P=Object.prototype,VX=_P.hasOwnProperty,BX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function EP(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function _g(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 kl(e,t){let r=await _g(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 LP(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 _g(i,t)}function TP(e){return e!==void 0}var oo=TP;function Fi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Vi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var $l=class Eg{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 Eg),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))}},Lg=class Tg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tg),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 OP(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function NP({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 DP=NP,cl="ly.img.ai.temp";async function PP(e,t){return e.engine.asset.findAllSources().includes(cl)||e.engine.asset.addLocalSource(cl),e.engine.asset.apply(cl,t)}function zP(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 Og(){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 UP(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 RP(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 _l(e){return e instanceof Error&&e.name==="AbortError"}function FP(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function VP(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
351
351
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
352
352
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
353
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function $P(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),EP(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:AP(e)})}function EP(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Dp=$P,_P="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",bl=_P;function LP(e,t,r){switch(t){case"image":return TP(e,r[t]);case"video":return OP(e,r[t]);case"sticker":return NP(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TP(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 OP(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 NP(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 DP=LP;async function PP(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 zP(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 UP(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 RP(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 FP(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function zP(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 UP(e,t,r){let i=t.width,n=t.height,a=await CP(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 RP(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 FP(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 kg=PP;function VP(e){switch(e.userFlow){case"placeholder":return qP(e);case"generation-only":return BP(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function BP(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(fe(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(fe(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(fe(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=wg(),c=await kg(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function qP(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(fe(t,r))return{status:"aborted"};let s=wg(),c=DP(s,a,o);if(i=await IP(t,c),fe(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(fe(t,r,i))return{status:"aborted"};if(l.status!=="success")return 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 kg(s,a,o,l.output);if(fe(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),fe(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)&&(ml(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function fe(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var GP=VP;function hl(e){return`${e}.generating`}function YP(e){return`${e}.abort`}function HP(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(YP(d),()=>{}),y=c.global(hl(d),!1),f,b=y.value&&g,h=()=>{b&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},M;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=i();M=a.requiredInputs.every(v=>!C.input[v])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:M,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:v})=>{l.ui.closeDialog(v),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:v})=>{h(),l.ui.closeDialog(v),k.setValue(void 0)}}});k.setValue(C)}}:void 0,onClick:async()=>{f=new AbortController;let C=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let v=await GP({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(v.status==="aborted")return;if(v.status==="error"){Dp(v.message,{cesdk:l,provider:t,getInput:i});return}if(v.status==="success"&&v.type==="sync"){let w=t.output.notification;ZP(l,w,()=>({input:i().input,output:v.output}))}}catch(v){if(ml(v))return;Dp(v,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.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 ZP(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 xg=HP;async function QP({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(hl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return xg(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var WP=QP;function Ig(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=Ig(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 KP(e){return ki(e,{...e})}function JP(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 XP(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return ez(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function ez(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=tz(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function tz(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 Ag=XP;function Te(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function Cg(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 Mg(e,t,r,i,n,a,o){if(t.schema==null)return i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null?i.renderCustomProperty[t.id](e,t):void 0;let s=t,c=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null)return i.renderCustomProperty[t.id](e,t);switch(c){case"string":return t.schema.enum!=null?rz(e,s,r,i,n,a,o):jg(e,s,r,i,n,a,o);case"boolean":return Sg(e,s,r,i,n,a,o);case"number":case"integer":return $g(e,s,r,i,n,a,o);case"object":return sl(e,s,r,i,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return iz(e,s,r,i,n,a,o);break}default:console.error(`Unsupported property type: ${c}`)}}function sl(e,t,r,i,n,a,o){let s=Ag(t.schema??{},i).reduce((c,l)=>{let u=Mg(e,l,r,i,n,a,o);return u!=null&&(c[l.id]=u()),c},{});return()=>({id:t.id,type:"object",value:s})}function jg(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Te(t,r,o),g=c(u,t.schema.default??""),p=nz(t.schema),y=p?.component!=null&&p?.component==="TextArea"?"TextArea":"TextInput";return s[y](u,{inputLabel:d,placeholder:n.i18n?.prompt,...g}),()=>({id:t.id,type:"string",value:g.value})}function rz(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Te(t,r,o),{labels:g,icons:p}=Cg(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:Te(t,r,o,h),icon:p[h]})),f=t.schema.default!=null?y.find(h=>h.id===t.schema.default)??y[0]:y[0],b=c(u,f);return s.Select(u,{inputLabel:d,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Sg(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Te(t,r,o),g=!!t.schema.default,p=c(u,g);return s.Checkbox(u,{inputLabel:d,...p}),()=>({id:t.id,type:"boolean",value:p.value})}function $g(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Te(t,r,o),g=t.schema.minimum,p=t.schema.maximum,y=t.schema.default;y==null&&(g!=null?y=g:p!=null?y=p:y=0);let f=c(u,y);if(g!=null&&p!=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"]),s.Slider(u,{inputLabel:d,min:g,max:p,step:b,...f})}else s.NumberInput(u,{inputLabel:d,min:g,max:p,...f});return()=>({id:t.id,type:"integer",value:f.value})}function iz(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=Te(t,r,o),g=t.schema.anyOf??[],p=[],y={},f={},{labels:b,icons:h}=Cg(t.schema),M={string:jg,boolean:Sg,integer:$g,object:sl},k=(m,x)=>m.$ref?m.$ref.split("/").pop():x.split(".").pop()??x,C=(m,x)=>({id:m,label:Te(t,r,o,x),icon:h[x]??h[m]});g.forEach((m,x)=>{let j=`${r.id}.${l}.anyOf[${x}]`;if(m.$ref||m.title){let I=m.$ref?m.$ref.split("/").pop():m.title;y[j]=()=>sl(e,{id:j,schema:{...m,title:b[I]||I}},r,i,n,a,o),p.push(C(j,I))}else if(m.type==="string"&&m.enum)m.enum.forEach(I=>{p.push(C(I,I))});else if(m.type&&M[m.type]){let I=M[m.type];y[j]=()=>I(e,{id:j,schema:{...m,title:m.title}},r,i,n,a,o);let A=k(m,j);p.push(m.type==="string"&&!m.enum?{id:j,label:m.title||A,icon:m.title&&h[m.title]||h[A]}:C(j,A))}});let v=t.schema.default!=null?p.find(m=>m.id===t.schema.default)??p[0]:p[0],w=c(u,v);if(s.Select(u,{inputLabel:d,values:p,...w}),w.value.id in y){let m=y[w.value.id]();f[w.value.id]=m}return()=>{let m=f[w.value.id];return m!=null?{...m(),id:t.id}:{id:t.id,type:"string",value:w.value.id}}}function nz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var oz=Mg,az={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Pp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function lz(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Pp(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Pp(p);n[a(l.id,p)]=y}})}});let c={...az,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function sz({options:e,provider:t,panelInput:r,config:i},n){let{id:a}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=KP(r.document),s=Ig(o,r.inputReference);if(!JP(s,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let c=s,l=Ag(c,r);return lz(l,t,e,t.kind),u=>{let{builder:d}=u,g=[];d.Section(`${a}.schema.section`,{children:()=>{l.forEach(b=>{let h=oz(u,b,t,r,e,i,t.kind);h!=null&&(Array.isArray(h)?g.push(...h):g.push(h))})}});let p=g.map(b=>b()),y=b=>b.type==="object"?Object.entries(b.value).reduce((h,[M,k])=>(h[M]=y(k),h),{}):b.value,f=p.reduce((b,h)=>(b[h.id]=y(h),b),{});xg(u,t,n,()=>({input:f}),()=>r.getBlockInput(f),{...e,requiredInputs:c.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var uz=sz;async function cz(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return WP(e,t);case"schema":return uz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var dz=cz;function pz(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 hO(o,r)),o}return i}var gz=pz;function fz(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 yz=fz,Ka="@imgly/plugin-ai-generation",mz=`
353
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function BP(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),qP(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:zP(e)})}function qP(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Wp=BP,GP="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",El=GP;function YP(e,t,r){switch(t){case"image":return HP(e,r[t]);case"video":return ZP(e,r[t]);case"sticker":return QP(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function HP(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:El,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ZP(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:El,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function QP(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:El,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var WP=YP;async function KP(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 JP(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 XP(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 JP(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 XP(e,t,r){let i=t.width,n=t.height,a=await UP(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 Ng=KP;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(be(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(be(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Og(),c=await Ng(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function nz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(be(t,r))return{status:"aborted"};let s=Og(),c=WP(s,a,o);if(i=await PP(t,c),be(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;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 Ng(s,a,o,l.output);if(be(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),be(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(_l(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function be(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oz=rz;function Ll(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),()=>{}),m=c.global(Ll(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=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(y.status==="aborted")return;if(y.status==="error"){Wp(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;sz(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(_l(y))return;Wp(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function 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 Dg=lz;async function uz({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Ll(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Dg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var cz=uz;function Pg(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 Ei(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=Pg(e,t.$ref),n={...Ei(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Ei(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Ei(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Ei(e,t[n],r));return i}return t}function dz(e){return Ei(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 zg=gz;function Pe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function Ug(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 Rg(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?mz(e,c,r,i,n,a,o,s):Fg(e,c,r,i,n,a,o,s);case"boolean":return Vg(e,c,r,i,n,a,o,s);case"number":case"integer":return Bg(e,c,r,i,n,a,o,s);case"object":return xl(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 hz(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function xl(e,t,r,i,n,a,o,s){let c=zg(t.schema??{},i).reduce((l,u)=>{let d=Rg(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 Fg(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=Pe(t,r,o),m=Fi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=Vi(d,f,m,t.schema.default,""),b=l(p,h),w=bz(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.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=Pe(t,r,o),{labels:m,icons:f}=Ug(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Pe(t,r,o,x),icon:f[x]})),b=Fi(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=Vi(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Vg(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=Pe(t,r,o),m=Fi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Vi(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Bg(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=Pe(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Fi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=Vi(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function hz(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=Pe(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=Ug(t.schema),I=Fi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:Fg,boolean:Vg,integer:Bg,object:xl},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Pe(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>xl(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=Vi(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function bz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vz=Rg,wz={"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 Kp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function kz(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Kp(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Kp(g);n[a(l.id,g)]=m}})}});let c={...wz,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function xz({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=dz(r.document),c=Pg(s,r.inputReference);if(!pz(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=zg(l,r);return kz(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=vz(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});Dg(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var Iz=xz;async function Az(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return cz(e,t);case"schema":return Iz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Cz=Az;function Mz(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 LO(o,r)),o}return i}var jz=Mz;function Sz(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var $z=Sz,dl="@imgly/plugin-ai-generation",_z=`
354
354
  <svg>
355
355
  <symbol
356
356
  fill="none"
@@ -368,7 +368,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
368
368
  fill="none"
369
369
  xmlns="http://www.w3.org/2000/svg"
370
370
  viewBox="0 0 24 24"
371
- id="${Ka}/image"
371
+ id="${dl}/image"
372
372
  >
373
373
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
374
374
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -380,7 +380,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
380
380
  fill="none"
381
381
  xmlns="http://www.w3.org/2000/svg"
382
382
  viewBox="0 0 24 24"
383
- id="${Ka}/video"
383
+ id="${dl}/video"
384
384
  >
385
385
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
386
386
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -391,7 +391,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
391
391
  fill="none"
392
392
  xmlns="http://www.w3.org/2000/svg"
393
393
  viewBox="0 0 24 24"
394
- id="${Ka}/audio"
394
+ id="${dl}/audio"
395
395
  >
396
396
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
397
397
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -411,8 +411,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
411
411
 
412
412
  </symbol>
413
413
  </svg>
414
- `,bz=mz;function hz(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 Eg(2e3),await vz(t,e,r)):i(t,r)}async function vz(e,t,r){switch(t.kind){case"image":return wz(e,t,r);case"video":return kz(e,t,r);case"text":return xz(e,t,r);case"audio":return Az(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function wz(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await hP(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(`
415
- `,"+")}`}}async function kz(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function xz(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=bi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=bi(n,o)}else"customPrompt"in e?a=bi(n,"custom"):a=bi(n,"improved");else a=bi(n,"generated");return Iz(a,r.abortSignal)}async function*Iz(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 Eg(100)}return{kind:"text",text:e}}function bi(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 Az(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:Cz(220,i),duration:i,thumbnailUrl:void 0}}function Cz(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return Mz(i,44100)}function Mz(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,b)=>{for(let h=0;h<b.length;h++)u.setUint8(f+h,b.charCodeAt(h))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let b=Math.max(-1,Math.min(1,e[f])),h=Math.round(b*32767);u.setInt16(g,h,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Eg(e){return new Promise(t=>{setTimeout(t,e)})}var jz=hz,_g="USER_CANCEL";function Sz(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=wP([...e.provider.output.middleware??[],...r?.middlewares??[],xP({enable:r?.debug}),jz({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:MP(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return ml(n)?{status:"aborted",message:n.message}:n===_g?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var $z=Sz;async function Ez(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};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=yl.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=gz(a),s=yz(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=$z({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await dz(a,c);jP(r.cesdk,"@imgly/plugin-ai-generation",bz);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return hg.get().register(u),u}var Ja=Ez;function _z(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 vO(n,r,i);return r.engine.asset.addSource(a),a.id}var Lz=_z;function xi(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 Tz(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Ja(e,u,r,i)));o.push(...l),a=Nz({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=Oz({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=Lz({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Gn)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function Oz({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),b=[];f.value==="fromText"?b.push(...r):f.value==="fromImage"?b.push(...i):b.push(...r,...i);let h=r.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),M=i.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,h[0]),C=o.experimental.global(`${t}.selectedProvider.fromImage`,M[0]),v=f.value==="fromText"?k:f.value==="fromImage"?C:void 0,w=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,m=n.feature.isEnabled(w,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let x=d&&p&&r.length>0&&i.length>0,j=a&&x,I=b.length>1&&m;if((j||I)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(j&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:xi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:xi(e,"fromText.label"),icon:f.value!=="fromText"&&zp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:xi(e,"fromImage.label"),icon:f.value!=="fromImage"&&zp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),I){let A=f.value==="fromText"?h:f.value==="fromImage"?M:[...h,...M];v!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:xi(e,"providerSelect.label"),values:A,...v})}}}),b.length>1)v?.value.builderRenderFunction?.(o);else{let A=b[0];A&&A.panel?.builderRenderFunction?.(o)}}}function Nz({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:d,panel:g})=>({id:d.id,label:d.name??d.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:xi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function zp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(hl(r.id),!1).value)}var Dz=Tz,Yn="ly.img.ai.editMode",Lg="ly.img.ai.metadata";async function Pz(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new sg(n,Lg),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let b=s.applyCallbacks?.onApply;b!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let h=e.cesdk.engine.editor;typeof h._update=="function"&&h._update(),b()}});break}default:}};return Promise.resolve(r)}var zz=Pz;function Uz(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 Rz=Uz;function Fz(e){return`ly.img.ai.${e}.canvasMenu`}var Vz=Fz;function Bz(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Vz(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var qz=Bz;function Gz(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 Yz(e,t);case"image":return Hz(e,t);case"video":return Zz(e,t);case"audio":return Qz(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Yz(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 Hz(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ll(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),b=r.engine.block.getCropTranslationY(a),h=r.engine.block.getCropRotation(a),M=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,b),r.engine.block.setCropRotation(a,h)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,C=await r.engine.editor.getMimeType(k),v=await Wz(r,k,C),w=await ll(v,t.cesdk.engine),m=w.width/w.height,x=Math.abs(g-m)>.001,j=c?[{uri:v,width:w.width,height:w.height}]:void 0,I=v;j==null?r.engine.block.setString(o,"fill/image/imageFileURI",I):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",j)),await r.engine.block.forceLoadResources([o]),x?r.engine.block.setContentFillMode(a,"Cover"):M();let A=()=>{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);M()},S=()=>{if(j==null){if(I==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",I)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",j);x?r.engine.block.setContentFillMode(a,"Cover"):M()};return{applyCallbacks:{onBefore:A,onAfter:S,onCancel:()=>{A()},onApply:()=>{S(),t.cesdk.engine.editor.addUndoStep()}}}}async function Zz(e,t){throw new Error("Function not implemented.")}async function Qz(e,t){throw new Error("Function not implemented.")}async function Wz(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${bP(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Kz=Gz;function Jz(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 Xz=Jz,eU=class Tg{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tg),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Le=eU;function tU(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(Gn)),c=new sg(e.cesdk.engine,Lg),l=e.lock??!0?Xz({engine:e.cesdk.engine,editModeToLockTo:Yn,blockIdsToLock:i}):()=>{};i.forEach(u=>{Le.get().register(u,{onCancelGeneration:()=>{o.abort(_g),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),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await Kz(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{Le.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Up=tU;function rU(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Yn)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=qz({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=iU(s).filter(v=>{if(v==="ly.img.separator")return!0;let w=v.id.replace("ly.img.",""),m=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${w}`;if(!e.cesdk.feature.isEnabled(m,{engine:e.engine}))return!1;let x=v.scopes;if(x!=null&&x.length>0&&!n.every(j=>x.every(I=>e.engine.block.isAllowedByScope(j,I))))return!1;if(v.enable!=null){if(typeof v.enable=="function")return v.enable({engine:e.engine});if(typeof v.enable=="boolean")return v.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((v,w)=>{if(w.provider.kind!==e.kind)return v;let m=c.map(x=>{if(x==="ly.img.separator")return x;if(w.provider.input?.quickActions?.supported?.[x.id]!=null)return{definition:x};{let j=hg.get().getAll().filter(I=>I.provider.kind!==e.kind&&I.provider.id!==w.provider.id).find(I=>I.provider.input?.quickActions?.supported?.[x.id]!=null);if(j!=null){let I={definition:x,providerInitializationResult:j};return l.push(I),I}else return}}).filter(Gn);return m=Rz(m),m.length===0||m.every(x=>x==="ly.img.separator")||m.every(x=>x==="ly.img.separator"||x.providerInitializationResult!=null)||v.push({providerInitializationResult:w,quickActions:m}),v},[]);if(u.length===0)if(l.length>0){let v=new Map;l.forEach(m=>{let x=m.definition.id;v.has(x)||v.set(x,m)});let w=Array.from(v.values());u.push({providerInitializationResult:w[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:w})}else return;let d=u.map(({providerInitializationResult:v})=>({id:v.provider.id,label:v.provider.name??v.provider.id})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:v}}})=>v===g.value?.id),y=n.every(v=>i.engine.block.getState(v).type==="Ready"),{builder:f,experimental:b,state:h}=i,M=h(`${t}.isGenerating`,!1),k=h(`${t}.toggleExpandedState`,void 0),C=async(v,w,m)=>{M.setValue(!0);try{return await m(v,w)}finally{M.setValue(!1)}};b.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:M.value,trailingIcon:null,children:({close:v})=>{if(k.value!==void 0){let w=p?.quickActions.find(I=>I!=="ly.img.separator"&&I.definition.id===k.value);if(w==null||w.definition.render==null)return;let m=u.filter(({quickActions:I})=>I.some(A=>A!=="ly.img.separator"&&A.definition.id===w.definition.id)).map(({providerInitializationResult:I})=>({id:I.provider.id,label:I.provider.name??I.provider.id})),x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(x,{engine:e.engine});m.length>1&&j&&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,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>w.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Up({blockIds:n,providerInitializationResult:w.providerInitializationResult??p?.providerInitializationResult,quickAction:w.definition,middlewares:[C],confirmation:w.definition.defaults?.confirmation??!0,lock:w.definition.defaults?.lock??!0,close:v,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:v,providerId:g.value.id})})}else{let w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,m=e.cesdk.feature.isEnabled(w,{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,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{b.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(x=>{if(x==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}x.definition.render!=null&&x.definition.render({...i,toggleExpand:()=>{k.setValue(x.definition.id)},isExpanded:!1,generate:Up({blockIds:n,providerInitializationResult:x.providerInitializationResult??p?.providerInitializationResult,quickAction:x.definition,middlewares:[C],confirmation:x.definition.defaults?.confirmation??!0,close:v,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:v,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function iU(e){return e.map(t=>t==="ly.img.separator"?t:yl.get().getBy({id:t,type:"quick"})[0]).filter(Gn)}var nU=rU;async function oU(e){let t=await nU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await zz({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Yn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Le.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Le.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Le.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Le.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Le.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var aU=oU,lU=typeof global=="object"&&global&&global.Object===Object&&global,Og=lU,sU=typeof self=="object"&&self&&self.Object===Object&&self,uU=Og||sU||Function("return this")(),ee=uU,cU=ee.Symbol,Vt=cU,Ng=Object.prototype,dU=Ng.hasOwnProperty,pU=Ng.toString,hi=Vt?Vt.toStringTag:void 0;function gU(e){var t=dU.call(e,hi),r=e[hi];try{e[hi]=void 0;var i=!0}catch{}var n=pU.call(e);return i&&(t?e[hi]=r:delete e[hi]),n}var fU=gU,yU=Object.prototype,mU=yU.toString;function bU(e){return mU.call(e)}var hU=bU,vU="[object Null]",wU="[object Undefined]",Rp=Vt?Vt.toStringTag:void 0;function kU(e){return e==null?e===void 0?wU:vU:Rp&&Rp in Object(e)?fU(e):hU(e)}var _i=kU;function xU(e){return e!=null&&typeof e=="object"}var vl=xU,LX=Array.isArray;function IU(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Dg=IU,AU="[object AsyncFunction]",CU="[object Function]",MU="[object GeneratorFunction]",jU="[object Proxy]";function SU(e){if(!Dg(e))return!1;var t=_i(e);return t==CU||t==MU||t==AU||t==jU}var $U=SU,EU=ee["__core-js_shared__"],Xa=EU,Fp=function(){var e=/[^.]+$/.exec(Xa&&Xa.keys&&Xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function _U(e){return!!Fp&&Fp in e}var LU=_U,TU=Function.prototype,OU=TU.toString;function NU(e){if(e!=null){try{return OU.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=NU,DU=/[\\^$.*+?()[\]{}|]/g,PU=/^\[object .+?Constructor\]$/,zU=Function.prototype,UU=Object.prototype,RU=zU.toString,FU=UU.hasOwnProperty,VU=RegExp("^"+RU.call(FU).replace(DU,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function BU(e){if(!Dg(e)||LU(e))return!1;var t=$U(e)?VU:PU;return t.test(Ne(e))}var qU=BU;function GU(e,t){return e?.[t]}var YU=GU;function HU(e,t){var r=YU(e,t);return qU(r)?r:void 0}var Ht=HU,ZU=Ht(ee,"WeakMap"),ul=ZU;function QU(e,t){return e===t||e!==e&&t!==t}var WU=QU,KU=9007199254740991;function JU(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=KU}var XU=JU,TX=Object.prototype,eR="[object Arguments]";function tR(e){return vl(e)&&_i(e)==eR}var Vp=tR,Pg=Object.prototype,rR=Pg.hasOwnProperty,iR=Pg.propertyIsEnumerable,OX=Vp(function(){return arguments}())?Vp:function(e){return vl(e)&&rR.call(e,"callee")&&!iR.call(e,"callee")},zg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bp=zg&&typeof module=="object"&&module&&!module.nodeType&&module,nR=Bp&&Bp.exports===zg,qp=nR?ee.Buffer:void 0,NX=qp?qp.isBuffer:void 0,oR="[object Arguments]",aR="[object Array]",lR="[object Boolean]",sR="[object Date]",uR="[object Error]",cR="[object Function]",dR="[object Map]",pR="[object Number]",gR="[object Object]",fR="[object RegExp]",yR="[object Set]",mR="[object String]",bR="[object WeakMap]",hR="[object ArrayBuffer]",vR="[object DataView]",wR="[object Float32Array]",kR="[object Float64Array]",xR="[object Int8Array]",IR="[object Int16Array]",AR="[object Int32Array]",CR="[object Uint8Array]",MR="[object Uint8ClampedArray]",jR="[object Uint16Array]",SR="[object Uint32Array]",z={};z[wR]=z[kR]=z[xR]=z[IR]=z[AR]=z[CR]=z[MR]=z[jR]=z[SR]=!0;z[oR]=z[aR]=z[hR]=z[lR]=z[vR]=z[sR]=z[uR]=z[cR]=z[dR]=z[pR]=z[gR]=z[fR]=z[yR]=z[mR]=z[bR]=!1;function $R(e){return vl(e)&&XU(e.length)&&!!z[_i(e)]}var ER=$R;function _R(e){return function(t){return e(t)}}var LR=_R,Ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ai=Ug&&typeof module=="object"&&module&&!module.nodeType&&module,TR=Ai&&Ai.exports===Ug,el=TR&&Og.process,OR=function(){try{var e=Ai&&Ai.require&&Ai.require("util").types;return e||el&&el.binding&&el.binding("util")}catch{}}(),Gp=OR,Yp=Gp&&Gp.isTypedArray,DX=Yp?LR(Yp):ER,NR=Object.prototype,PX=NR.hasOwnProperty;function DR(e,t){return function(r){return e(t(r))}}var PR=DR,zX=PR(Object.keys,Object),zR=Object.prototype,UX=zR.hasOwnProperty,UR=Ht(Object,"create"),ji=UR;function RR(){this.__data__=ji?ji(null):{},this.size=0}var FR=RR;function VR(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var BR=VR,qR="__lodash_hash_undefined__",GR=Object.prototype,YR=GR.hasOwnProperty;function HR(e){var t=this.__data__;if(ji){var r=t[e];return r===qR?void 0:r}return YR.call(t,e)?t[e]:void 0}var ZR=HR,QR=Object.prototype,WR=QR.hasOwnProperty;function KR(e){var t=this.__data__;return ji?t[e]!==void 0:WR.call(t,e)}var JR=KR,XR="__lodash_hash_undefined__";function eF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ji&&t===void 0?XR:t,this}var tF=eF;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=FR;Zt.prototype.delete=BR;Zt.prototype.get=ZR;Zt.prototype.has=JR;Zt.prototype.set=tF;var Hp=Zt;function rF(){this.__data__=[],this.size=0}var iF=rF;function nF(e,t){for(var r=e.length;r--;)if(WU(e[r][0],t))return r;return-1}var Hn=nF,oF=Array.prototype,aF=oF.splice;function lF(e){var t=this.__data__,r=Hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():aF.call(t,r,1),--this.size,!0}var sF=lF;function uF(e){var t=this.__data__,r=Hn(t,e);return r<0?void 0:t[r][1]}var cF=uF;function dF(e){return Hn(this.__data__,e)>-1}var pF=dF;function gF(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 fF=gF;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=iF;Qt.prototype.delete=sF;Qt.prototype.get=cF;Qt.prototype.has=pF;Qt.prototype.set=fF;var Zn=Qt,yF=Ht(ee,"Map"),Si=yF;function mF(){this.size=0,this.__data__={hash:new Hp,map:new(Si||Zn),string:new Hp}}var bF=mF;function hF(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var vF=hF;function wF(e,t){var r=e.__data__;return vF(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Qn=wF;function kF(e){var t=Qn(this,e).delete(e);return this.size-=t?1:0,t}var xF=kF;function IF(e){return Qn(this,e).get(e)}var AF=IF;function CF(e){return Qn(this,e).has(e)}var MF=CF;function jF(e,t){var r=Qn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var SF=jF;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=bF;Wt.prototype.delete=xF;Wt.prototype.get=AF;Wt.prototype.has=MF;Wt.prototype.set=SF;var Rg=Wt;function $F(){this.__data__=new Zn,this.size=0}var EF=$F;function _F(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LF=_F;function TF(e){return this.__data__.get(e)}var OF=TF;function NF(e){return this.__data__.has(e)}var DF=NF,PF=200;function zF(e,t){var r=this.__data__;if(r instanceof Zn){var i=r.__data__;if(!Si||i.length<PF-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Rg(i)}return r.set(e,t),this.size=r.size,this}var UF=zF;function Li(e){var t=this.__data__=new Zn(e);this.size=t.size}Li.prototype.clear=EF;Li.prototype.delete=LF;Li.prototype.get=OF;Li.prototype.has=DF;Li.prototype.set=UF;var RF=Object.prototype,RX=RF.propertyIsEnumerable,FF=Ht(ee,"DataView"),cl=FF,VF=Ht(ee,"Promise"),dl=VF,BF=Ht(ee,"Set"),pl=BF,Zp="[object Map]",qF="[object Object]",Qp="[object Promise]",Wp="[object Set]",Kp="[object WeakMap]",Jp="[object DataView]",GF=Ne(cl),YF=Ne(Si),HF=Ne(dl),ZF=Ne(pl),QF=Ne(ul),Ut=_i;(cl&&Ut(new cl(new ArrayBuffer(1)))!=Jp||Si&&Ut(new Si)!=Zp||dl&&Ut(dl.resolve())!=Qp||pl&&Ut(new pl)!=Wp||ul&&Ut(new ul)!=Kp)&&(Ut=function(e){var t=_i(e),r=t==qF?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case GF:return Jp;case YF:return Zp;case HF:return Qp;case ZF:return Wp;case QF:return Kp}return t});var FX=ee.Uint8Array,WF="__lodash_hash_undefined__";function KF(e){return this.__data__.set(e,WF),this}var JF=KF;function XF(e){return this.__data__.has(e)}var eV=XF;function gl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Rg;++t<r;)this.add(e[t])}gl.prototype.add=gl.prototype.push=JF;gl.prototype.has=eV;var Xp=Vt?Vt.prototype:void 0,VX=Xp?Xp.valueOf:void 0,tV=Object.prototype,BX=tV.hasOwnProperty,rV=Object.prototype,qX=rV.hasOwnProperty,GX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),YX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),HX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function iV(e){return e==null?[]:Array.isArray(e)?e:[e]}var nV=iV;function oV(e){return`
414
+ `,Ez=_z;function Lz(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await qg(2e3),await Tz(t,e,r)):i(t,r)}async function Tz(e,t,r){switch(t.kind){case"image":return Oz(e,t,r);case"video":return Nz(e,t,r);case"text":return Dz(e,t,r);case"audio":return zz(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Oz(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 LP(s,r),l=await kl(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
+ `,"+")}`}}async function Nz(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Dz(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=ji(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ji(n,o)}else"customPrompt"in e?a=ji(n,"custom"):a=ji(n,"improved");else a=ji(n,"generated");return Pz(a,r.abortSignal)}async function*Pz(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await qg(100)}return{kind:"text",text:e}}function ji(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 zz(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:Uz(220,i),duration:i,thumbnailUrl:void 0}}function Uz(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 Rz(i,44100)}function Rz(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function qg(e){return new Promise(t=>{setTimeout(t,e)})}var Fz=Lz,Gg="USER_CANCEL";function Vz(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=OP([...e.provider.output.middleware??[],...r?.middlewares??[],DP({enable:r?.debug}),Fz({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:RP(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return _l(n)?{status:"aborted",message:n.message}:n===Gg?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}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=$l.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=jz(a),s=$z(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);FP(r.cesdk,"@imgly/plugin-ai-generation",Ez);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Lg.get().register(u),u}var pl=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 TO(n,r,i);return r.engine.asset.addSource(a),a.id}var Yz=Gz;function Li(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 Hz(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>pl(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=>pl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>pl(e,d,r,i)));o.push(...u),a=Zz({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=Yz({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(oo)}),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}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{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 C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Li(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Li(e,"fromText.label"),icon:f.value!=="fromText"&&Jp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Li(e,"fromImage.label"),icon:f.value!=="fromImage"&&Jp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Li(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Li(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Jp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ll(r.id),!1).value)}var Wz=Hz,ao="ly.img.ai.editMode",Yg="ly.img.ai.metadata";async function Kz(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new xg(n,Yg),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var Jz=Kz;function Xz(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 eU=Xz;function tU(e){return`ly.img.ai.${e}.canvasMenu`}var rU=tU;function iU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=rU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var nU=iU;function oU(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 aU(e,t);case"image":return lU(e,t);case"video":return sU(e,t);case"audio":return uU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function aU(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 lU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await kl(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),w=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,I=await r.engine.editor.getMimeType(k),y=await cU(r,k,I),x=await kl(y,t.cesdk.engine),j=x.width/x.height,C=Math.abs(p-j)>.001,S=c?[{uri:y,width:x.width,height:x.height}]:void 0,M=y;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",M):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):w();let A=()=>{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);w()},v=()=>{if(S==null){if(M==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",M)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);C?r.engine.block.setContentFillMode(a,"Cover"):w()};return{applyCallbacks:{onBefore:A,onAfter:v,onCancel:()=>{A()},onApply:()=>{v(),t.cesdk.engine.editor.addUndoStep()}}}}async function sU(e,t){throw new Error("Function not implemented.")}async function uU(e,t){throw new Error("Function not implemented.")}async function cU(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${EP(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var dU=oU;function pU(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 gU=pU,fU=class Hg{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Hg),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},De=fU;function yU(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(oo)),c=new xg(e.cesdk.engine,Yg),l=e.lock??!0?gU({engine:e.cesdk.engine,editModeToLockTo:ao,blockIdsToLock:i}):()=>{};i.forEach(u=>{De.get().register(u,{onCancelGeneration:()=>{o.abort(Gg),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),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await dU(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{De.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Xp=yU;function mU(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===ao)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=nU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=hU(s).filter(y=>{if(y==="ly.img.separator")return!0;let x=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let C=y.scopes;if(C!=null&&C.length>0&&!n.every(S=>C.every(M=>e.engine.block.isAllowedByScope(S,M))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,x)=>{if(x.provider.kind!==e.kind)return y;let j=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let S=Lg.get().getAll().filter(M=>M.provider.kind!==e.kind&&M.provider.id!==x.provider.id).find(M=>M.provider.input?.quickActions?.supported?.[C.id]!=null);if(S!=null){let M={definition:C,providerInitializationResult:S};return l.push(M),M}else return}}).filter(oo);return j=eU(j),j.length===0||j.every(C=>C==="ly.img.separator")||j.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||y.push({providerInitializationResult:x,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let C=j.definition.id;y.has(C)||y.set(C,j)});let x=Array.from(y.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,w=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),I=async(y,x,j)=>{w.setValue(!0);try{return await j(y,x)}finally{w.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:w.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let x=g?.quickActions.find(M=>M!=="ly.img.separator"&&M.definition.id===k.value);if(x==null||x.definition.render==null)return;let j=u.filter(({quickActions:M})=>M.some(A=>A!=="ly.img.separator"&&A.definition.id===x.definition.id)).map(({providerInitializationResult:M})=>({id:M.provider.id,label:M.provider.name??M.provider.id})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(C,{engine:e.engine});j.length>1&&S&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Xp({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:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&j&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{k.setValue(C.definition.id)},isExpanded:!1,generate:Xp({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function hU(e){return e.map(t=>t==="ly.img.separator"?t:$l.get().getBy({id:t,type:"quick"})[0]).filter(oo)}var bU=mU;async function vU(e){let t=await bU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await Jz({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===ao){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{De.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{De.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{De.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{De.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{De.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var wU=vU,kU=typeof global=="object"&&global&&global.Object===Object&&global,Zg=kU,xU=typeof self=="object"&&self&&self.Object===Object&&self,IU=Zg||xU||Function("return this")(),ne=IU,AU=ne.Symbol,Yt=AU,Qg=Object.prototype,CU=Qg.hasOwnProperty,MU=Qg.toString,Si=Yt?Yt.toStringTag:void 0;function jU(e){var t=CU.call(e,Si),r=e[Si];try{e[Si]=void 0;var i=!0}catch{}var n=MU.call(e);return i&&(t?e[Si]=r:delete e[Si]),n}var SU=jU,$U=Object.prototype,_U=$U.toString;function EU(e){return _U.call(e)}var LU=EU,TU="[object Null]",OU="[object Undefined]",eg=Yt?Yt.toStringTag:void 0;function NU(e){return e==null?e===void 0?OU:TU:eg&&eg in Object(e)?SU(e):LU(e)}var Bi=NU;function DU(e){return e!=null&&typeof e=="object"}var Tl=DU,YX=Array.isArray;function PU(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wg=PU,zU="[object AsyncFunction]",UU="[object Function]",RU="[object GeneratorFunction]",FU="[object Proxy]";function VU(e){if(!Wg(e))return!1;var t=Bi(e);return t==UU||t==RU||t==zU||t==FU}var BU=VU,qU=ne["__core-js_shared__"],gl=qU,tg=function(){var e=/[^.]+$/.exec(gl&&gl.keys&&gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function GU(e){return!!tg&&tg in e}var YU=GU,HU=Function.prototype,ZU=HU.toString;function QU(e){if(e!=null){try{return ZU.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=QU,WU=/[\\^$.*+?()[\]{}|]/g,KU=/^\[object .+?Constructor\]$/,JU=Function.prototype,XU=Object.prototype,eR=JU.toString,tR=XU.hasOwnProperty,rR=RegExp("^"+eR.call(tR).replace(WU,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function iR(e){if(!Wg(e)||YU(e))return!1;var t=BU(e)?rR:KU;return t.test(Ue(e))}var nR=iR;function oR(e,t){return e?.[t]}var aR=oR;function lR(e,t){var r=aR(e,t);return nR(r)?r:void 0}var Kt=lR,sR=Kt(ne,"WeakMap"),Il=sR;function uR(e,t){return e===t||e!==e&&t!==t}var cR=uR,dR=9007199254740991;function pR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=dR}var gR=pR,HX=Object.prototype,fR="[object Arguments]";function yR(e){return Tl(e)&&Bi(e)==fR}var rg=yR,Kg=Object.prototype,mR=Kg.hasOwnProperty,hR=Kg.propertyIsEnumerable,ZX=rg(function(){return arguments}())?rg:function(e){return Tl(e)&&mR.call(e,"callee")&&!hR.call(e,"callee")},Jg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ig=Jg&&typeof module=="object"&&module&&!module.nodeType&&module,bR=ig&&ig.exports===Jg,ng=bR?ne.Buffer:void 0,QX=ng?ng.isBuffer:void 0,vR="[object Arguments]",wR="[object Array]",kR="[object Boolean]",xR="[object Date]",IR="[object Error]",AR="[object Function]",CR="[object Map]",MR="[object Number]",jR="[object Object]",SR="[object RegExp]",$R="[object Set]",_R="[object String]",ER="[object WeakMap]",LR="[object ArrayBuffer]",TR="[object DataView]",OR="[object Float32Array]",NR="[object Float64Array]",DR="[object Int8Array]",PR="[object Int16Array]",zR="[object Int32Array]",UR="[object Uint8Array]",RR="[object Uint8ClampedArray]",FR="[object Uint16Array]",VR="[object Uint32Array]",F={};F[OR]=F[NR]=F[DR]=F[PR]=F[zR]=F[UR]=F[RR]=F[FR]=F[VR]=!0;F[vR]=F[wR]=F[LR]=F[kR]=F[TR]=F[xR]=F[IR]=F[AR]=F[CR]=F[MR]=F[jR]=F[SR]=F[$R]=F[_R]=F[ER]=!1;function BR(e){return Tl(e)&&gR(e.length)&&!!F[Bi(e)]}var qR=BR;function GR(e){return function(t){return e(t)}}var YR=GR,Xg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Oi=Xg&&typeof module=="object"&&module&&!module.nodeType&&module,HR=Oi&&Oi.exports===Xg,fl=HR&&Zg.process,ZR=function(){try{var e=Oi&&Oi.require&&Oi.require("util").types;return e||fl&&fl.binding&&fl.binding("util")}catch{}}(),og=ZR,ag=og&&og.isTypedArray,WX=ag?YR(ag):qR,QR=Object.prototype,KX=QR.hasOwnProperty;function WR(e,t){return function(r){return e(t(r))}}var KR=WR,JX=KR(Object.keys,Object),JR=Object.prototype,XX=JR.hasOwnProperty,XR=Kt(Object,"create"),Pi=XR;function eF(){this.__data__=Pi?Pi(null):{},this.size=0}var tF=eF;function rF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var iF=rF,nF="__lodash_hash_undefined__",oF=Object.prototype,aF=oF.hasOwnProperty;function lF(e){var t=this.__data__;if(Pi){var r=t[e];return r===nF?void 0:r}return aF.call(t,e)?t[e]:void 0}var sF=lF,uF=Object.prototype,cF=uF.hasOwnProperty;function dF(e){var t=this.__data__;return Pi?t[e]!==void 0:cF.call(t,e)}var pF=dF,gF="__lodash_hash_undefined__";function fF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pi&&t===void 0?gF:t,this}var yF=fF;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=tF;Jt.prototype.delete=iF;Jt.prototype.get=sF;Jt.prototype.has=pF;Jt.prototype.set=yF;var lg=Jt;function mF(){this.__data__=[],this.size=0}var hF=mF;function bF(e,t){for(var r=e.length;r--;)if(cR(e[r][0],t))return r;return-1}var lo=bF,vF=Array.prototype,wF=vF.splice;function kF(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():wF.call(t,r,1),--this.size,!0}var xF=kF;function IF(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var AF=IF;function CF(e){return lo(this.__data__,e)>-1}var MF=CF;function jF(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var SF=jF;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=hF;Xt.prototype.delete=xF;Xt.prototype.get=AF;Xt.prototype.has=MF;Xt.prototype.set=SF;var so=Xt,$F=Kt(ne,"Map"),zi=$F;function _F(){this.size=0,this.__data__={hash:new lg,map:new(zi||so),string:new lg}}var EF=_F;function LF(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var TF=LF;function OF(e,t){var r=e.__data__;return TF(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=OF;function NF(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var DF=NF;function PF(e){return uo(this,e).get(e)}var zF=PF;function UF(e){return uo(this,e).has(e)}var RF=UF;function FF(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var VF=FF;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=EF;er.prototype.delete=DF;er.prototype.get=zF;er.prototype.has=RF;er.prototype.set=VF;var e1=er;function BF(){this.__data__=new so,this.size=0}var qF=BF;function GF(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var YF=GF;function HF(e){return this.__data__.get(e)}var ZF=HF;function QF(e){return this.__data__.has(e)}var WF=QF,KF=200;function JF(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!zi||i.length<KF-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new e1(i)}return r.set(e,t),this.size=r.size,this}var XF=JF;function qi(e){var t=this.__data__=new so(e);this.size=t.size}qi.prototype.clear=qF;qi.prototype.delete=YF;qi.prototype.get=ZF;qi.prototype.has=WF;qi.prototype.set=XF;var eV=Object.prototype,eee=eV.propertyIsEnumerable,tV=Kt(ne,"DataView"),Al=tV,rV=Kt(ne,"Promise"),Cl=rV,iV=Kt(ne,"Set"),Ml=iV,sg="[object Map]",nV="[object Object]",ug="[object Promise]",cg="[object Set]",dg="[object WeakMap]",pg="[object DataView]",oV=Ue(Al),aV=Ue(zi),lV=Ue(Cl),sV=Ue(Ml),uV=Ue(Il),Bt=Bi;(Al&&Bt(new Al(new ArrayBuffer(1)))!=pg||zi&&Bt(new zi)!=sg||Cl&&Bt(Cl.resolve())!=ug||Ml&&Bt(new Ml)!=cg||Il&&Bt(new Il)!=dg)&&(Bt=function(e){var t=Bi(e),r=t==nV?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case oV:return pg;case aV:return sg;case lV:return ug;case sV:return cg;case uV:return dg}return t});var tee=ne.Uint8Array,cV="__lodash_hash_undefined__";function dV(e){return this.__data__.set(e,cV),this}var pV=dV;function gV(e){return this.__data__.has(e)}var fV=gV;function jl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new e1;++t<r;)this.add(e[t])}jl.prototype.add=jl.prototype.push=pV;jl.prototype.has=fV;var gg=Yt?Yt.prototype:void 0,ree=gg?gg.valueOf:void 0,yV=Object.prototype,iee=yV.hasOwnProperty,mV=Object.prototype,nee=mV.hasOwnProperty,oee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),aee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),lee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function hV(e){return e==null?[]:Array.isArray(e)?e:[e]}var bV=hV;function vV(e){return`
416
416
  You are an AI writing assistant tasked with improving a given text based on a specific type of improvement requested. Your goal is to enhance the text while maintaining its original meaning and intent.
417
417
 
418
418
  Here is the original text you will be working with:
@@ -436,7 +436,7 @@ Please follow these steps to improve the text:
436
436
  7. If you cannot make any meaningful improvements, return the original text as is.
437
437
 
438
438
  Once you have made the improvements, only return the improved text and nothing else.
439
- `}var aV=oV,Wn="improve",eg=`ly.img.${Wn}`,lV=`ly.img.plugin-ai-text-generation-web.quickAction.${Wn}`,sV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Wn}`;function uV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Wn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var cV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),e.i18n.setTranslations({en:{[`${sV}`]:"Improve Writing"}}),{id:eg,type:"quick",kind:"text",scopes:["text/edit"],label:`${lV}`,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(`${eg}.button`,{label:uV(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:aV(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"})}}})}}),dV=cV;function pV(e){return`
439
+ `}var wV=vV,co="improve",fg=`ly.img.${co}`,kV=`ly.img.plugin-ai-text-generation-web.quickAction.${co}`,xV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${co}`;function IV(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 AV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),e.i18n.setTranslations({en:{[`${xV}`]:"Improve Writing"}}),{id:fg,type:"quick",kind:"text",scopes:["text/edit"],label:`${kV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${fg}.button`,{label:IV(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:wV(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"})}}})}}),CV=AV;function MV(e){return`
440
440
  You are tasked with fixing spelling and grammar errors in a given text. Your goal is to improve the text while maintaining its original meaning and style. Here is the text you need to correct:
441
441
 
442
442
  <original_text>
@@ -466,7 +466,7 @@ Please follow these steps to complete the task:
466
466
  After making the necessary corrections, please provide only the improved output and nothing else.
467
467
 
468
468
  Remember to preserve the original structure and formatting of the text as much as possible while making your corrections.
469
- `}var gV=pV,Kn="fix",tg=`ly.img.${Kn}`,fV=`ly.img.plugin-ai-text-generation-web.quickAction.${Kn}`,yV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Kn}`;function mV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Kn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var bV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),e.i18n.setTranslations({en:{[`${yV}`]:"Fix Spelling & Grammar"}}),{id:tg,type:"quick",kind:"text",scopes:["text/edit"],label:`${fV}`,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(`${tg}.button`,{label:mV(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:gV(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"})}}})}}),hV=bV;function vV(e){return`
469
+ `}var jV=MV,po="fix",yg=`ly.img.${po}`,SV=`ly.img.plugin-ai-text-generation-web.quickAction.${po}`,$V=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${po}`;function _V(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${po}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var EV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),e.i18n.setTranslations({en:{[`${$V}`]:"Fix Spelling & Grammar"}}),{id:yg,type:"quick",kind:"text",scopes:["text/edit"],label:`${SV}`,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(`${yg}.button`,{label:_V(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:jV(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"})}}})}}),LV=EV;function TV(e){return`
470
470
  You will be given a text to shorten. Your task is to reduce the length of the text by 30% to 50% while maintaining its original voice, perspective, and key information. This is not a summary - you should preserve the style and tone of the original text.
471
471
 
472
472
  Here is the original text:
@@ -497,7 +497,7 @@ To complete this task, follow these steps:
497
497
  6. Once you've finished shortening, review the text to ensure it still reads smoothly and retains the essence of the original.
498
498
 
499
499
  Provide only the shortened version of the text in your response, without any additional comments, tags or explanations.
500
- `}var wV=vV,Jn="shorter",rg=`ly.img.${Jn}`,kV=`ly.img.plugin-ai-text-generation-web.quickAction.${Jn}`,xV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Jn}`;function IV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var AV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),e.i18n.setTranslations({en:{[`${xV}`]:"Make Shorter"}}),{id:rg,type:"quick",kind:"text",scopes:["text/edit"],label:`${kV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${rg}.button`,{label:IV(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:wV(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),CV=AV;function MV(e){return`
500
+ `}var OV=TV,go="shorter",mg=`ly.img.${go}`,NV=`ly.img.plugin-ai-text-generation-web.quickAction.${go}`,DV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${go}`;function PV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${go}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var zV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),e.i18n.setTranslations({en:{[`${DV}`]:"Make Shorter"}}),{id:mg,type:"quick",kind:"text",scopes:["text/edit"],label:`${NV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${mg}.button`,{label:PV(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:OV(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"})}}})}}),UV=zV;function RV(e){return`
501
501
  You are tasked with expanding a given text to make it longer. Here's how to proceed:
502
502
 
503
503
  First, you will be provided with the original text:
@@ -531,7 +531,7 @@ Only return the longer text and nothing else.
531
531
  Make sure to only return the expanded text and nothing else. Do not include any additional information or comments in your response about what you have done.
532
532
 
533
533
  Do not add the original text or the original_text tags to the response.
534
- `}var jV=MV,Xn="longer",ig=`ly.img.${Xn}`,SV=`ly.img.plugin-ai-text-generation-web.quickAction.${Xn}`,$V=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Xn}`;function EV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Xn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var _V=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),e.i18n.setTranslations({en:{[`${$V}`]:"Make Longer"}}),{id:ig,type:"quick",kind:"text",scopes:["text/edit"],label:`${SV}`,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(`${ig}.button`,{label:EV(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:jV(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"})}}})}}),LV=_V;function TV(e,t){return`
534
+ `}var FV=RV,fo="longer",hg=`ly.img.${fo}`,VV=`ly.img.plugin-ai-text-generation-web.quickAction.${fo}`,BV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${fo}`;function qV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${fo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var GV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),e.i18n.setTranslations({en:{[`${BV}`]:"Make Longer"}}),{id:hg,type:"quick",kind:"text",scopes:["text/edit"],label:`${VV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${hg}.button`,{label:qV(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:FV(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"})}}})}}),YV=GV;function HV(e,t){return`
535
535
  You will be given a piece of text and a desired tone. Your task is to rewrite the text to match the desired tone while preserving the original meaning and key information. Here's how to proceed:
536
536
 
537
537
  First, you will be provided with the original text:
@@ -553,7 +553,7 @@ To change the tone of the text:
553
553
  6. Only return the rewritten text without any additional commentary, tags or explanation.
554
554
 
555
555
  Now, rewrite the text to match the desired tone. Your response should contain only the rewritten text, without any additional explanations or comments. Do not use any tags in your response.
556
- `}var OV=TV,eo="changeTone",vi=`ly.img.${eo}`,NV=`ly.img.plugin-ai-text-generation-web.quickAction.${eo}`,_e=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${eo}`;function ng(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var DV=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],PV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),e.i18n.setTranslations({en:{[`${_e}`]:"Change Tone",[`${_e}.professional`]:"Professional",[`${_e}.casual`]:"Casual",[`${_e}.friendly`]:"Friendly",[`${_e}.serious`]:"Serious",[`${_e}.humorous`]:"Humorous",[`${_e}.optimistic`]:"Optimistic"}}),{id:vi,type:"quick",kind:"text",scopes:["text/edit"],label:`${NV}`,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(`${vi}.popover`,{label:ng(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${vi}.popover.section`,{children:()=>{a.builder.Menu(`${vi}.popover.menu`,{children:()=>{DV.forEach(s=>{t.Button(`${vi}.popover.menu.${s.id}`,{label:ng(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:OV(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"})}}})})}})}})}})}}),zV=PV,Fg={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"},UV=Object.keys(Fg);function RV(e,t){let r=Fg[t]||t;return`
556
+ `}var ZV=HV,yo="changeTone",$i=`ly.img.${yo}`,QV=`ly.img.plugin-ai-text-generation-web.quickAction.${yo}`,Ne=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${yo}`;function bg(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 WV=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],KV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),e.i18n.setTranslations({en:{[`${Ne}`]:"Change Tone",[`${Ne}.professional`]:"Professional",[`${Ne}.casual`]:"Casual",[`${Ne}.friendly`]:"Friendly",[`${Ne}.serious`]:"Serious",[`${Ne}.humorous`]:"Humorous",[`${Ne}.optimistic`]:"Optimistic"}}),{id:$i,type:"quick",kind:"text",scopes:["text/edit"],label:`${QV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${$i}.popover`,{label:bg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${$i}.popover.section`,{children:()=>{a.builder.Menu(`${$i}.popover.menu`,{children:()=>{WV.forEach(s=>{t.Button(`${$i}.popover.menu.${s.id}`,{label:bg(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:ZV(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"})}}})})}})}})}})}}),JV=KV,t1={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"},XV=Object.keys(t1);function eB(e,t){let r=t1[t]||t;return`
557
557
  You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
558
558
 
559
559
  1. Here is the source text to be translated:
@@ -569,7 +569,7 @@ ${r}
569
569
  3. Translate the source text into the target language. Ensure that you maintain the original meaning, tone, and style as closely as possible while adapting to the linguistic and cultural norms of the target language.
570
570
 
571
571
  4. Return only the translated text, without any additional comments, explanations, or metadata. Do not include the original text or any other information in your response.
572
- `}var FV=RV,to="translate",wi=`ly.img.${to}`,VV=`ly.img.plugin-ai-text-generation-web.quickAction.${to}`,B=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${to}`;function og(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var BV=UV.map(e=>({id:e})),qV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),e.i18n.setTranslations({en:{[`${B}`]:"Translate",[`${B}.en_US`]:"English (US)",[`${B}.en_UK`]:"English (UK)",[`${B}.es`]:"Spanish",[`${B}.fr`]:"French",[`${B}.de`]:"German",[`${B}.pt`]:"Portuguese",[`${B}.it`]:"Italian",[`${B}.ru`]:"Russian",[`${B}.zh`]:"Mandarin Chinese",[`${B}.ja`]:"Japanese"}}),{id:wi,type:"quick",kind:"text",scopes:["text/edit"],label:`${VV}`,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(`${wi}.popover`,{label:og(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${wi}.popover.section`,{children:()=>{a.builder.Menu(`${wi}.popover.menu`,{children:()=>{BV.forEach(s=>{t.Button(`${wi}.popover.menu.${s.id}`,{label:og(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:FV(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"})}}})})}})}})}})}}),GV=qV;function YV(e,t){return`
572
+ `}var tB=eB,mo="translate",_i=`ly.img.${mo}`,rB=`ly.img.plugin-ai-text-generation-web.quickAction.${mo}`,H=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${mo}`;function vg(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 iB=XV.map(e=>({id:e})),nB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),e.i18n.setTranslations({en:{[`${H}`]:"Translate",[`${H}.en_US`]:"English (US)",[`${H}.en_UK`]:"English (UK)",[`${H}.es`]:"Spanish",[`${H}.fr`]:"French",[`${H}.de`]:"German",[`${H}.pt`]:"Portuguese",[`${H}.it`]:"Italian",[`${H}.ru`]:"Russian",[`${H}.zh`]:"Mandarin Chinese",[`${H}.ja`]:"Japanese"}}),{id:_i,type:"quick",kind:"text",scopes:["text/edit"],label:`${rB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${_i}.popover`,{label:vg(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_i}.popover.section`,{children:()=>{a.builder.Menu(`${_i}.popover.menu`,{children:()=>{iB.forEach(s=>{t.Button(`${_i}.popover.menu.${s.id}`,{label:vg(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:tB(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"})}}})})}})}})}})}}),oB=nB;function aB(e,t){return`
573
573
  You will be given an original text and a custom prompt addition that specifies how to change the text. Your task is to modify the original text according to the prompt and return only the new, modified text.
574
574
 
575
575
  Here is the original text:
@@ -583,10 +583,10 @@ ${t}
583
583
  </change_text_to>
584
584
 
585
585
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
586
- `}var HV=YV,ro="changeTextTo",ge=`ly.img.${ro}`,ag=`ly.img.plugin-ai-text-generation-web.quickAction.${ro}`,lg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ro}`;function tl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ZV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${lg}`]:"Change Text to...",[`${lg}.prompt`]:"Change Text to...",[`${ag}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:ge,type:"quick",kind:"text",scopes:["text/edit"],label:`${ag}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:tl(l,"prompt"),placeholder:tl(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:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getString(g,"text/text");await a({prompt:HV(p,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:tl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),QV=ZV,Vg="@imgly/plugin-ai-text-generation-web",WV=["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 KV(e){return{async initialize({cesdk:t}){if(t==null)return;SP(t,Vg,"0.2.6"),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(yO,bO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),JV(e);let r=yl.get();r.register(dV({cesdk:t})),r.register(hV({cesdk:t})),r.register(CV({cesdk:t})),r.register(LV({cesdk:t})),r.register(zV({cesdk:t})),r.register(GV({cesdk:t})),r.register(QV({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(nV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await Dz("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await aU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:WV});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:Yn}))}}}function JV(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 XV=KV,eB=e=>({name:Vg,version:"0.2.6",...XV(e)}),Bg=eB;var tB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Xt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Xt(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 Xt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Xt(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 Xt(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]=Xt(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]=Xt(n,t,a)}return e}var rB=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},iB=typeof global=="object"&&global&&global.Object===Object&&global,k1=iB,nB=typeof self=="object"&&self&&self.Object===Object&&self,oB=k1||nB||Function("return this")(),te=oB,aB=te.Symbol,er=aB,x1=Object.prototype,lB=x1.hasOwnProperty,sB=x1.toString,Ti=er?er.toStringTag:void 0;function uB(e){var t=lB.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=sB.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var cB=uB,dB=Object.prototype,pB=dB.toString;function gB(e){return pB.call(e)}var fB=gB,yB="[object Null]",mB="[object Undefined]",qg=er?er.toStringTag:void 0;function bB(e){return e==null?e===void 0?mB:yB:qg&&qg in Object(e)?cB(e):fB(e)}var qi=bB;function hB(e){return e!=null&&typeof e=="object"}var zl=hB,JX=Array.isArray;function vB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var I1=vB,wB="[object AsyncFunction]",kB="[object Function]",xB="[object GeneratorFunction]",IB="[object Proxy]";function AB(e){if(!I1(e))return!1;var t=qi(e);return t==kB||t==xB||t==wB||t==IB}var CB=AB,MB=te["__core-js_shared__"],wl=MB,Gg=function(){var e=/[^.]+$/.exec(wl&&wl.keys&&wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jB(e){return!!Gg&&Gg in e}var SB=jB,$B=Function.prototype,EB=$B.toString;function _B(e){if(e!=null){try{return EB.call(e)}catch{}try{return e+""}catch{}}return""}var Pe=_B,LB=/[\\^$.*+?()[\]{}|]/g,TB=/^\[object .+?Constructor\]$/,OB=Function.prototype,NB=Object.prototype,DB=OB.toString,PB=NB.hasOwnProperty,zB=RegExp("^"+DB.call(PB).replace(LB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UB(e){if(!I1(e)||SB(e))return!1;var t=CB(e)?zB:TB;return t.test(Pe(e))}var RB=UB;function FB(e,t){return e?.[t]}var VB=FB;function BB(e,t){var r=VB(e,t);return RB(r)?r:void 0}var rr=BB,qB=rr(te,"WeakMap"),jl=qB;function GB(e,t){return e===t||e!==e&&t!==t}var YB=GB,HB=9007199254740991;function ZB(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HB}var QB=ZB,XX=Object.prototype,WB="[object Arguments]";function KB(e){return zl(e)&&qi(e)==WB}var Yg=KB,A1=Object.prototype,JB=A1.hasOwnProperty,XB=A1.propertyIsEnumerable,eee=Yg(function(){return arguments}())?Yg:function(e){return zl(e)&&JB.call(e,"callee")&&!XB.call(e,"callee")},C1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Hg=C1&&typeof module=="object"&&module&&!module.nodeType&&module,eq=Hg&&Hg.exports===C1,Zg=eq?te.Buffer:void 0,tee=Zg?Zg.isBuffer:void 0,tq="[object Arguments]",rq="[object Array]",iq="[object Boolean]",nq="[object Date]",oq="[object Error]",aq="[object Function]",lq="[object Map]",sq="[object Number]",uq="[object Object]",cq="[object RegExp]",dq="[object Set]",pq="[object String]",gq="[object WeakMap]",fq="[object ArrayBuffer]",yq="[object DataView]",mq="[object Float32Array]",bq="[object Float64Array]",hq="[object Int8Array]",vq="[object Int16Array]",wq="[object Int32Array]",kq="[object Uint8Array]",xq="[object Uint8ClampedArray]",Iq="[object Uint16Array]",Aq="[object Uint32Array]",U={};U[mq]=U[bq]=U[hq]=U[vq]=U[wq]=U[kq]=U[xq]=U[Iq]=U[Aq]=!0;U[tq]=U[rq]=U[fq]=U[iq]=U[yq]=U[nq]=U[oq]=U[aq]=U[lq]=U[sq]=U[uq]=U[cq]=U[dq]=U[pq]=U[gq]=!1;function Cq(e){return zl(e)&&QB(e.length)&&!!U[qi(e)]}var Mq=Cq;function jq(e){return function(t){return e(t)}}var Sq=jq,M1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=M1&&typeof module=="object"&&module&&!module.nodeType&&module,$q=zi&&zi.exports===M1,kl=$q&&k1.process,Eq=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||kl&&kl.binding&&kl.binding("util")}catch{}}(),Qg=Eq,Wg=Qg&&Qg.isTypedArray,ree=Wg?Sq(Wg):Mq,_q=Object.prototype,iee=_q.hasOwnProperty;function Lq(e,t){return function(r){return e(t(r))}}var Tq=Lq,nee=Tq(Object.keys,Object),Oq=Object.prototype,oee=Oq.hasOwnProperty,Nq=rr(Object,"create"),Ri=Nq;function Dq(){this.__data__=Ri?Ri(null):{},this.size=0}var Pq=Dq;function zq(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Uq=zq,Rq="__lodash_hash_undefined__",Fq=Object.prototype,Vq=Fq.hasOwnProperty;function Bq(e){var t=this.__data__;if(Ri){var r=t[e];return r===Rq?void 0:r}return Vq.call(t,e)?t[e]:void 0}var qq=Bq,Gq=Object.prototype,Yq=Gq.hasOwnProperty;function Hq(e){var t=this.__data__;return Ri?t[e]!==void 0:Yq.call(t,e)}var Zq=Hq,Qq="__lodash_hash_undefined__";function Wq(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?Qq:t,this}var Kq=Wq;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=Pq;ir.prototype.delete=Uq;ir.prototype.get=qq;ir.prototype.has=Zq;ir.prototype.set=Kq;var Kg=ir;function Jq(){this.__data__=[],this.size=0}var Xq=Jq;function eG(e,t){for(var r=e.length;r--;)if(YB(e[r][0],t))return r;return-1}var no=eG,tG=Array.prototype,rG=tG.splice;function iG(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rG.call(t,r,1),--this.size,!0}var nG=iG;function oG(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var aG=oG;function lG(e){return no(this.__data__,e)>-1}var sG=lG;function uG(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var cG=uG;function nr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}nr.prototype.clear=Xq;nr.prototype.delete=nG;nr.prototype.get=aG;nr.prototype.has=sG;nr.prototype.set=cG;var oo=nr,dG=rr(te,"Map"),Fi=dG;function pG(){this.size=0,this.__data__={hash:new Kg,map:new(Fi||oo),string:new Kg}}var gG=pG;function fG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yG=fG;function mG(e,t){var r=e.__data__;return yG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=mG;function bG(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var hG=bG;function vG(e){return ao(this,e).get(e)}var wG=vG;function kG(e){return ao(this,e).has(e)}var xG=kG;function IG(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AG=IG;function or(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}or.prototype.clear=gG;or.prototype.delete=hG;or.prototype.get=wG;or.prototype.has=xG;or.prototype.set=AG;var j1=or;function CG(){this.__data__=new oo,this.size=0}var MG=CG;function jG(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SG=jG;function $G(e){return this.__data__.get(e)}var EG=$G;function _G(e){return this.__data__.has(e)}var LG=_G,TG=200;function OG(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Fi||i.length<TG-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new j1(i)}return r.set(e,t),this.size=r.size,this}var NG=OG;function Gi(e){var t=this.__data__=new oo(e);this.size=t.size}Gi.prototype.clear=MG;Gi.prototype.delete=SG;Gi.prototype.get=EG;Gi.prototype.has=LG;Gi.prototype.set=NG;var DG=Object.prototype,aee=DG.propertyIsEnumerable,PG=rr(te,"DataView"),Sl=PG,zG=rr(te,"Promise"),$l=zG,UG=rr(te,"Set"),El=UG,Jg="[object Map]",RG="[object Object]",Xg="[object Promise]",e1="[object Set]",t1="[object WeakMap]",r1="[object DataView]",FG=Pe(Sl),VG=Pe(Fi),BG=Pe($l),qG=Pe(El),GG=Pe(jl),Kt=qi;(Sl&&Kt(new Sl(new ArrayBuffer(1)))!=r1||Fi&&Kt(new Fi)!=Jg||$l&&Kt($l.resolve())!=Xg||El&&Kt(new El)!=e1||jl&&Kt(new jl)!=t1)&&(Kt=function(e){var t=qi(e),r=t==RG?e.constructor:void 0,i=r?Pe(r):"";if(i)switch(i){case FG:return r1;case VG:return Jg;case BG:return Xg;case qG:return e1;case GG:return t1}return t});var lee=te.Uint8Array,YG="__lodash_hash_undefined__";function HG(e){return this.__data__.set(e,YG),this}var ZG=HG;function QG(e){return this.__data__.has(e)}var WG=QG;function _l(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new j1;++t<r;)this.add(e[t])}_l.prototype.add=_l.prototype.push=ZG;_l.prototype.has=WG;var i1=er?er.prototype:void 0,see=i1?i1.valueOf:void 0,KG=Object.prototype,uee=KG.hasOwnProperty,JG=Object.prototype,cee=JG.hasOwnProperty,dee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function S1(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 XG(e,t){let r=await S1(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 eY(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 S1(i,t)}function tY(e){return e!==void 0}var rY=tY,$1=class E1{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 E1),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))}},iY=class _1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _1),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 nY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,b)=>s(l+1,f,b),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function oY({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 aY=oY,xl="ly.img.ai.temp";async function lY(e,t){return e.engine.asset.findAllSources().includes(xl)||e.engine.asset.addLocalSource(xl),e.engine.asset.apply(xl,t)}function sY(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 L1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function uY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function cY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ul(e){return e instanceof Error&&e.name==="AbortError"}function dY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function pY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
586
+ `}var lB=aB,ho="changeTextTo",he=`ly.img.${ho}`,wg=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,kg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function yl(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 sB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${kg}`]:"Change Text to...",[`${kg}.prompt`]:"Change Text to...",[`${wg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:he,type:"quick",kind:"text",scopes:["text/edit"],label:`${wg}`,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(`${he}.prompt`,"");t.TextArea(`${he}.prompt`,{inputLabel:yl(l,"prompt"),placeholder:yl(l,"prompt.placeholder")[1],...u}),t.Separator(`${he}.separator`),r.builder.ButtonRow(`${he}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${he}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${he}.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:lB(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(`${he}.button`,{label:yl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),uB=sB,r1="@imgly/plugin-ai-text-generation-web",cB=["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 dB(e){return{async initialize({cesdk:t}){if(t==null)return;VP(t,r1,"0.2.7"),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($O,EO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),pB(e);let r=$l.get();r.register(CV({cesdk:t})),r.register(LV({cesdk:t})),r.register(UV({cesdk:t})),r.register(YV({cesdk:t})),r.register(JV({cesdk:t})),r.register(oB({cesdk:t})),r.register(uB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(bV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await Wz("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await wU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:cB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:ao}))}}}function pB(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 gB=dB,fB=e=>({name:r1,version:"0.2.7",...gB(e)}),i1=fB;var yB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ir(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ir(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ir(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ir(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ir(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ir(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ir(n,t,a)}return e}var mB=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")}},hB=typeof global=="object"&&global&&global.Object===Object&&global,N1=hB,bB=typeof self=="object"&&self&&self.Object===Object&&self,vB=N1||bB||Function("return this")(),oe=vB,wB=oe.Symbol,nr=wB,D1=Object.prototype,kB=D1.hasOwnProperty,xB=D1.toString,Gi=nr?nr.toStringTag:void 0;function IB(e){var t=kB.call(e,Gi),r=e[Gi];try{e[Gi]=void 0;var i=!0}catch{}var n=xB.call(e);return i&&(t?e[Gi]=r:delete e[Gi]),n}var AB=IB,CB=Object.prototype,MB=CB.toString;function jB(e){return MB.call(e)}var SB=jB,$B="[object Null]",_B="[object Undefined]",n1=nr?nr.toStringTag:void 0;function EB(e){return e==null?e===void 0?_B:$B:n1&&n1 in Object(e)?AB(e):SB(e)}var rn=EB;function LB(e){return e!=null&&typeof e=="object"}var Jl=LB,pee=Array.isArray;function TB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var P1=TB,OB="[object AsyncFunction]",NB="[object Function]",DB="[object GeneratorFunction]",PB="[object Proxy]";function zB(e){if(!P1(e))return!1;var t=rn(e);return t==NB||t==DB||t==OB||t==PB}var UB=zB,RB=oe["__core-js_shared__"],Ol=RB,o1=function(){var e=/[^.]+$/.exec(Ol&&Ol.keys&&Ol.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function FB(e){return!!o1&&o1 in e}var VB=FB,BB=Function.prototype,qB=BB.toString;function GB(e){if(e!=null){try{return qB.call(e)}catch{}try{return e+""}catch{}}return""}var Fe=GB,YB=/[\\^$.*+?()[\]{}|]/g,HB=/^\[object .+?Constructor\]$/,ZB=Function.prototype,QB=Object.prototype,WB=ZB.toString,KB=QB.hasOwnProperty,JB=RegExp("^"+WB.call(KB).replace(YB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function XB(e){if(!P1(e)||VB(e))return!1;var t=UB(e)?JB:HB;return t.test(Fe(e))}var eq=XB;function tq(e,t){return e?.[t]}var rq=tq;function iq(e,t){var r=rq(e,t);return eq(r)?r:void 0}var ar=iq,nq=ar(oe,"WeakMap"),Fl=nq;function oq(e,t){return e===t||e!==e&&t!==t}var aq=oq,lq=9007199254740991;function sq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=lq}var uq=sq,gee=Object.prototype,cq="[object Arguments]";function dq(e){return Jl(e)&&rn(e)==cq}var a1=dq,z1=Object.prototype,pq=z1.hasOwnProperty,gq=z1.propertyIsEnumerable,fee=a1(function(){return arguments}())?a1:function(e){return Jl(e)&&pq.call(e,"callee")&&!gq.call(e,"callee")},U1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,l1=U1&&typeof module=="object"&&module&&!module.nodeType&&module,fq=l1&&l1.exports===U1,s1=fq?oe.Buffer:void 0,yee=s1?s1.isBuffer:void 0,yq="[object Arguments]",mq="[object Array]",hq="[object Boolean]",bq="[object Date]",vq="[object Error]",wq="[object Function]",kq="[object Map]",xq="[object Number]",Iq="[object Object]",Aq="[object RegExp]",Cq="[object Set]",Mq="[object String]",jq="[object WeakMap]",Sq="[object ArrayBuffer]",$q="[object DataView]",_q="[object Float32Array]",Eq="[object Float64Array]",Lq="[object Int8Array]",Tq="[object Int16Array]",Oq="[object Int32Array]",Nq="[object Uint8Array]",Dq="[object Uint8ClampedArray]",Pq="[object Uint16Array]",zq="[object Uint32Array]",V={};V[_q]=V[Eq]=V[Lq]=V[Tq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=!0;V[yq]=V[mq]=V[Sq]=V[hq]=V[$q]=V[bq]=V[vq]=V[wq]=V[kq]=V[xq]=V[Iq]=V[Aq]=V[Cq]=V[Mq]=V[jq]=!1;function Uq(e){return Jl(e)&&uq(e.length)&&!!V[rn(e)]}var Rq=Uq;function Fq(e){return function(t){return e(t)}}var Vq=Fq,R1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wi=R1&&typeof module=="object"&&module&&!module.nodeType&&module,Bq=Wi&&Wi.exports===R1,Nl=Bq&&N1.process,qq=function(){try{var e=Wi&&Wi.require&&Wi.require("util").types;return e||Nl&&Nl.binding&&Nl.binding("util")}catch{}}(),u1=qq,c1=u1&&u1.isTypedArray,mee=c1?Vq(c1):Rq,Gq=Object.prototype,hee=Gq.hasOwnProperty;function Yq(e,t){return function(r){return e(t(r))}}var Hq=Yq,bee=Hq(Object.keys,Object),Zq=Object.prototype,vee=Zq.hasOwnProperty,Qq=ar(Object,"create"),Ji=Qq;function Wq(){this.__data__=Ji?Ji(null):{},this.size=0}var Kq=Wq;function Jq(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xq=Jq,eG="__lodash_hash_undefined__",tG=Object.prototype,rG=tG.hasOwnProperty;function iG(e){var t=this.__data__;if(Ji){var r=t[e];return r===eG?void 0:r}return rG.call(t,e)?t[e]:void 0}var nG=iG,oG=Object.prototype,aG=oG.hasOwnProperty;function lG(e){var t=this.__data__;return Ji?t[e]!==void 0:aG.call(t,e)}var sG=lG,uG="__lodash_hash_undefined__";function cG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ji&&t===void 0?uG:t,this}var dG=cG;function lr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lr.prototype.clear=Kq;lr.prototype.delete=Xq;lr.prototype.get=nG;lr.prototype.has=sG;lr.prototype.set=dG;var d1=lr;function pG(){this.__data__=[],this.size=0}var gG=pG;function fG(e,t){for(var r=e.length;r--;)if(aq(e[r][0],t))return r;return-1}var vo=fG,yG=Array.prototype,mG=yG.splice;function hG(e){var t=this.__data__,r=vo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():mG.call(t,r,1),--this.size,!0}var bG=hG;function vG(e){var t=this.__data__,r=vo(t,e);return r<0?void 0:t[r][1]}var wG=vG;function kG(e){return vo(this.__data__,e)>-1}var xG=kG;function IG(e,t){var r=this.__data__,i=vo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var AG=IG;function sr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}sr.prototype.clear=gG;sr.prototype.delete=bG;sr.prototype.get=wG;sr.prototype.has=xG;sr.prototype.set=AG;var wo=sr,CG=ar(oe,"Map"),Xi=CG;function MG(){this.size=0,this.__data__={hash:new d1,map:new(Xi||wo),string:new d1}}var jG=MG;function SG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var $G=SG;function _G(e,t){var r=e.__data__;return $G(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ko=_G;function EG(e){var t=ko(this,e).delete(e);return this.size-=t?1:0,t}var LG=EG;function TG(e){return ko(this,e).get(e)}var OG=TG;function NG(e){return ko(this,e).has(e)}var DG=NG;function PG(e,t){var r=ko(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var zG=PG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=jG;ur.prototype.delete=LG;ur.prototype.get=OG;ur.prototype.has=DG;ur.prototype.set=zG;var F1=ur;function UG(){this.__data__=new wo,this.size=0}var RG=UG;function FG(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var VG=FG;function BG(e){return this.__data__.get(e)}var qG=BG;function GG(e){return this.__data__.has(e)}var YG=GG,HG=200;function ZG(e,t){var r=this.__data__;if(r instanceof wo){var i=r.__data__;if(!Xi||i.length<HG-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new F1(i)}return r.set(e,t),this.size=r.size,this}var QG=ZG;function nn(e){var t=this.__data__=new wo(e);this.size=t.size}nn.prototype.clear=RG;nn.prototype.delete=VG;nn.prototype.get=qG;nn.prototype.has=YG;nn.prototype.set=QG;var WG=Object.prototype,wee=WG.propertyIsEnumerable,KG=ar(oe,"DataView"),Vl=KG,JG=ar(oe,"Promise"),Bl=JG,XG=ar(oe,"Set"),ql=XG,p1="[object Map]",eY="[object Object]",g1="[object Promise]",f1="[object Set]",y1="[object WeakMap]",m1="[object DataView]",tY=Fe(Vl),rY=Fe(Xi),iY=Fe(Bl),nY=Fe(ql),oY=Fe(Fl),tr=rn;(Vl&&tr(new Vl(new ArrayBuffer(1)))!=m1||Xi&&tr(new Xi)!=p1||Bl&&tr(Bl.resolve())!=g1||ql&&tr(new ql)!=f1||Fl&&tr(new Fl)!=y1)&&(tr=function(e){var t=rn(e),r=t==eY?e.constructor:void 0,i=r?Fe(r):"";if(i)switch(i){case tY:return m1;case rY:return p1;case iY:return g1;case nY:return f1;case oY:return y1}return t});var kee=oe.Uint8Array,aY="__lodash_hash_undefined__";function lY(e){return this.__data__.set(e,aY),this}var sY=lY;function uY(e){return this.__data__.has(e)}var cY=uY;function Gl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new F1;++t<r;)this.add(e[t])}Gl.prototype.add=Gl.prototype.push=sY;Gl.prototype.has=cY;var h1=nr?nr.prototype:void 0,xee=h1?h1.valueOf:void 0,dY=Object.prototype,Iee=dY.hasOwnProperty,pY=Object.prototype,Aee=pY.hasOwnProperty,Cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function V1(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 gY(e,t){let r=await V1(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 fY(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 V1(i,t)}function yY(e){return e!==void 0}var mY=yY;function on(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function an(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var B1=class q1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new q1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},hY=class G1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new G1),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 bY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function vY({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 wY=vY,Dl="ly.img.ai.temp";async function kY(e,t){return e.engine.asset.findAllSources().includes(Dl)||e.engine.asset.addLocalSource(Dl),e.engine.asset.apply(Dl,t)}function xY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Y1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function IY(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 AY(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 Xl(e){return e instanceof Error&&e.name==="AbortError"}function CY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
587
587
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
588
588
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
589
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function gY(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 fY=gY;function yY(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),mY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:sY(e)})}function mY(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var n1=yY,bY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Rl=bY;function hY(e,t,r){switch(t){case"image":return vY(e,r[t]);case"video":return wY(e,r[t]);case"sticker":return kY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function vY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function wY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Rl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function kY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var xY=hY;async function IY(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 AY(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 CY(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 MY(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 jY(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function AY(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 CY(e,t,r){let i=t.width,n=t.height,a=await uY(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function MY(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 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:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var T1=IY;function SY(e){switch(e.userFlow){case"placeholder":return EY(e);case"generation-only":return $Y(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function $Y(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=L1(),c=await T1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function EY(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=L1(),c=xY(s,a,o);if(i=await lY(t,c),me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;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 T1(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)&&(Ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var _Y=SY;function Fl(e){return`${e}.generating`}function LY(e){return`${e}.abort`}function TY(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(LY(d),()=>{}),y=c.global(Fl(d),!1),f,b=y.value&&g,h=()=>{b&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},M;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=i();M=a.requiredInputs.every(v=>!C.input[v])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:M,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:v})=>{l.ui.closeDialog(v),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:v})=>{h(),l.ui.closeDialog(v),k.setValue(void 0)}}});k.setValue(C)}}:void 0,onClick:async()=>{f=new AbortController;let C=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let v=await _Y({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(v.status==="aborted")return;if(v.status==="error"){n1(v.message,{cesdk:l,provider:t,getInput:i});return}if(v.status==="success"&&v.type==="sync"){let w=t.output.notification;OY(l,w,()=>({input:i().input,output:v.output}))}}catch(v){if(Ul(v))return;n1(v,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.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 OY(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 O1=TY;async function NY({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Fl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return O1(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var DY=NY;function N1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Di(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=N1(e,t.$ref),n={...Di(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Di(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Di(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Di(e,t[n],r));return i}return t}function PY(e){return Di(e,{...e})}function zY(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 UY(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return RY(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function RY(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=FY(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function FY(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 D1=UY;function De(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function P1(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 z1(e,t,r,i,n,a,o){if(t.schema==null)return i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null?i.renderCustomProperty[t.id](e,t):void 0;let s=t,c=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null)return i.renderCustomProperty[t.id](e,t);switch(c){case"string":return t.schema.enum!=null?VY(e,s,r,i,n,a,o):U1(e,s,r,i,n,a,o);case"boolean":return R1(e,s,r,i,n,a,o);case"number":case"integer":return F1(e,s,r,i,n,a,o);case"object":return Ll(e,s,r,i,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return BY(e,s,r,i,n,a,o);break}default:console.error(`Unsupported property type: ${c}`)}}function Ll(e,t,r,i,n,a,o){let s=D1(t.schema??{},i).reduce((c,l)=>{let u=z1(e,l,r,i,n,a,o);return u!=null&&(c[l.id]=u()),c},{});return()=>({id:t.id,type:"object",value:s})}function U1(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=De(t,r,o),g=c(u,t.schema.default??""),p=qY(t.schema),y=p?.component!=null&&p?.component==="TextArea"?"TextArea":"TextInput";return s[y](u,{inputLabel:d,placeholder:n.i18n?.prompt,...g}),()=>({id:t.id,type:"string",value:g.value})}function VY(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=De(t,r,o),{labels:g,icons:p}=P1(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:De(t,r,o,h),icon:p[h]})),f=t.schema.default!=null?y.find(h=>h.id===t.schema.default)??y[0]:y[0],b=c(u,f);return s.Select(u,{inputLabel:d,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function R1(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=De(t,r,o),g=!!t.schema.default,p=c(u,g);return s.Checkbox(u,{inputLabel:d,...p}),()=>({id:t.id,type:"boolean",value:p.value})}function F1(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=De(t,r,o),g=t.schema.minimum,p=t.schema.maximum,y=t.schema.default;y==null&&(g!=null?y=g:p!=null?y=p:y=0);let f=c(u,y);if(g!=null&&p!=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"]),s.Slider(u,{inputLabel:d,min:g,max:p,step:b,...f})}else s.NumberInput(u,{inputLabel:d,min:g,max:p,...f});return()=>({id:t.id,type:"integer",value:f.value})}function BY(e,t,r,i,n,a,o){let{builder:s,experimental:{global:c}}=e,{id:l}=t,u=`${r.id}.${l}`,d=De(t,r,o),g=t.schema.anyOf??[],p=[],y={},f={},{labels:b,icons:h}=P1(t.schema),M={string:U1,boolean:R1,integer:F1,object:Ll},k=(m,x)=>m.$ref?m.$ref.split("/").pop():x.split(".").pop()??x,C=(m,x)=>({id:m,label:De(t,r,o,x),icon:h[x]??h[m]});g.forEach((m,x)=>{let j=`${r.id}.${l}.anyOf[${x}]`;if(m.$ref||m.title){let I=m.$ref?m.$ref.split("/").pop():m.title;y[j]=()=>Ll(e,{id:j,schema:{...m,title:b[I]||I}},r,i,n,a,o),p.push(C(j,I))}else if(m.type==="string"&&m.enum)m.enum.forEach(I=>{p.push(C(I,I))});else if(m.type&&M[m.type]){let I=M[m.type];y[j]=()=>I(e,{id:j,schema:{...m,title:m.title}},r,i,n,a,o);let A=k(m,j);p.push(m.type==="string"&&!m.enum?{id:j,label:m.title||A,icon:m.title&&h[m.title]||h[A]}:C(j,A))}});let v=t.schema.default!=null?p.find(m=>m.id===t.schema.default)??p[0]:p[0],w=c(u,v);if(s.Select(u,{inputLabel:d,values:p,...w}),w.value.id in y){let m=y[w.value.id]();f[w.value.id]=m}return()=>{let m=f[w.value.id];return m!=null?{...m(),id:t.id}:{id:t.id,type:"string",value:w.value.id}}}function qY(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var GY=z1,YY={"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 o1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function HY(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||o1(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||o1(p);n[a(l.id,p)]=y}})}});let c={...YY,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function ZY({options:e,provider:t,panelInput:r,config:i},n){let{id:a}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=PY(r.document),s=N1(o,r.inputReference);if(!zY(s,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let c=s,l=D1(c,r);return HY(l,t,e,t.kind),u=>{let{builder:d}=u,g=[];d.Section(`${a}.schema.section`,{children:()=>{l.forEach(b=>{let h=GY(u,b,t,r,e,i,t.kind);h!=null&&(Array.isArray(h)?g.push(...h):g.push(h))})}});let p=g.map(b=>b()),y=b=>b.type==="object"?Object.entries(b.value).reduce((h,[M,k])=>(h[M]=y(k),h),{}):b.value,f=p.reduce((b,h)=>(b[h.id]=y(h),b),{});O1(u,t,n,()=>({input:f}),()=>r.getBlockInput(f),{...e,requiredInputs:c.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var QY=ZY;async function WY(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return DY(e,t);case"schema":return QY(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var KY=WY;function JY(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 tB(o,r)),o}return i}var XY=JY;function eH(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 tH=eH,Il="@imgly/plugin-ai-generation",rH=`
589
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function jY(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 SY=jY;function $Y(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),_Y(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:xY(e)})}function _Y(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var b1=$Y,EY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",es=EY;function LY(e,t,r){switch(t){case"image":return TY(e,r[t]);case"video":return OY(e,r[t]);case"sticker":return NY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:es,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function OY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:es,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function NY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:es,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var DY=LY;async function PY(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 zY(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 UY(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 RY(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 FY(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function zY(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 UY(e,t,r){let i=t.width,n=t.height,a=await IY(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 RY(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 FY(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 H1=PY;function VY(e){switch(e.userFlow){case"placeholder":return qY(e);case"generation-only":return BY(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function BY(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(we(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(we(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(we(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Y1(),c=await H1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function qY(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(we(t,r))return{status:"aborted"};let s=Y1(),c=DY(s,a,o);if(i=await kY(t,c),we(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,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(we(t,r,i))return{status:"aborted"};if(l.status!=="success")return 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 H1(s,a,o,l.output);if(we(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),we(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)&&(Xl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function we(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var GY=VY;function ts(e){return`${e}.generating`}function YY(e){return`${e}.abort`}function HY(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(YY(d),()=>{}),m=c.global(ts(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,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:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await GY({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(y.status==="aborted")return;if(y.status==="error"){b1(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;ZY(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(Xl(y))return;b1(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ZY(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 Z1=HY;async function QY({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(ts(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Z1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var WY=QY;function Q1(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 Zi(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=Q1(e,t.$ref),n={...Zi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Zi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Zi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Zi(e,t[n],r));return i}return t}function KY(e){return Zi(e,{...e})}function JY(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 XY(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return eH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function eH(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=tH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function tH(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 W1=XY;function Re(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function K1(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 J1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?rH(e,c,r,i,n,a,o,s):X1(e,c,r,i,n,a,o,s);case"boolean":return ef(e,c,r,i,n,a,o,s);case"number":case"integer":return tf(e,c,r,i,n,a,o,s);case"object":return Yl(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 iH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Yl(e,t,r,i,n,a,o,s){let c=W1(t.schema??{},i).reduce((l,u)=>{let d=J1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function X1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=on(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=an(d,f,m,t.schema.default,""),b=l(p,h),w=nH(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function rH(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=Re(t,r,o),{labels:m,icons:f}=K1(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Re(t,r,o,x),icon:f[x]})),b=on(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=an(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function ef(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=Re(t,r,o),m=on(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!an(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function tf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=on(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=an(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function iH(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=Re(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=K1(t.schema),I=on(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:X1,boolean:ef,integer:tf,object:Yl},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Re(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Yl(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=an(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function nH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var oH=J1,aH={"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 v1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function lH(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||v1(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||v1(g);n[a(l.id,g)]=m}})}});let c={...aH,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function sH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=KY(r.document),c=Q1(s,r.inputReference);if(!JY(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=W1(l,r);return lH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=oH(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});Z1(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var uH=sH;async function cH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return WY(e,t);case"schema":return uH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var dH=cH;function pH(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 yB(o,r)),o}return i}var gH=pH;function fH(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 yH=fH,Pl="@imgly/plugin-ai-generation",mH=`
590
590
  <svg>
591
591
  <symbol
592
592
  fill="none"
@@ -604,7 +604,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
604
604
  fill="none"
605
605
  xmlns="http://www.w3.org/2000/svg"
606
606
  viewBox="0 0 24 24"
607
- id="${Il}/image"
607
+ id="${Pl}/image"
608
608
  >
609
609
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
610
610
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -616,7 +616,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
616
616
  fill="none"
617
617
  xmlns="http://www.w3.org/2000/svg"
618
618
  viewBox="0 0 24 24"
619
- id="${Il}/video"
619
+ id="${Pl}/video"
620
620
  >
621
621
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
622
622
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -627,7 +627,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
627
627
  fill="none"
628
628
  xmlns="http://www.w3.org/2000/svg"
629
629
  viewBox="0 0 24 24"
630
- id="${Il}/audio"
630
+ id="${Pl}/audio"
631
631
  >
632
632
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
633
633
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -647,8 +647,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
647
647
 
648
648
  </symbol>
649
649
  </svg>
650
- `,iH=rH;function nH(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 V1(2e3),await oH(t,e,r)):i(t,r)}async function oH(e,t,r){switch(t.kind){case"image":return aH(e,t,r);case"video":return lH(e,t,r);case"text":return sH(e,t,r);case"audio":return cH(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function aH(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 eY(s,r),l=await XG(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
- `,"+")}`}}async function lH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function sH(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=Oi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Oi(n,o)}else"customPrompt"in e?a=Oi(n,"custom"):a=Oi(n,"improved");else a=Oi(n,"generated");return uH(a,r.abortSignal)}async function*uH(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await V1(100)}return{kind:"text",text:e}}function Oi(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 cH(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:dH(220,i),duration:i,thumbnailUrl:void 0}}function dH(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 pH(i,44100)}function pH(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,b)=>{for(let h=0;h<b.length;h++)u.setUint8(f+h,b.charCodeAt(h))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let b=Math.max(-1,Math.min(1,e[f])),h=Math.round(b*32767);u.setInt16(g,h,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function V1(e){return new Promise(t=>{setTimeout(t,e)})}var gH=nH,fH="USER_CANCEL";function yH(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=nY([...e.provider.output.middleware??[],...r?.middlewares??[],aY({enable:r?.debug}),gH({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:cY(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ul(n)?{status:"aborted",message:n.message}:n===fH?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var mH=yH;async function bH(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};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=$1.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=XY(a),s=tH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=mH({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await KY(a,c);dY(r.cesdk,"@imgly/plugin-ai-generation",iH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return iY.get().register(u),u}var Al=bH;function hH(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new rB(n,r,i);return r.engine.asset.addSource(a),a.id}var vH=hH;function Pi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function wH(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Al(e,u,r,i)));o.push(...l),a=xH({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Al(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Al(e,d,r,i)));o.push(...u),a=kH({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=vH({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(rY)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function kH({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),b=[];f.value==="fromText"?b.push(...r):f.value==="fromImage"?b.push(...i):b.push(...r,...i);let h=r.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),M=i.map(({provider:A,panel:S})=>({id:A.id,label:A.name??A.id,builderRenderFunction:S?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,h[0]),C=o.experimental.global(`${t}.selectedProvider.fromImage`,M[0]),v=f.value==="fromText"?k:f.value==="fromImage"?C:void 0,w=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,m=n.feature.isEnabled(w,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let x=d&&p&&r.length>0&&i.length>0,j=a&&x,I=b.length>1&&m;if((j||I)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(j&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Pi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Pi(e,"fromText.label"),icon:f.value!=="fromText"&&a1(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Pi(e,"fromImage.label"),icon:f.value!=="fromImage"&&a1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),I){let A=f.value==="fromText"?h:f.value==="fromImage"?M:[...h,...M];v!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:A,...v})}}}),b.length>1)v?.value.builderRenderFunction?.(o);else{let A=b[0];A&&A.panel?.builderRenderFunction?.(o)}}}function xH({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:d,panel:g})=>({id:d.id,label:d.name??d.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function a1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fl(r.id),!1).value)}var IH=wH,AH="@imgly/plugin-ai-sticker-generation",CH=`
650
+ `,hH=mH;function bH(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await rf(2e3),await vH(t,e,r)):i(t,r)}async function vH(e,t,r){switch(t.kind){case"image":return wH(e,t,r);case"video":return kH(e,t,r);case"text":return xH(e,t,r);case"audio":return AH(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function wH(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 fY(s,r),l=await gY(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
+ `,"+")}`}}async function kH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function xH(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Yi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Yi(n,o)}else"customPrompt"in e?a=Yi(n,"custom"):a=Yi(n,"improved");else a=Yi(n,"generated");return IH(a,r.abortSignal)}async function*IH(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await rf(100)}return{kind:"text",text:e}}function Yi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function AH(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:CH(220,i),duration:i,thumbnailUrl:void 0}}function CH(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 MH(i,44100)}function MH(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function rf(e){return new Promise(t=>{setTimeout(t,e)})}var jH=bH,SH="USER_CANCEL";function $H(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=bY([...e.provider.output.middleware??[],...r?.middlewares??[],wY({enable:r?.debug}),jH({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:AY(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Xl(n)?{status:"aborted",message:n.message}:n===SH?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var _H=$H;async function EH(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=B1.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=gH(a),s=yH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=_H({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await dH(a,c);CY(r.cesdk,"@imgly/plugin-ai-generation",hH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return hY.get().register(u),u}var zl=EH;function LH(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 mB(n,r,i);return r.engine.asset.addSource(a),a.id}var TH=LH;function Qi(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 OH(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>zl(e,u,r,i)));o.push(...l),a=DH({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>zl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>zl(e,d,r,i)));o.push(...u),a=NH({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=TH({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(mY)}),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 NH({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{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 C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Qi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Qi(e,"fromText.label"),icon:f.value!=="fromText"&&w1(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Qi(e,"fromImage.label"),icon:f.value!=="fromImage"&&w1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Qi(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function DH({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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Qi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function w1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ts(r.id),!1).value)}var PH=OH,zH="@imgly/plugin-ai-sticker-generation",UH=`
652
652
  <svg>
653
653
  <symbol
654
654
  fill="none"
@@ -662,7 +662,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
662
 
663
663
  </symbol>
664
664
  </svg>
665
- `,MH=CH,jH=typeof global=="object"&&global&&global.Object===Object&&global,B1=jH,SH=typeof self=="object"&&self&&self.Object===Object&&self,$H=B1||SH||Function("return this")(),re=$H,EH=re.Symbol,tr=EH,q1=Object.prototype,_H=q1.hasOwnProperty,LH=q1.toString,Ni=tr?tr.toStringTag:void 0;function TH(e){var t=_H.call(e,Ni),r=e[Ni];try{e[Ni]=void 0;var i=!0}catch{}var n=LH.call(e);return i&&(t?e[Ni]=r:delete e[Ni]),n}var OH=TH,NH=Object.prototype,DH=NH.toString;function PH(e){return DH.call(e)}var zH=PH,UH="[object Null]",RH="[object Undefined]",l1=tr?tr.toStringTag:void 0;function FH(e){return e==null?e===void 0?RH:UH:l1&&l1 in Object(e)?OH(e):zH(e)}var Yi=FH;function VH(e){return e!=null&&typeof e=="object"}var Vl=VH,fee=Array.isArray;function BH(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var G1=BH,qH="[object AsyncFunction]",GH="[object Function]",YH="[object GeneratorFunction]",HH="[object Proxy]";function ZH(e){if(!G1(e))return!1;var t=Yi(e);return t==GH||t==YH||t==qH||t==HH}var QH=ZH,WH=re["__core-js_shared__"],Cl=WH,s1=function(){var e=/[^.]+$/.exec(Cl&&Cl.keys&&Cl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function KH(e){return!!s1&&s1 in e}var JH=KH,XH=Function.prototype,eZ=XH.toString;function tZ(e){if(e!=null){try{return eZ.call(e)}catch{}try{return e+""}catch{}}return""}var ze=tZ,rZ=/[\\^$.*+?()[\]{}|]/g,iZ=/^\[object .+?Constructor\]$/,nZ=Function.prototype,oZ=Object.prototype,aZ=nZ.toString,lZ=oZ.hasOwnProperty,sZ=RegExp("^"+aZ.call(lZ).replace(rZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function uZ(e){if(!G1(e)||JH(e))return!1;var t=QH(e)?sZ:iZ;return t.test(ze(e))}var cZ=uZ;function dZ(e,t){return e?.[t]}var pZ=dZ;function gZ(e,t){var r=pZ(e,t);return cZ(r)?r:void 0}var ar=gZ,fZ=ar(re,"WeakMap"),Tl=fZ;function yZ(e,t){return e===t||e!==e&&t!==t}var mZ=yZ,bZ=9007199254740991;function hZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bZ}var vZ=hZ,yee=Object.prototype,wZ="[object Arguments]";function kZ(e){return Vl(e)&&Yi(e)==wZ}var u1=kZ,Y1=Object.prototype,xZ=Y1.hasOwnProperty,IZ=Y1.propertyIsEnumerable,mee=u1(function(){return arguments}())?u1:function(e){return Vl(e)&&xZ.call(e,"callee")&&!IZ.call(e,"callee")},H1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,c1=H1&&typeof module=="object"&&module&&!module.nodeType&&module,AZ=c1&&c1.exports===H1,d1=AZ?re.Buffer:void 0,bee=d1?d1.isBuffer:void 0,CZ="[object Arguments]",MZ="[object Array]",jZ="[object Boolean]",SZ="[object Date]",$Z="[object Error]",EZ="[object Function]",_Z="[object Map]",LZ="[object Number]",TZ="[object Object]",OZ="[object RegExp]",NZ="[object Set]",DZ="[object String]",PZ="[object WeakMap]",zZ="[object ArrayBuffer]",UZ="[object DataView]",RZ="[object Float32Array]",FZ="[object Float64Array]",VZ="[object Int8Array]",BZ="[object Int16Array]",qZ="[object Int32Array]",GZ="[object Uint8Array]",YZ="[object Uint8ClampedArray]",HZ="[object Uint16Array]",ZZ="[object Uint32Array]",R={};R[RZ]=R[FZ]=R[VZ]=R[BZ]=R[qZ]=R[GZ]=R[YZ]=R[HZ]=R[ZZ]=!0;R[CZ]=R[MZ]=R[zZ]=R[jZ]=R[UZ]=R[SZ]=R[$Z]=R[EZ]=R[_Z]=R[LZ]=R[TZ]=R[OZ]=R[NZ]=R[DZ]=R[PZ]=!1;function QZ(e){return Vl(e)&&vZ(e.length)&&!!R[Yi(e)]}var WZ=QZ;function KZ(e){return function(t){return e(t)}}var JZ=KZ,Z1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=Z1&&typeof module=="object"&&module&&!module.nodeType&&module,XZ=Ui&&Ui.exports===Z1,Ml=XZ&&B1.process,eQ=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||Ml&&Ml.binding&&Ml.binding("util")}catch{}}(),p1=eQ,g1=p1&&p1.isTypedArray,hee=g1?JZ(g1):WZ,tQ=Object.prototype,vee=tQ.hasOwnProperty;function rQ(e,t){return function(r){return e(t(r))}}var iQ=rQ,wee=iQ(Object.keys,Object),nQ=Object.prototype,kee=nQ.hasOwnProperty,oQ=ar(Object,"create"),Vi=oQ;function aQ(){this.__data__=Vi?Vi(null):{},this.size=0}var lQ=aQ;function sQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var uQ=sQ,cQ="__lodash_hash_undefined__",dQ=Object.prototype,pQ=dQ.hasOwnProperty;function gQ(e){var t=this.__data__;if(Vi){var r=t[e];return r===cQ?void 0:r}return pQ.call(t,e)?t[e]:void 0}var fQ=gQ,yQ=Object.prototype,mQ=yQ.hasOwnProperty;function bQ(e){var t=this.__data__;return Vi?t[e]!==void 0:mQ.call(t,e)}var hQ=bQ,vQ="__lodash_hash_undefined__";function wQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Vi&&t===void 0?vQ:t,this}var kQ=wQ;function lr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lr.prototype.clear=lQ;lr.prototype.delete=uQ;lr.prototype.get=fQ;lr.prototype.has=hQ;lr.prototype.set=kQ;var f1=lr;function xQ(){this.__data__=[],this.size=0}var IQ=xQ;function AQ(e,t){for(var r=e.length;r--;)if(mZ(e[r][0],t))return r;return-1}var lo=AQ,CQ=Array.prototype,MQ=CQ.splice;function jQ(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():MQ.call(t,r,1),--this.size,!0}var SQ=jQ;function $Q(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var EQ=$Q;function _Q(e){return lo(this.__data__,e)>-1}var LQ=_Q;function TQ(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var OQ=TQ;function sr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}sr.prototype.clear=IQ;sr.prototype.delete=SQ;sr.prototype.get=EQ;sr.prototype.has=LQ;sr.prototype.set=OQ;var so=sr,NQ=ar(re,"Map"),Bi=NQ;function DQ(){this.size=0,this.__data__={hash:new f1,map:new(Bi||so),string:new f1}}var PQ=DQ;function zQ(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var UQ=zQ;function RQ(e,t){var r=e.__data__;return UQ(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=RQ;function FQ(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var VQ=FQ;function BQ(e){return uo(this,e).get(e)}var qQ=BQ;function GQ(e){return uo(this,e).has(e)}var YQ=GQ;function HQ(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ZQ=HQ;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=PQ;ur.prototype.delete=VQ;ur.prototype.get=qQ;ur.prototype.has=YQ;ur.prototype.set=ZQ;var Q1=ur;function QQ(){this.__data__=new so,this.size=0}var WQ=QQ;function KQ(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var JQ=KQ;function XQ(e){return this.__data__.get(e)}var eW=XQ;function tW(e){return this.__data__.has(e)}var rW=tW,iW=200;function nW(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Bi||i.length<iW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Q1(i)}return r.set(e,t),this.size=r.size,this}var oW=nW;function Hi(e){var t=this.__data__=new so(e);this.size=t.size}Hi.prototype.clear=WQ;Hi.prototype.delete=JQ;Hi.prototype.get=eW;Hi.prototype.has=rW;Hi.prototype.set=oW;var aW=Object.prototype,xee=aW.propertyIsEnumerable,lW=ar(re,"DataView"),Ol=lW,sW=ar(re,"Promise"),Nl=sW,uW=ar(re,"Set"),Dl=uW,y1="[object Map]",cW="[object Object]",m1="[object Promise]",b1="[object Set]",h1="[object WeakMap]",v1="[object DataView]",dW=ze(Ol),pW=ze(Bi),gW=ze(Nl),fW=ze(Dl),yW=ze(Tl),Jt=Yi;(Ol&&Jt(new Ol(new ArrayBuffer(1)))!=v1||Bi&&Jt(new Bi)!=y1||Nl&&Jt(Nl.resolve())!=m1||Dl&&Jt(new Dl)!=b1||Tl&&Jt(new Tl)!=h1)&&(Jt=function(e){var t=Yi(e),r=t==cW?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case dW:return v1;case pW:return y1;case gW:return m1;case fW:return b1;case yW:return h1}return t});var Iee=re.Uint8Array,mW="__lodash_hash_undefined__";function bW(e){return this.__data__.set(e,mW),this}var hW=bW;function vW(e){return this.__data__.has(e)}var wW=vW;function Pl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Q1;++t<r;)this.add(e[t])}Pl.prototype.add=Pl.prototype.push=hW;Pl.prototype.has=wW;var w1=tr?tr.prototype:void 0,Aee=w1?w1.valueOf:void 0,kW=Object.prototype,Cee=kW.hasOwnProperty,xW=Object.prototype,Mee=xW.hasOwnProperty,jee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),See=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$ee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function IW(e){return e==null?[]:Array.isArray(e)?e:[e]}var AW=IW,io="@imgly/plugin-ai-sticker-generation-web",ye="ly.img.ai.sticker-generation";function CW(e){return{async initialize({cesdk:t}){if(t==null)return;pY(t,io,"0.2.6"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0);let r=$1.get().register({type:"plugin",sceneMode:"Design",id:io,pluginId:io,label:"Generate Sticker",meta:{panelId:ye},execute:()=>{t.ui.isPanelOpen(ye)?t.ui.closePanel(ye):t.ui.openPanel(ye)}});t.ui.addIconSet(AH,MH),t.i18n.setTranslations({en:{[`panel.${ye}`]:"Sticker Generation",[`${ye}.dock.label`]:"AI Sticker"}});let i=e.providers?.text2sticker,n=await Promise.all(AW(i).map(o=>o({cesdk:t})));if(!(n.length>0)){r();return}let a=await IH("sticker",{fromText:n,fromImage:[]},{cesdk:t},e);a.history?.assetSourceId!=null,a.panel.builderRenderFunction!=null?(t.ui.registerPanel(ye,a.panel.builderRenderFunction),fY({cesdk:t,panelId:ye})):r()}}}var MW=CW,jW=e=>({name:io,version:"0.2.6",...MW(e)}),W1=jW;var Bl=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,g=[...this.getCurrentAssets()];if(c&&c.length>0&&(g=g.filter(k=>k.groups&&c.some(C=>k.groups?.includes(C)))),l&&l.length>0&&(g=g.filter(k=>!k.groups||!l.some(C=>k.groups?.includes(C)))),o){let k=o.toLowerCase();g=g.filter(C=>{let v=C.label?.[n]?.toLowerCase(),w=C.tags?.[n]||[];return v&&v.includes(k)||w.some(m=>m.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];g=g.filter(C=>{let v=C.tags?.[n]||[];return k.some(w=>v.includes(w))})}a&&g.sort((k,C)=>{let v=this.activeAssetIds.has(k.id),w=this.activeAssetIds.has(C.id);return v&&!w?-1:!v&&w?1:0}),d&&d!=="id"?g.sort((k,C)=>{let v=k.meta?.[d],w=C.meta?.[d];return v===void 0?1:w===void 0?-1:typeof v=="string"&&typeof w=="string"?u==="Descending"?w.localeCompare(v):v.localeCompare(w):typeof v=="number"&&typeof w=="number"?u==="Descending"?w-v:v-w:0}):d==="id"&&g.sort((k,C)=>u==="Descending"?C.id.localeCompare(k.id):k.id.localeCompare(C.id));let p=g.length,y=r*i,f=y+i,h=g.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)})),M=f<p?r+1:void 0;return{assets:h,currentPage:r,nextPage:M,total:p}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=SW(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 K1(e,t,r=[]){return new Bl(e,t,r)}function SW(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 Zi="ly.img.ai.apps";var V=Os("apps"),$W=512,EW=128,J1=e=>({async initialize({cesdk:t}){if(t==null)return;Ns(t,Zi,"0.2.6");let{providers:r}=e;t.addPlugin(Bg({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(rc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(dd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(kp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(W1({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),NW(t),_W(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function _W(e,t){OW(e);let r=LW(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(V,({builder:a})=>{a.Library(V,{entries:[V],onSelect:async o=>{tn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:V,sourceIds:[V],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:a})=>a,cardLabelPosition:()=>"inside"});let i=`${V}.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?tn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??V,u=e.ui.isPanelOpen(l),d=o.global(`${V}.isGenerating`,!1);a.Button(`${V}.dock.button`,{label:"AI",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(g=>{g.startsWith("ly.img.ai.")&&g!==l&&e.ui.closePanel(g),!u&&g==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(g)}),c!=null?c.execute():u?e.ui.closePanel(V):e.ui.openPanel(V)}})})}function LW(e,t){let r=tn.get(),i=K1(V,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,sceneMode:c})=>a==="Design"&&c==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:c,thumbUri:t.baseURL!=null?TW(t.baseURL,o):void 0,width:$W,height:EW}}).filter(ds)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(V)});return i}function TW(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 OW(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(b=>typeof b!="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(b=>{let h=e.ui.getAssetLibraryEntry(b);if(h==null)return!1;let M=h.sceneMode;return typeof M=="string"?h.sceneMode===u||h.sceneMode==="All":typeof M=="function"?h.sourceIds.some(k=>{let C=M(e.version.startsWith("1.51.")?k:{sourceId:k});return C===u||C==="All"}):!0});if(d.length===0)return;let g=s;g==null&&(g=`libraries.${a}.label`);let p=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:g,icon:f,isDisabled:y,isSelected:p,onClick:()=>{p?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(b=>{(b===V||b.startsWith("ly.img.ai."))&&e.ui.closePanel(b)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}function NW(e){e.i18n.setTranslations({en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var DW=e=>({name:Zi,version:"0.2.6",...J1(e)}),Hee=DW;export{Hee as default};
665
+ `,RH=UH,FH=typeof global=="object"&&global&&global.Object===Object&&global,nf=FH,VH=typeof self=="object"&&self&&self.Object===Object&&self,BH=nf||VH||Function("return this")(),ae=BH,qH=ae.Symbol,or=qH,of=Object.prototype,GH=of.hasOwnProperty,YH=of.toString,Hi=or?or.toStringTag:void 0;function HH(e){var t=GH.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=YH.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var ZH=HH,QH=Object.prototype,WH=QH.toString;function KH(e){return WH.call(e)}var JH=KH,XH="[object Null]",eZ="[object Undefined]",k1=or?or.toStringTag:void 0;function tZ(e){return e==null?e===void 0?eZ:XH:k1&&k1 in Object(e)?ZH(e):JH(e)}var ln=tZ;function rZ(e){return e!=null&&typeof e=="object"}var rs=rZ,See=Array.isArray;function iZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var af=iZ,nZ="[object AsyncFunction]",oZ="[object Function]",aZ="[object GeneratorFunction]",lZ="[object Proxy]";function sZ(e){if(!af(e))return!1;var t=ln(e);return t==oZ||t==aZ||t==nZ||t==lZ}var uZ=sZ,cZ=ae["__core-js_shared__"],Ul=cZ,x1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dZ(e){return!!x1&&x1 in e}var pZ=dZ,gZ=Function.prototype,fZ=gZ.toString;function yZ(e){if(e!=null){try{return fZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=yZ,mZ=/[\\^$.*+?()[\]{}|]/g,hZ=/^\[object .+?Constructor\]$/,bZ=Function.prototype,vZ=Object.prototype,wZ=bZ.toString,kZ=vZ.hasOwnProperty,xZ=RegExp("^"+wZ.call(kZ).replace(mZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function IZ(e){if(!af(e)||pZ(e))return!1;var t=uZ(e)?xZ:hZ;return t.test(Ve(e))}var AZ=IZ;function CZ(e,t){return e?.[t]}var MZ=CZ;function jZ(e,t){var r=MZ(e,t);return AZ(r)?r:void 0}var cr=jZ,SZ=cr(ae,"WeakMap"),Hl=SZ;function $Z(e,t){return e===t||e!==e&&t!==t}var _Z=$Z,EZ=9007199254740991;function LZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EZ}var TZ=LZ,$ee=Object.prototype,OZ="[object Arguments]";function NZ(e){return rs(e)&&ln(e)==OZ}var I1=NZ,lf=Object.prototype,DZ=lf.hasOwnProperty,PZ=lf.propertyIsEnumerable,_ee=I1(function(){return arguments}())?I1:function(e){return rs(e)&&DZ.call(e,"callee")&&!PZ.call(e,"callee")},sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,A1=sf&&typeof module=="object"&&module&&!module.nodeType&&module,zZ=A1&&A1.exports===sf,C1=zZ?ae.Buffer:void 0,Eee=C1?C1.isBuffer:void 0,UZ="[object Arguments]",RZ="[object Array]",FZ="[object Boolean]",VZ="[object Date]",BZ="[object Error]",qZ="[object Function]",GZ="[object Map]",YZ="[object Number]",HZ="[object Object]",ZZ="[object RegExp]",QZ="[object Set]",WZ="[object String]",KZ="[object WeakMap]",JZ="[object ArrayBuffer]",XZ="[object DataView]",eQ="[object Float32Array]",tQ="[object Float64Array]",rQ="[object Int8Array]",iQ="[object Int16Array]",nQ="[object Int32Array]",oQ="[object Uint8Array]",aQ="[object Uint8ClampedArray]",lQ="[object Uint16Array]",sQ="[object Uint32Array]",B={};B[eQ]=B[tQ]=B[rQ]=B[iQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=!0;B[UZ]=B[RZ]=B[JZ]=B[FZ]=B[XZ]=B[VZ]=B[BZ]=B[qZ]=B[GZ]=B[YZ]=B[HZ]=B[ZZ]=B[QZ]=B[WZ]=B[KZ]=!1;function uQ(e){return rs(e)&&TZ(e.length)&&!!B[ln(e)]}var cQ=uQ;function dQ(e){return function(t){return e(t)}}var pQ=dQ,uf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ki=uf&&typeof module=="object"&&module&&!module.nodeType&&module,gQ=Ki&&Ki.exports===uf,Rl=gQ&&nf.process,fQ=function(){try{var e=Ki&&Ki.require&&Ki.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),M1=fQ,j1=M1&&M1.isTypedArray,Lee=j1?pQ(j1):cQ,yQ=Object.prototype,Tee=yQ.hasOwnProperty;function mQ(e,t){return function(r){return e(t(r))}}var hQ=mQ,Oee=hQ(Object.keys,Object),bQ=Object.prototype,Nee=bQ.hasOwnProperty,vQ=cr(Object,"create"),en=vQ;function wQ(){this.__data__=en?en(null):{},this.size=0}var kQ=wQ;function xQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IQ=xQ,AQ="__lodash_hash_undefined__",CQ=Object.prototype,MQ=CQ.hasOwnProperty;function jQ(e){var t=this.__data__;if(en){var r=t[e];return r===AQ?void 0:r}return MQ.call(t,e)?t[e]:void 0}var SQ=jQ,$Q=Object.prototype,_Q=$Q.hasOwnProperty;function EQ(e){var t=this.__data__;return en?t[e]!==void 0:_Q.call(t,e)}var LQ=EQ,TQ="__lodash_hash_undefined__";function OQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=en&&t===void 0?TQ:t,this}var NQ=OQ;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=kQ;dr.prototype.delete=IQ;dr.prototype.get=SQ;dr.prototype.has=LQ;dr.prototype.set=NQ;var S1=dr;function DQ(){this.__data__=[],this.size=0}var PQ=DQ;function zQ(e,t){for(var r=e.length;r--;)if(_Z(e[r][0],t))return r;return-1}var xo=zQ,UQ=Array.prototype,RQ=UQ.splice;function FQ(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RQ.call(t,r,1),--this.size,!0}var VQ=FQ;function BQ(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var qQ=BQ;function GQ(e){return xo(this.__data__,e)>-1}var YQ=GQ;function HQ(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 ZQ=HQ;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=PQ;pr.prototype.delete=VQ;pr.prototype.get=qQ;pr.prototype.has=YQ;pr.prototype.set=ZQ;var Io=pr,QQ=cr(ae,"Map"),tn=QQ;function WQ(){this.size=0,this.__data__={hash:new S1,map:new(tn||Io),string:new S1}}var KQ=WQ;function JQ(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XQ=JQ;function eW(e,t){var r=e.__data__;return XQ(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ao=eW;function tW(e){var t=Ao(this,e).delete(e);return this.size-=t?1:0,t}var rW=tW;function iW(e){return Ao(this,e).get(e)}var nW=iW;function oW(e){return Ao(this,e).has(e)}var aW=oW;function lW(e,t){var r=Ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sW=lW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=KQ;gr.prototype.delete=rW;gr.prototype.get=nW;gr.prototype.has=aW;gr.prototype.set=sW;var cf=gr;function uW(){this.__data__=new Io,this.size=0}var cW=uW;function dW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pW=dW;function gW(e){return this.__data__.get(e)}var fW=gW;function yW(e){return this.__data__.has(e)}var mW=yW,hW=200;function bW(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!tn||i.length<hW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cf(i)}return r.set(e,t),this.size=r.size,this}var vW=bW;function sn(e){var t=this.__data__=new Io(e);this.size=t.size}sn.prototype.clear=cW;sn.prototype.delete=pW;sn.prototype.get=fW;sn.prototype.has=mW;sn.prototype.set=vW;var wW=Object.prototype,Dee=wW.propertyIsEnumerable,kW=cr(ae,"DataView"),Zl=kW,xW=cr(ae,"Promise"),Ql=xW,IW=cr(ae,"Set"),Wl=IW,$1="[object Map]",AW="[object Object]",_1="[object Promise]",E1="[object Set]",L1="[object WeakMap]",T1="[object DataView]",CW=Ve(Zl),MW=Ve(tn),jW=Ve(Ql),SW=Ve(Wl),$W=Ve(Hl),rr=ln;(Zl&&rr(new Zl(new ArrayBuffer(1)))!=T1||tn&&rr(new tn)!=$1||Ql&&rr(Ql.resolve())!=_1||Wl&&rr(new Wl)!=E1||Hl&&rr(new Hl)!=L1)&&(rr=function(e){var t=ln(e),r=t==AW?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case CW:return T1;case MW:return $1;case jW:return _1;case SW:return E1;case $W:return L1}return t});var Pee=ae.Uint8Array,_W="__lodash_hash_undefined__";function EW(e){return this.__data__.set(e,_W),this}var LW=EW;function TW(e){return this.__data__.has(e)}var OW=TW;function Kl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cf;++t<r;)this.add(e[t])}Kl.prototype.add=Kl.prototype.push=LW;Kl.prototype.has=OW;var O1=or?or.prototype:void 0,zee=O1?O1.valueOf:void 0,NW=Object.prototype,Uee=NW.hasOwnProperty,DW=Object.prototype,Ree=DW.hasOwnProperty,Fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function PW(e){return e==null?[]:Array.isArray(e)?e:[e]}var zW=PW,bo="@imgly/plugin-ai-sticker-generation-web",ve="ly.img.ai.sticker-generation";function UW(e){return{async initialize({cesdk:t}){if(t==null)return;MY(t,bo,"0.2.7"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0);let r=B1.get().register({type:"plugin",sceneMode:"Design",id:bo,pluginId:bo,label:"Generate Sticker",meta:{panelId:ve},execute:()=>{t.ui.isPanelOpen(ve)?t.ui.closePanel(ve):t.ui.openPanel(ve)}});t.ui.addIconSet(zH,RH),t.i18n.setTranslations({en:{[`panel.${ve}`]:"Sticker Generation",[`${ve}.dock.label`]:"AI Sticker"}});let i=e.providers?.text2sticker,n=await Promise.all(zW(i).map(o=>o({cesdk:t})));if(!(n.length>0)){r();return}let a=await PH("sticker",{fromText:n,fromImage:[]},{cesdk:t},e);a.history?.assetSourceId!=null,a.panel.builderRenderFunction!=null?(t.ui.registerPanel(ve,a.panel.builderRenderFunction),SY({cesdk:t,panelId:ve})):r()}}}var RW=UW,FW=e=>({name:bo,version:"0.2.7",...RW(e)}),df=FW;var is=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 y=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return y&&y.includes(k)||x.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let y=I.tags?.[n]||[];return k.some(x=>y.includes(x))})}a&&p.sort((k,I)=>{let y=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return y&&!x?-1:!y&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let y=k.meta?.[d],x=I.meta?.[d];return y===void 0?1:x===void 0?-1:typeof y=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(y):y.localeCompare(x):typeof y=="number"&&typeof x=="number"?u==="Descending"?x-y:y-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),w=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:w,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=VW(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 pf(e,t,r=[]){return new is(e,t,r)}function VW(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 un="ly.img.ai.apps";var Y=Zs("apps"),BW=512,qW=128,gf=e=>({async initialize({cesdk:t}){if(t==null)return;Qs(t,un,"0.2.7");let{providers:r}=e;t.addPlugin(i1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(mc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Cd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Np({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(df({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),QW(t),GW(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function GW(e,t){ZW(e);let r=YW(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{mn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:a})=>a,cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?mn.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:"AI",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 YW(e,t){let r=mn.get(),i=pf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,sceneMode:c})=>a==="Design"&&c==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:c,thumbUri:t.baseURL!=null?HW(t.baseURL,o):void 0,width:BW,height:qW}}).filter(Cs)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function HW(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 ZW(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let w=b.sceneMode;return typeof w=="string"?b.sceneMode===u||b.sceneMode==="All":typeof w=="function"?b.sourceIds.some(k=>{let I=w(e.version.startsWith("1.51.")?k:{sourceId:k});return I===u||I==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),m=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function QW(e){e.i18n.setTranslations({en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var WW=e=>({name:un,version:"0.2.7",...gf(e)}),lte=WW;export{lte as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  @imgly/plugin-utils/dist/index.mjs: