@imgly/plugin-ai-apps-web 1.68.0-rc.1 → 1.69.0-nightly.20260130
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/.tsbuildinfo +1 -1
- package/dist/index.mjs +28 -28
- package/dist/index.mjs.map +3 -3
- package/package.json +8 -8
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var Mf=typeof global=="object"&&global&&global.Object===Object&&global,Cs=Mf,jf=typeof self=="object"&&self&&self.Object===Object&&self,Sf=Cs||jf||Function("return this")(),K=Sf,$f=K.Symbol,He=$f,As=Object.prototype,_f=As.hasOwnProperty,Ef=As.toString,mr=He?He.toStringTag:void 0;function Lf(e){var t=_f.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=Ef.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var Tf=Lf,Of=Object.prototype,Nf=Of.toString;function Df(e){return Nf.call(e)}var Pf=Df,zf="[object Null]",Uf="[object Undefined]",cs=He?He.toStringTag:void 0;function Rf(e){return e==null?e===void 0?Uf:zf:cs&&cs in Object(e)?Tf(e):Pf(e)}var wr=Rf;function Ff(e){return e!=null&&typeof e=="object"}var Po=Ff,CK=Array.isArray;function Vf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ms=Vf,Bf="[object AsyncFunction]",qf="[object Function]",Gf="[object GeneratorFunction]",Yf="[object Proxy]";function Hf(e){if(!Ms(e))return!1;var t=wr(e);return t==qf||t==Gf||t==Bf||t==Yf}var Zf=Hf,Qf=K["__core-js_shared__"],_o=Qf,ds=function(){var e=/[^.]+$/.exec(_o&&_o.keys&&_o.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Wf(e){return!!ds&&ds in e}var Kf=Wf,Jf=Function.prototype,Xf=Jf.toString;function ey(e){if(e!=null){try{return Xf.call(e)}catch{}try{return e+""}catch{}}return""}var $e=ey,ty=/[\\^$.*+?()[\]{}|]/g,ry=/^\[object .+?Constructor\]$/,iy=Function.prototype,ny=Object.prototype,oy=iy.toString,ay=ny.hasOwnProperty,ly=RegExp("^"+oy.call(ay).replace(ty,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sy(e){if(!Ms(e)||Kf(e))return!1;var t=Zf(e)?ly:ry;return t.test($e(e))}var uy=sy;function cy(e,t){return e?.[t]}var dy=cy;function py(e,t){var r=dy(e,t);return uy(r)?r:void 0}var Ze=py,gy=Ze(K,"WeakMap"),Lo=gy;function fy(e,t){return e===t||e!==e&&t!==t}var yy=fy,my=9007199254740991;function by(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=my}var hy=by;var AK=Object.prototype;var vy="[object Arguments]";function wy(e){return Po(e)&&wr(e)==vy}var ps=wy,js=Object.prototype,ky=js.hasOwnProperty,xy=js.propertyIsEnumerable,MK=ps(function(){return arguments}())?ps:function(e){return Po(e)&&ky.call(e,"callee")&&!xy.call(e,"callee")};var Ss=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gs=Ss&&typeof module=="object"&&module&&!module.nodeType&&module,Iy=gs&&gs.exports===Ss,fs=Iy?K.Buffer:void 0,jK=fs?fs.isBuffer:void 0;var Cy="[object Arguments]",Ay="[object Array]",My="[object Boolean]",jy="[object Date]",Sy="[object Error]",$y="[object Function]",_y="[object Map]",Ey="[object Number]",Ly="[object Object]",Ty="[object RegExp]",Oy="[object Set]",Ny="[object String]",Dy="[object WeakMap]",Py="[object ArrayBuffer]",zy="[object DataView]",Uy="[object Float32Array]",Ry="[object Float64Array]",Fy="[object Int8Array]",Vy="[object Int16Array]",By="[object Int32Array]",qy="[object Uint8Array]",Gy="[object Uint8ClampedArray]",Yy="[object Uint16Array]",Hy="[object Uint32Array]",L={};L[Uy]=L[Ry]=L[Fy]=L[Vy]=L[By]=L[qy]=L[Gy]=L[Yy]=L[Hy]=!0;L[Cy]=L[Ay]=L[Py]=L[My]=L[zy]=L[jy]=L[Sy]=L[$y]=L[_y]=L[Ey]=L[Ly]=L[Ty]=L[Oy]=L[Ny]=L[Dy]=!1;function Zy(e){return Po(e)&&hy(e.length)&&!!L[wr(e)]}var Qy=Zy;function Wy(e){return function(t){return e(t)}}var Ky=Wy,$s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=$s&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=br&&br.exports===$s,Eo=Jy&&Cs.process,Xy=function(){try{var e=br&&br.require&&br.require("util").types;return e||Eo&&Eo.binding&&Eo.binding("util")}catch{}}(),ys=Xy,ms=ys&&ys.isTypedArray,SK=ms?Ky(ms):Qy;var em=Object.prototype,$K=em.hasOwnProperty;function tm(e,t){return function(r){return e(t(r))}}var rm=tm,_K=rm(Object.keys,Object);var im=Object.prototype,EK=im.hasOwnProperty;var nm=Ze(Object,"create"),hr=nm;function om(){this.__data__=hr?hr(null):{},this.size=0}var am=om;function lm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var sm=lm,um="__lodash_hash_undefined__",cm=Object.prototype,dm=cm.hasOwnProperty;function pm(e){var t=this.__data__;if(hr){var r=t[e];return r===um?void 0:r}return dm.call(t,e)?t[e]:void 0}var gm=pm,fm=Object.prototype,ym=fm.hasOwnProperty;function mm(e){var t=this.__data__;return hr?t[e]!==void 0:ym.call(t,e)}var bm=mm,hm="__lodash_hash_undefined__";function vm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?hm:t,this}var wm=vm;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=am;Qe.prototype.delete=sm;Qe.prototype.get=gm;Qe.prototype.has=bm;Qe.prototype.set=wm;var bs=Qe;function km(){this.__data__=[],this.size=0}var xm=km;function Im(e,t){for(var r=e.length;r--;)if(yy(e[r][0],t))return r;return-1}var mn=Im,Cm=Array.prototype,Am=Cm.splice;function Mm(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Am.call(t,r,1),--this.size,!0}var jm=Mm;function Sm(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var $m=Sm;function _m(e){return mn(this.__data__,e)>-1}var Em=_m;function Lm(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Tm=Lm;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=xm;We.prototype.delete=jm;We.prototype.get=$m;We.prototype.has=Em;We.prototype.set=Tm;var bn=We,Om=Ze(K,"Map"),vr=Om;function Nm(){this.size=0,this.__data__={hash:new bs,map:new(vr||bn),string:new bs}}var Dm=Nm;function Pm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zm=Pm;function Um(e,t){var r=e.__data__;return zm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=Um;function Rm(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var Fm=Rm;function Vm(e){return hn(this,e).get(e)}var Bm=Vm;function qm(e){return hn(this,e).has(e)}var Gm=qm;function Ym(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Hm=Ym;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=Dm;Ke.prototype.delete=Fm;Ke.prototype.get=Bm;Ke.prototype.has=Gm;Ke.prototype.set=Hm;var _s=Ke;function Zm(){this.__data__=new bn,this.size=0}var Qm=Zm;function Wm(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Km=Wm;function Jm(e){return this.__data__.get(e)}var Xm=Jm;function eb(e){return this.__data__.has(e)}var tb=eb,rb=200;function ib(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!vr||i.length<rb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new _s(i)}return r.set(e,t),this.size=r.size,this}var nb=ib;function kr(e){var t=this.__data__=new bn(e);this.size=t.size}kr.prototype.clear=Qm;kr.prototype.delete=Km;kr.prototype.get=Xm;kr.prototype.has=tb;kr.prototype.set=nb;var ob=Object.prototype,LK=ob.propertyIsEnumerable;var ab=Ze(K,"DataView"),To=ab,lb=Ze(K,"Promise"),Oo=lb,sb=Ze(K,"Set"),No=sb,hs="[object Map]",ub="[object Object]",vs="[object Promise]",ws="[object Set]",ks="[object WeakMap]",xs="[object DataView]",cb=$e(To),db=$e(vr),pb=$e(Oo),gb=$e(No),fb=$e(Lo),Ye=wr;(To&&Ye(new To(new ArrayBuffer(1)))!=xs||vr&&Ye(new vr)!=hs||Oo&&Ye(Oo.resolve())!=vs||No&&Ye(new No)!=ws||Lo&&Ye(new Lo)!=ks)&&(Ye=function(e){var t=wr(e),r=t==ub?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case cb:return xs;case db:return hs;case pb:return vs;case gb:return ws;case fb:return ks}return t});var TK=K.Uint8Array;var yb="__lodash_hash_undefined__";function mb(e){return this.__data__.set(e,yb),this}var bb=mb;function hb(e){return this.__data__.has(e)}var vb=hb;function Do(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new _s;++t<r;)this.add(e[t])}Do.prototype.add=Do.prototype.push=bb;Do.prototype.has=vb;var Is=He?He.prototype:void 0,OK=Is?Is.valueOf:void 0;var wb=Object.prototype,NK=wb.hasOwnProperty;var kb=Object.prototype,DK=kb.hasOwnProperty;var PK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),zK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),UK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function xb(e){return e!==void 0}var Es=xb;var Ib=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Ib,Cb=typeof self=="object"&&self&&self.Object===Object&&self,Ab=Ys||Cb||Function("return this")(),J=Ab,Mb=J.Symbol,Xe=Mb,Hs=Object.prototype,jb=Hs.hasOwnProperty,Sb=Hs.toString,xr=Xe?Xe.toStringTag:void 0;function $b(e){var t=jb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Sb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var _b=$b,Eb=Object.prototype,Lb=Eb.toString;function Tb(e){return Lb.call(e)}var Ob=Tb,Nb="[object Null]",Db="[object Undefined]",Ls=Xe?Xe.toStringTag:void 0;function Pb(e){return e==null?e===void 0?Db:Nb:Ls&&Ls in Object(e)?_b(e):Ob(e)}var Mr=Pb;function zb(e){return e!=null&&typeof e=="object"}var Yo=zb,FK=Array.isArray;function Ub(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zs=Ub,Rb="[object AsyncFunction]",Fb="[object Function]",Vb="[object GeneratorFunction]",Bb="[object Proxy]";function qb(e){if(!Zs(e))return!1;var t=Mr(e);return t==Fb||t==Vb||t==Rb||t==Bb}var Gb=qb,Yb=J["__core-js_shared__"],zo=Yb,Ts=function(){var e=/[^.]+$/.exec(zo&&zo.keys&&zo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hb(e){return!!Ts&&Ts in e}var Zb=Hb,Qb=Function.prototype,Wb=Qb.toString;function Kb(e){if(e!=null){try{return Wb.call(e)}catch{}try{return e+""}catch{}}return""}var _e=Kb,Jb=/[\\^$.*+?()[\]{}|]/g,Xb=/^\[object .+?Constructor\]$/,eh=Function.prototype,th=Object.prototype,rh=eh.toString,ih=th.hasOwnProperty,nh=RegExp("^"+rh.call(ih).replace(Jb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oh(e){if(!Zs(e)||Zb(e))return!1;var t=Gb(e)?nh:Xb;return t.test(_e(e))}var ah=oh;function lh(e,t){return e?.[t]}var sh=lh;function uh(e,t){var r=sh(e,t);return ah(r)?r:void 0}var et=uh,ch=et(J,"WeakMap"),Fo=ch;function dh(e,t){return e===t||e!==e&&t!==t}var ph=dh,gh=9007199254740991;function fh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gh}var yh=fh,VK=Object.prototype,mh="[object Arguments]";function bh(e){return Yo(e)&&Mr(e)==mh}var Os=bh,Qs=Object.prototype,hh=Qs.hasOwnProperty,vh=Qs.propertyIsEnumerable,BK=Os(function(){return arguments}())?Os:function(e){return Yo(e)&&hh.call(e,"callee")&&!vh.call(e,"callee")},Ws=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ns=Ws&&typeof module=="object"&&module&&!module.nodeType&&module,wh=Ns&&Ns.exports===Ws,Ds=wh?J.Buffer:void 0,qK=Ds?Ds.isBuffer:void 0,kh="[object Arguments]",xh="[object Array]",Ih="[object Boolean]",Ch="[object Date]",Ah="[object Error]",Mh="[object Function]",jh="[object Map]",Sh="[object Number]",$h="[object Object]",_h="[object RegExp]",Eh="[object Set]",Lh="[object String]",Th="[object WeakMap]",Oh="[object ArrayBuffer]",Nh="[object DataView]",Dh="[object Float32Array]",Ph="[object Float64Array]",zh="[object Int8Array]",Uh="[object Int16Array]",Rh="[object Int32Array]",Fh="[object Uint8Array]",Vh="[object Uint8ClampedArray]",Bh="[object Uint16Array]",qh="[object Uint32Array]",T={};T[Dh]=T[Ph]=T[zh]=T[Uh]=T[Rh]=T[Fh]=T[Vh]=T[Bh]=T[qh]=!0;T[kh]=T[xh]=T[Oh]=T[Ih]=T[Nh]=T[Ch]=T[Ah]=T[Mh]=T[jh]=T[Sh]=T[$h]=T[_h]=T[Eh]=T[Lh]=T[Th]=!1;function Gh(e){return Yo(e)&&yh(e.length)&&!!T[Mr(e)]}var Yh=Gh;function Hh(e){return function(t){return e(t)}}var Zh=Hh,Ks=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=Ks&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Ir&&Ir.exports===Ks,Uo=Qh&&Ys.process,Wh=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Uo&&Uo.binding&&Uo.binding("util")}catch{}}(),Ps=Wh,zs=Ps&&Ps.isTypedArray,GK=zs?Zh(zs):Yh,Kh=Object.prototype,YK=Kh.hasOwnProperty;function Jh(e,t){return function(r){return e(t(r))}}var Xh=Jh,HK=Xh(Object.keys,Object),e0=Object.prototype,ZK=e0.hasOwnProperty,t0=et(Object,"create"),Cr=t0;function r0(){this.__data__=Cr?Cr(null):{},this.size=0}var i0=r0;function n0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o0=n0,a0="__lodash_hash_undefined__",l0=Object.prototype,s0=l0.hasOwnProperty;function u0(e){var t=this.__data__;if(Cr){var r=t[e];return r===a0?void 0:r}return s0.call(t,e)?t[e]:void 0}var c0=u0,d0=Object.prototype,p0=d0.hasOwnProperty;function g0(e){var t=this.__data__;return Cr?t[e]!==void 0:p0.call(t,e)}var f0=g0,y0="__lodash_hash_undefined__";function m0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?y0:t,this}var b0=m0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=i0;tt.prototype.delete=o0;tt.prototype.get=c0;tt.prototype.has=f0;tt.prototype.set=b0;var Us=tt;function h0(){this.__data__=[],this.size=0}var v0=h0;function w0(e,t){for(var r=e.length;r--;)if(ph(e[r][0],t))return r;return-1}var vn=w0,k0=Array.prototype,x0=k0.splice;function I0(e){var t=this.__data__,r=vn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x0.call(t,r,1),--this.size,!0}var C0=I0;function A0(e){var t=this.__data__,r=vn(t,e);return r<0?void 0:t[r][1]}var M0=A0;function j0(e){return vn(this.__data__,e)>-1}var S0=j0;function $0(e,t){var r=this.__data__,i=vn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var _0=$0;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=v0;rt.prototype.delete=C0;rt.prototype.get=M0;rt.prototype.has=S0;rt.prototype.set=_0;var wn=rt,E0=et(J,"Map"),Ar=E0;function L0(){this.size=0,this.__data__={hash:new Us,map:new(Ar||wn),string:new Us}}var T0=L0;function O0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N0=O0;function D0(e,t){var r=e.__data__;return N0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var kn=D0;function P0(e){var t=kn(this,e).delete(e);return this.size-=t?1:0,t}var z0=P0;function U0(e){return kn(this,e).get(e)}var R0=U0;function F0(e){return kn(this,e).has(e)}var V0=F0;function B0(e,t){var r=kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q0=B0;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=T0;it.prototype.delete=z0;it.prototype.get=R0;it.prototype.has=V0;it.prototype.set=q0;var Js=it;function G0(){this.__data__=new wn,this.size=0}var Y0=G0;function H0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z0=H0;function Q0(e){return this.__data__.get(e)}var W0=Q0;function K0(e){return this.__data__.has(e)}var J0=K0,X0=200;function e2(e,t){var r=this.__data__;if(r instanceof wn){var i=r.__data__;if(!Ar||i.length<X0-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Js(i)}return r.set(e,t),this.size=r.size,this}var t2=e2;function jr(e){var t=this.__data__=new wn(e);this.size=t.size}jr.prototype.clear=Y0;jr.prototype.delete=Z0;jr.prototype.get=W0;jr.prototype.has=J0;jr.prototype.set=t2;var r2=Object.prototype,QK=r2.propertyIsEnumerable,i2=et(J,"DataView"),Vo=i2,n2=et(J,"Promise"),Bo=n2,o2=et(J,"Set"),qo=o2,Rs="[object Map]",a2="[object Object]",Fs="[object Promise]",Vs="[object Set]",Bs="[object WeakMap]",qs="[object DataView]",l2=_e(Vo),s2=_e(Ar),u2=_e(Bo),c2=_e(qo),d2=_e(Fo),Je=Mr;(Vo&&Je(new Vo(new ArrayBuffer(1)))!=qs||Ar&&Je(new Ar)!=Rs||Bo&&Je(Bo.resolve())!=Fs||qo&&Je(new qo)!=Vs||Fo&&Je(new Fo)!=Bs)&&(Je=function(e){var t=Mr(e),r=t==a2?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case l2:return qs;case s2:return Rs;case u2:return Fs;case c2:return Vs;case d2:return Bs}return t});var WK=J.Uint8Array,p2="__lodash_hash_undefined__";function g2(e){return this.__data__.set(e,p2),this}var f2=g2;function y2(e){return this.__data__.has(e)}var m2=y2;function Go(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Js;++t<r;)this.add(e[t])}Go.prototype.add=Go.prototype.push=f2;Go.prototype.has=m2;var Gs=Xe?Xe.prototype:void 0,KK=Gs?Gs.valueOf:void 0,b2=Object.prototype,JK=b2.hasOwnProperty,h2=Object.prototype,XK=h2.hasOwnProperty,eJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),rJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Xs(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var xn=class eu{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new eu),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var v2="ly.img.ai";function tu(e){return`${v2}.${e}`}function ru(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
1
|
+
var Mf=typeof global=="object"&&global&&global.Object===Object&&global,Cs=Mf,jf=typeof self=="object"&&self&&self.Object===Object&&self,Sf=Cs||jf||Function("return this")(),K=Sf,$f=K.Symbol,He=$f,As=Object.prototype,Ef=As.hasOwnProperty,_f=As.toString,mr=He?He.toStringTag:void 0;function Lf(e){var t=Ef.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=_f.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var Tf=Lf,Of=Object.prototype,Nf=Of.toString;function Df(e){return Nf.call(e)}var Pf=Df,zf="[object Null]",Uf="[object Undefined]",cs=He?He.toStringTag:void 0;function Rf(e){return e==null?e===void 0?Uf:zf:cs&&cs in Object(e)?Tf(e):Pf(e)}var wr=Rf;function Ff(e){return e!=null&&typeof e=="object"}var Po=Ff,wK=Array.isArray;function Vf(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ms=Vf,Bf="[object AsyncFunction]",qf="[object Function]",Gf="[object GeneratorFunction]",Yf="[object Proxy]";function Hf(e){if(!Ms(e))return!1;var t=wr(e);return t==qf||t==Gf||t==Bf||t==Yf}var Zf=Hf,Qf=K["__core-js_shared__"],Eo=Qf,ds=function(){var e=/[^.]+$/.exec(Eo&&Eo.keys&&Eo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Wf(e){return!!ds&&ds in e}var Kf=Wf,Jf=Function.prototype,Xf=Jf.toString;function ey(e){if(e!=null){try{return Xf.call(e)}catch{}try{return e+""}catch{}}return""}var $e=ey,ty=/[\\^$.*+?()[\]{}|]/g,ry=/^\[object .+?Constructor\]$/,iy=Function.prototype,ny=Object.prototype,oy=iy.toString,ay=ny.hasOwnProperty,ly=RegExp("^"+oy.call(ay).replace(ty,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sy(e){if(!Ms(e)||Kf(e))return!1;var t=Zf(e)?ly:ry;return t.test($e(e))}var uy=sy;function cy(e,t){return e?.[t]}var dy=cy;function py(e,t){var r=dy(e,t);return uy(r)?r:void 0}var Ze=py,gy=Ze(K,"WeakMap"),Lo=gy;function fy(e,t){return e===t||e!==e&&t!==t}var yy=fy,my=9007199254740991;function by(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=my}var hy=by;var kK=Object.prototype;var vy="[object Arguments]";function wy(e){return Po(e)&&wr(e)==vy}var ps=wy,js=Object.prototype,ky=js.hasOwnProperty,xy=js.propertyIsEnumerable,xK=ps(function(){return arguments}())?ps:function(e){return Po(e)&&ky.call(e,"callee")&&!xy.call(e,"callee")};var Ss=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gs=Ss&&typeof module=="object"&&module&&!module.nodeType&&module,Iy=gs&&gs.exports===Ss,fs=Iy?K.Buffer:void 0,IK=fs?fs.isBuffer:void 0;var Cy="[object Arguments]",Ay="[object Array]",My="[object Boolean]",jy="[object Date]",Sy="[object Error]",$y="[object Function]",Ey="[object Map]",_y="[object Number]",Ly="[object Object]",Ty="[object RegExp]",Oy="[object Set]",Ny="[object String]",Dy="[object WeakMap]",Py="[object ArrayBuffer]",zy="[object DataView]",Uy="[object Float32Array]",Ry="[object Float64Array]",Fy="[object Int8Array]",Vy="[object Int16Array]",By="[object Int32Array]",qy="[object Uint8Array]",Gy="[object Uint8ClampedArray]",Yy="[object Uint16Array]",Hy="[object Uint32Array]",L={};L[Uy]=L[Ry]=L[Fy]=L[Vy]=L[By]=L[qy]=L[Gy]=L[Yy]=L[Hy]=!0;L[Cy]=L[Ay]=L[Py]=L[My]=L[zy]=L[jy]=L[Sy]=L[$y]=L[Ey]=L[_y]=L[Ly]=L[Ty]=L[Oy]=L[Ny]=L[Dy]=!1;function Zy(e){return Po(e)&&hy(e.length)&&!!L[wr(e)]}var Qy=Zy;function Wy(e){return function(t){return e(t)}}var Ky=Wy,$s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=$s&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=br&&br.exports===$s,_o=Jy&&Cs.process,Xy=function(){try{var e=br&&br.require&&br.require("util").types;return e||_o&&_o.binding&&_o.binding("util")}catch{}}(),ys=Xy,ms=ys&&ys.isTypedArray,CK=ms?Ky(ms):Qy;var em=Object.prototype,AK=em.hasOwnProperty;function tm(e,t){return function(r){return e(t(r))}}var rm=tm,MK=rm(Object.keys,Object);var im=Object.prototype,jK=im.hasOwnProperty;var nm=Ze(Object,"create"),hr=nm;function om(){this.__data__=hr?hr(null):{},this.size=0}var am=om;function lm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var sm=lm,um="__lodash_hash_undefined__",cm=Object.prototype,dm=cm.hasOwnProperty;function pm(e){var t=this.__data__;if(hr){var r=t[e];return r===um?void 0:r}return dm.call(t,e)?t[e]:void 0}var gm=pm,fm=Object.prototype,ym=fm.hasOwnProperty;function mm(e){var t=this.__data__;return hr?t[e]!==void 0:ym.call(t,e)}var bm=mm,hm="__lodash_hash_undefined__";function vm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?hm:t,this}var wm=vm;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=am;Qe.prototype.delete=sm;Qe.prototype.get=gm;Qe.prototype.has=bm;Qe.prototype.set=wm;var bs=Qe;function km(){this.__data__=[],this.size=0}var xm=km;function Im(e,t){for(var r=e.length;r--;)if(yy(e[r][0],t))return r;return-1}var mn=Im,Cm=Array.prototype,Am=Cm.splice;function Mm(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Am.call(t,r,1),--this.size,!0}var jm=Mm;function Sm(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var $m=Sm;function Em(e){return mn(this.__data__,e)>-1}var _m=Em;function Lm(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Tm=Lm;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=xm;We.prototype.delete=jm;We.prototype.get=$m;We.prototype.has=_m;We.prototype.set=Tm;var bn=We,Om=Ze(K,"Map"),vr=Om;function Nm(){this.size=0,this.__data__={hash:new bs,map:new(vr||bn),string:new bs}}var Dm=Nm;function Pm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zm=Pm;function Um(e,t){var r=e.__data__;return zm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=Um;function Rm(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var Fm=Rm;function Vm(e){return hn(this,e).get(e)}var Bm=Vm;function qm(e){return hn(this,e).has(e)}var Gm=qm;function Ym(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Hm=Ym;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=Dm;Ke.prototype.delete=Fm;Ke.prototype.get=Bm;Ke.prototype.has=Gm;Ke.prototype.set=Hm;var Es=Ke;function Zm(){this.__data__=new bn,this.size=0}var Qm=Zm;function Wm(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Km=Wm;function Jm(e){return this.__data__.get(e)}var Xm=Jm;function eb(e){return this.__data__.has(e)}var tb=eb,rb=200;function ib(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!vr||i.length<rb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Es(i)}return r.set(e,t),this.size=r.size,this}var nb=ib;function kr(e){var t=this.__data__=new bn(e);this.size=t.size}kr.prototype.clear=Qm;kr.prototype.delete=Km;kr.prototype.get=Xm;kr.prototype.has=tb;kr.prototype.set=nb;var ob=Object.prototype,SK=ob.propertyIsEnumerable;var ab=Ze(K,"DataView"),To=ab,lb=Ze(K,"Promise"),Oo=lb,sb=Ze(K,"Set"),No=sb,hs="[object Map]",ub="[object Object]",vs="[object Promise]",ws="[object Set]",ks="[object WeakMap]",xs="[object DataView]",cb=$e(To),db=$e(vr),pb=$e(Oo),gb=$e(No),fb=$e(Lo),Ye=wr;(To&&Ye(new To(new ArrayBuffer(1)))!=xs||vr&&Ye(new vr)!=hs||Oo&&Ye(Oo.resolve())!=vs||No&&Ye(new No)!=ws||Lo&&Ye(new Lo)!=ks)&&(Ye=function(e){var t=wr(e),r=t==ub?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case cb:return xs;case db:return hs;case pb:return vs;case gb:return ws;case fb:return ks}return t});var $K=K.Uint8Array;var yb="__lodash_hash_undefined__";function mb(e){return this.__data__.set(e,yb),this}var bb=mb;function hb(e){return this.__data__.has(e)}var vb=hb;function Do(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Es;++t<r;)this.add(e[t])}Do.prototype.add=Do.prototype.push=bb;Do.prototype.has=vb;var Is=He?He.prototype:void 0,EK=Is?Is.valueOf:void 0;var wb=Object.prototype,_K=wb.hasOwnProperty;var kb=Object.prototype,LK=kb.hasOwnProperty;var TK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),OK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),NK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function xb(e){return e!==void 0}var _s=xb;var Ib=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Ib,Cb=typeof self=="object"&&self&&self.Object===Object&&self,Ab=Ys||Cb||Function("return this")(),J=Ab,Mb=J.Symbol,Xe=Mb,Hs=Object.prototype,jb=Hs.hasOwnProperty,Sb=Hs.toString,xr=Xe?Xe.toStringTag:void 0;function $b(e){var t=jb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Sb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var Eb=$b,_b=Object.prototype,Lb=_b.toString;function Tb(e){return Lb.call(e)}var Ob=Tb,Nb="[object Null]",Db="[object Undefined]",Ls=Xe?Xe.toStringTag:void 0;function Pb(e){return e==null?e===void 0?Db:Nb:Ls&&Ls in Object(e)?Eb(e):Ob(e)}var Mr=Pb;function zb(e){return e!=null&&typeof e=="object"}var Yo=zb,PK=Array.isArray;function Ub(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zs=Ub,Rb="[object AsyncFunction]",Fb="[object Function]",Vb="[object GeneratorFunction]",Bb="[object Proxy]";function qb(e){if(!Zs(e))return!1;var t=Mr(e);return t==Fb||t==Vb||t==Rb||t==Bb}var Gb=qb,Yb=J["__core-js_shared__"],zo=Yb,Ts=function(){var e=/[^.]+$/.exec(zo&&zo.keys&&zo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hb(e){return!!Ts&&Ts in e}var Zb=Hb,Qb=Function.prototype,Wb=Qb.toString;function Kb(e){if(e!=null){try{return Wb.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Kb,Jb=/[\\^$.*+?()[\]{}|]/g,Xb=/^\[object .+?Constructor\]$/,eh=Function.prototype,th=Object.prototype,rh=eh.toString,ih=th.hasOwnProperty,nh=RegExp("^"+rh.call(ih).replace(Jb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oh(e){if(!Zs(e)||Zb(e))return!1;var t=Gb(e)?nh:Xb;return t.test(Ee(e))}var ah=oh;function lh(e,t){return e?.[t]}var sh=lh;function uh(e,t){var r=sh(e,t);return ah(r)?r:void 0}var et=uh,ch=et(J,"WeakMap"),Fo=ch;function dh(e,t){return e===t||e!==e&&t!==t}var ph=dh,gh=9007199254740991;function fh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gh}var yh=fh,zK=Object.prototype,mh="[object Arguments]";function bh(e){return Yo(e)&&Mr(e)==mh}var Os=bh,Qs=Object.prototype,hh=Qs.hasOwnProperty,vh=Qs.propertyIsEnumerable,UK=Os(function(){return arguments}())?Os:function(e){return Yo(e)&&hh.call(e,"callee")&&!vh.call(e,"callee")},Ws=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ns=Ws&&typeof module=="object"&&module&&!module.nodeType&&module,wh=Ns&&Ns.exports===Ws,Ds=wh?J.Buffer:void 0,RK=Ds?Ds.isBuffer:void 0,kh="[object Arguments]",xh="[object Array]",Ih="[object Boolean]",Ch="[object Date]",Ah="[object Error]",Mh="[object Function]",jh="[object Map]",Sh="[object Number]",$h="[object Object]",Eh="[object RegExp]",_h="[object Set]",Lh="[object String]",Th="[object WeakMap]",Oh="[object ArrayBuffer]",Nh="[object DataView]",Dh="[object Float32Array]",Ph="[object Float64Array]",zh="[object Int8Array]",Uh="[object Int16Array]",Rh="[object Int32Array]",Fh="[object Uint8Array]",Vh="[object Uint8ClampedArray]",Bh="[object Uint16Array]",qh="[object Uint32Array]",T={};T[Dh]=T[Ph]=T[zh]=T[Uh]=T[Rh]=T[Fh]=T[Vh]=T[Bh]=T[qh]=!0;T[kh]=T[xh]=T[Oh]=T[Ih]=T[Nh]=T[Ch]=T[Ah]=T[Mh]=T[jh]=T[Sh]=T[$h]=T[Eh]=T[_h]=T[Lh]=T[Th]=!1;function Gh(e){return Yo(e)&&yh(e.length)&&!!T[Mr(e)]}var Yh=Gh;function Hh(e){return function(t){return e(t)}}var Zh=Hh,Ks=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=Ks&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Ir&&Ir.exports===Ks,Uo=Qh&&Ys.process,Wh=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Uo&&Uo.binding&&Uo.binding("util")}catch{}}(),Ps=Wh,zs=Ps&&Ps.isTypedArray,FK=zs?Zh(zs):Yh,Kh=Object.prototype,VK=Kh.hasOwnProperty;function Jh(e,t){return function(r){return e(t(r))}}var Xh=Jh,BK=Xh(Object.keys,Object),e0=Object.prototype,qK=e0.hasOwnProperty,t0=et(Object,"create"),Cr=t0;function r0(){this.__data__=Cr?Cr(null):{},this.size=0}var i0=r0;function n0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o0=n0,a0="__lodash_hash_undefined__",l0=Object.prototype,s0=l0.hasOwnProperty;function u0(e){var t=this.__data__;if(Cr){var r=t[e];return r===a0?void 0:r}return s0.call(t,e)?t[e]:void 0}var c0=u0,d0=Object.prototype,p0=d0.hasOwnProperty;function g0(e){var t=this.__data__;return Cr?t[e]!==void 0:p0.call(t,e)}var f0=g0,y0="__lodash_hash_undefined__";function m0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?y0:t,this}var b0=m0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=i0;tt.prototype.delete=o0;tt.prototype.get=c0;tt.prototype.has=f0;tt.prototype.set=b0;var Us=tt;function h0(){this.__data__=[],this.size=0}var v0=h0;function w0(e,t){for(var r=e.length;r--;)if(ph(e[r][0],t))return r;return-1}var vn=w0,k0=Array.prototype,x0=k0.splice;function I0(e){var t=this.__data__,r=vn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x0.call(t,r,1),--this.size,!0}var C0=I0;function A0(e){var t=this.__data__,r=vn(t,e);return r<0?void 0:t[r][1]}var M0=A0;function j0(e){return vn(this.__data__,e)>-1}var S0=j0;function $0(e,t){var r=this.__data__,i=vn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var E0=$0;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=v0;rt.prototype.delete=C0;rt.prototype.get=M0;rt.prototype.has=S0;rt.prototype.set=E0;var wn=rt,_0=et(J,"Map"),Ar=_0;function L0(){this.size=0,this.__data__={hash:new Us,map:new(Ar||wn),string:new Us}}var T0=L0;function O0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N0=O0;function D0(e,t){var r=e.__data__;return N0(t)?r[typeof t=="string"?"string":"hash"]:r.map}var kn=D0;function P0(e){var t=kn(this,e).delete(e);return this.size-=t?1:0,t}var z0=P0;function U0(e){return kn(this,e).get(e)}var R0=U0;function F0(e){return kn(this,e).has(e)}var V0=F0;function B0(e,t){var r=kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q0=B0;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=T0;it.prototype.delete=z0;it.prototype.get=R0;it.prototype.has=V0;it.prototype.set=q0;var Js=it;function G0(){this.__data__=new wn,this.size=0}var Y0=G0;function H0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z0=H0;function Q0(e){return this.__data__.get(e)}var W0=Q0;function K0(e){return this.__data__.has(e)}var J0=K0,X0=200;function e2(e,t){var r=this.__data__;if(r instanceof wn){var i=r.__data__;if(!Ar||i.length<X0-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Js(i)}return r.set(e,t),this.size=r.size,this}var t2=e2;function jr(e){var t=this.__data__=new wn(e);this.size=t.size}jr.prototype.clear=Y0;jr.prototype.delete=Z0;jr.prototype.get=W0;jr.prototype.has=J0;jr.prototype.set=t2;var r2=Object.prototype,GK=r2.propertyIsEnumerable,i2=et(J,"DataView"),Vo=i2,n2=et(J,"Promise"),Bo=n2,o2=et(J,"Set"),qo=o2,Rs="[object Map]",a2="[object Object]",Fs="[object Promise]",Vs="[object Set]",Bs="[object WeakMap]",qs="[object DataView]",l2=Ee(Vo),s2=Ee(Ar),u2=Ee(Bo),c2=Ee(qo),d2=Ee(Fo),Je=Mr;(Vo&&Je(new Vo(new ArrayBuffer(1)))!=qs||Ar&&Je(new Ar)!=Rs||Bo&&Je(Bo.resolve())!=Fs||qo&&Je(new qo)!=Vs||Fo&&Je(new Fo)!=Bs)&&(Je=function(e){var t=Mr(e),r=t==a2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case l2:return qs;case s2:return Rs;case u2:return Fs;case c2:return Vs;case d2:return Bs}return t});var YK=J.Uint8Array,p2="__lodash_hash_undefined__";function g2(e){return this.__data__.set(e,p2),this}var f2=g2;function y2(e){return this.__data__.has(e)}var m2=y2;function Go(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Js;++t<r;)this.add(e[t])}Go.prototype.add=Go.prototype.push=f2;Go.prototype.has=m2;var Gs=Xe?Xe.prototype:void 0,HK=Gs?Gs.valueOf:void 0,b2=Object.prototype,ZK=b2.hasOwnProperty,h2=Object.prototype,QK=h2.hasOwnProperty,WK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),KK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),JK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Xs(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var xn=class eu{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new eu),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var v2="ly.img.ai";function tu(e){return`${v2}.${e}`}function ru(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
2
2
|
Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
|
|
3
3
|
This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
|
|
4
|
-
Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Ro="@imgly/plugin-ai-generation",
|
|
4
|
+
Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Ro="@imgly/plugin-ai-generation",XK=`
|
|
5
5
|
<svg>
|
|
6
6
|
<symbol
|
|
7
7
|
fill="none"
|
|
@@ -62,10 +62,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
62
62
|
|
|
63
63
|
</symbol>
|
|
64
64
|
</svg>
|
|
65
|
-
`;var iu={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var k2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var x2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},I2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Gu=I2,C2=typeof global=="object"&&global&&global.Object===Object&&global,Yu=C2,A2=typeof self=="object"&&self&&self.Object===Object&&self,M2=Yu||A2||Function("return this")(),X=M2,j2=X.Symbol,lt=j2,Hu=Object.prototype,S2=Hu.hasOwnProperty,$2=Hu.toString,Sr=lt?lt.toStringTag:void 0;function _2(e){var t=S2.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=$2.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var E2=_2,L2=Object.prototype,T2=L2.toString;function O2(e){return T2.call(e)}var N2=O2,D2="[object Null]",P2="[object Undefined]",nu=lt?lt.toStringTag:void 0;function z2(e){return e==null?e===void 0?P2:D2:nu&&nu in Object(e)?E2(e):N2(e)}var Vr=z2;function U2(e){return e!=null&&typeof e=="object"}var fa=U2,aJ=Array.isArray;function R2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zu=R2,F2="[object AsyncFunction]",V2="[object Function]",B2="[object GeneratorFunction]",q2="[object Proxy]";function G2(e){if(!Zu(e))return!1;var t=Vr(e);return t==V2||t==B2||t==F2||t==q2}var Y2=G2,H2=X["__core-js_shared__"],Ho=H2,ou=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Z2(e){return!!ou&&ou in e}var Q2=Z2,W2=Function.prototype,K2=W2.toString;function J2(e){if(e!=null){try{return K2.call(e)}catch{}try{return e+""}catch{}}return""}var Le=J2,X2=/[\\^$.*+?()[\]{}|]/g,e4=/^\[object .+?Constructor\]$/,t4=Function.prototype,r4=Object.prototype,i4=t4.toString,n4=r4.hasOwnProperty,o4=RegExp("^"+i4.call(n4).replace(X2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a4(e){if(!Zu(e)||Q2(e))return!1;var t=Y2(e)?o4:e4;return t.test(Le(e))}var l4=a4;function s4(e,t){return e?.[t]}var u4=s4;function c4(e,t){var r=u4(e,t);return l4(r)?r:void 0}var ut=c4,d4=ut(X,"WeakMap"),ra=d4;function p4(e,t){return e===t||e!==e&&t!==t}var g4=p4,f4=9007199254740991;function y4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f4}var m4=y4,lJ=Object.prototype,b4="[object Arguments]";function h4(e){return fa(e)&&Vr(e)==b4}var au=h4,Qu=Object.prototype,v4=Qu.hasOwnProperty,w4=Qu.propertyIsEnumerable,sJ=au(function(){return arguments}())?au:function(e){return fa(e)&&v4.call(e,"callee")&&!w4.call(e,"callee")},Wu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lu=Wu&&typeof module=="object"&&module&&!module.nodeType&&module,k4=lu&&lu.exports===Wu,su=k4?X.Buffer:void 0,uJ=su?su.isBuffer:void 0,x4="[object Arguments]",I4="[object Array]",C4="[object Boolean]",A4="[object Date]",M4="[object Error]",j4="[object Function]",S4="[object Map]",$4="[object Number]",_4="[object Object]",E4="[object RegExp]",L4="[object Set]",T4="[object String]",O4="[object WeakMap]",N4="[object ArrayBuffer]",D4="[object DataView]",P4="[object Float32Array]",z4="[object Float64Array]",U4="[object Int8Array]",R4="[object Int16Array]",F4="[object Int32Array]",V4="[object Uint8Array]",B4="[object Uint8ClampedArray]",q4="[object Uint16Array]",G4="[object Uint32Array]",O={};O[P4]=O[z4]=O[U4]=O[R4]=O[F4]=O[V4]=O[B4]=O[q4]=O[G4]=!0;O[x4]=O[I4]=O[N4]=O[C4]=O[D4]=O[A4]=O[M4]=O[j4]=O[S4]=O[$4]=O[_4]=O[E4]=O[L4]=O[T4]=O[O4]=!1;function Y4(e){return fa(e)&&m4(e.length)&&!!O[Vr(e)]}var H4=Y4;function Z4(e){return function(t){return e(t)}}var Q4=Z4,Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,W4=Dr&&Dr.exports===Ku,Zo=W4&&Yu.process,K4=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),uu=K4,cu=uu&&uu.isTypedArray,cJ=cu?Q4(cu):H4,J4=Object.prototype,dJ=J4.hasOwnProperty;function X4(e,t){return function(r){return e(t(r))}}var e5=X4,pJ=e5(Object.keys,Object),t5=Object.prototype,gJ=t5.hasOwnProperty,r5=ut(Object,"create"),zr=r5;function i5(){this.__data__=zr?zr(null):{},this.size=0}var n5=i5;function o5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a5=o5,l5="__lodash_hash_undefined__",s5=Object.prototype,u5=s5.hasOwnProperty;function c5(e){var t=this.__data__;if(zr){var r=t[e];return r===l5?void 0:r}return u5.call(t,e)?t[e]:void 0}var d5=c5,p5=Object.prototype,g5=p5.hasOwnProperty;function f5(e){var t=this.__data__;return zr?t[e]!==void 0:g5.call(t,e)}var y5=f5,m5="__lodash_hash_undefined__";function b5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?m5:t,this}var h5=b5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=n5;ct.prototype.delete=a5;ct.prototype.get=d5;ct.prototype.has=y5;ct.prototype.set=h5;var du=ct;function v5(){this.__data__=[],this.size=0}var w5=v5;function k5(e,t){for(var r=e.length;r--;)if(g4(e[r][0],t))return r;return-1}var En=k5,x5=Array.prototype,I5=x5.splice;function C5(e){var t=this.__data__,r=En(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():I5.call(t,r,1),--this.size,!0}var A5=C5;function M5(e){var t=this.__data__,r=En(t,e);return r<0?void 0:t[r][1]}var j5=M5;function S5(e){return En(this.__data__,e)>-1}var $5=S5;function _5(e,t){var r=this.__data__,i=En(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var E5=_5;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=w5;dt.prototype.delete=A5;dt.prototype.get=j5;dt.prototype.has=$5;dt.prototype.set=E5;var Ln=dt,L5=ut(X,"Map"),Ur=L5;function T5(){this.size=0,this.__data__={hash:new du,map:new(Ur||Ln),string:new du}}var O5=T5;function N5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var D5=N5;function P5(e,t){var r=e.__data__;return D5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=P5;function z5(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var U5=z5;function R5(e){return Tn(this,e).get(e)}var F5=R5;function V5(e){return Tn(this,e).has(e)}var B5=V5;function q5(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var G5=q5;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=O5;pt.prototype.delete=U5;pt.prototype.get=F5;pt.prototype.has=B5;pt.prototype.set=G5;var Ju=pt;function Y5(){this.__data__=new Ln,this.size=0}var H5=Y5;function Z5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Q5=Z5;function W5(e){return this.__data__.get(e)}var K5=W5;function J5(e){return this.__data__.has(e)}var X5=J5,e9=200;function t9(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!Ur||i.length<e9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ju(i)}return r.set(e,t),this.size=r.size,this}var r9=t9;function Br(e){var t=this.__data__=new Ln(e);this.size=t.size}Br.prototype.clear=H5;Br.prototype.delete=Q5;Br.prototype.get=K5;Br.prototype.has=X5;Br.prototype.set=r9;var i9=Object.prototype,fJ=i9.propertyIsEnumerable,n9=ut(X,"DataView"),ia=n9,o9=ut(X,"Promise"),na=o9,a9=ut(X,"Set"),oa=a9,pu="[object Map]",l9="[object Object]",gu="[object Promise]",fu="[object Set]",yu="[object WeakMap]",mu="[object DataView]",s9=Le(ia),u9=Le(Ur),c9=Le(na),d9=Le(oa),p9=Le(ra),nt=Vr;(ia&&nt(new ia(new ArrayBuffer(1)))!=mu||Ur&&nt(new Ur)!=pu||na&&nt(na.resolve())!=gu||oa&&nt(new oa)!=fu||ra&&nt(new ra)!=yu)&&(nt=function(e){var t=Vr(e),r=t==l9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case s9:return mu;case u9:return pu;case c9:return gu;case d9:return fu;case p9:return yu}return t});var yJ=X.Uint8Array,g9="__lodash_hash_undefined__";function f9(e){return this.__data__.set(e,g9),this}var y9=f9;function m9(e){return this.__data__.has(e)}var b9=m9;function aa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ju;++t<r;)this.add(e[t])}aa.prototype.add=aa.prototype.push=y9;aa.prototype.has=b9;var bu=lt?lt.prototype:void 0,mJ=bu?bu.valueOf:void 0,h9=Object.prototype,bJ=h9.hasOwnProperty,v9=Object.prototype,hJ=v9.hasOwnProperty,vJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function w9(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Xu(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function la(e,t){let r=await Xu(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function k9(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Xu(i,t)}function x9(e){return e!==void 0}var On=x9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function qr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ya=class ec{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ec),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},tc=class rc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function I9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function C9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var A9=C9,Qo="ly.img.ai.temp";async function M9(e,t){return e.engine.asset.findAllSources().includes(Qo)||e.engine.asset.addLocalSource(Qo),e.engine.asset.apply(Qo,t)}function j9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function ic(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function S9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function $9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ma(e){return e instanceof Error&&e.name==="AbortError"}function _9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function E9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
65
|
+
`;var iu={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var k2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var x2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},I2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Gu=I2,C2=typeof global=="object"&&global&&global.Object===Object&&global,Yu=C2,A2=typeof self=="object"&&self&&self.Object===Object&&self,M2=Yu||A2||Function("return this")(),X=M2,j2=X.Symbol,lt=j2,Hu=Object.prototype,S2=Hu.hasOwnProperty,$2=Hu.toString,Sr=lt?lt.toStringTag:void 0;function E2(e){var t=S2.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=$2.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var _2=E2,L2=Object.prototype,T2=L2.toString;function O2(e){return T2.call(e)}var N2=O2,D2="[object Null]",P2="[object Undefined]",nu=lt?lt.toStringTag:void 0;function z2(e){return e==null?e===void 0?P2:D2:nu&&nu in Object(e)?_2(e):N2(e)}var Vr=z2;function U2(e){return e!=null&&typeof e=="object"}var fa=U2,rJ=Array.isArray;function R2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zu=R2,F2="[object AsyncFunction]",V2="[object Function]",B2="[object GeneratorFunction]",q2="[object Proxy]";function G2(e){if(!Zu(e))return!1;var t=Vr(e);return t==V2||t==B2||t==F2||t==q2}var Y2=G2,H2=X["__core-js_shared__"],Ho=H2,ou=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Z2(e){return!!ou&&ou in e}var Q2=Z2,W2=Function.prototype,K2=W2.toString;function J2(e){if(e!=null){try{return K2.call(e)}catch{}try{return e+""}catch{}}return""}var Le=J2,X2=/[\\^$.*+?()[\]{}|]/g,e4=/^\[object .+?Constructor\]$/,t4=Function.prototype,r4=Object.prototype,i4=t4.toString,n4=r4.hasOwnProperty,o4=RegExp("^"+i4.call(n4).replace(X2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a4(e){if(!Zu(e)||Q2(e))return!1;var t=Y2(e)?o4:e4;return t.test(Le(e))}var l4=a4;function s4(e,t){return e?.[t]}var u4=s4;function c4(e,t){var r=u4(e,t);return l4(r)?r:void 0}var ut=c4,d4=ut(X,"WeakMap"),ra=d4;function p4(e,t){return e===t||e!==e&&t!==t}var g4=p4,f4=9007199254740991;function y4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f4}var m4=y4,iJ=Object.prototype,b4="[object Arguments]";function h4(e){return fa(e)&&Vr(e)==b4}var au=h4,Qu=Object.prototype,v4=Qu.hasOwnProperty,w4=Qu.propertyIsEnumerable,nJ=au(function(){return arguments}())?au:function(e){return fa(e)&&v4.call(e,"callee")&&!w4.call(e,"callee")},Wu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lu=Wu&&typeof module=="object"&&module&&!module.nodeType&&module,k4=lu&&lu.exports===Wu,su=k4?X.Buffer:void 0,oJ=su?su.isBuffer:void 0,x4="[object Arguments]",I4="[object Array]",C4="[object Boolean]",A4="[object Date]",M4="[object Error]",j4="[object Function]",S4="[object Map]",$4="[object Number]",E4="[object Object]",_4="[object RegExp]",L4="[object Set]",T4="[object String]",O4="[object WeakMap]",N4="[object ArrayBuffer]",D4="[object DataView]",P4="[object Float32Array]",z4="[object Float64Array]",U4="[object Int8Array]",R4="[object Int16Array]",F4="[object Int32Array]",V4="[object Uint8Array]",B4="[object Uint8ClampedArray]",q4="[object Uint16Array]",G4="[object Uint32Array]",O={};O[P4]=O[z4]=O[U4]=O[R4]=O[F4]=O[V4]=O[B4]=O[q4]=O[G4]=!0;O[x4]=O[I4]=O[N4]=O[C4]=O[D4]=O[A4]=O[M4]=O[j4]=O[S4]=O[$4]=O[E4]=O[_4]=O[L4]=O[T4]=O[O4]=!1;function Y4(e){return fa(e)&&m4(e.length)&&!!O[Vr(e)]}var H4=Y4;function Z4(e){return function(t){return e(t)}}var Q4=Z4,Ku=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=Ku&&typeof module=="object"&&module&&!module.nodeType&&module,W4=Dr&&Dr.exports===Ku,Zo=W4&&Yu.process,K4=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),uu=K4,cu=uu&&uu.isTypedArray,aJ=cu?Q4(cu):H4,J4=Object.prototype,lJ=J4.hasOwnProperty;function X4(e,t){return function(r){return e(t(r))}}var e5=X4,sJ=e5(Object.keys,Object),t5=Object.prototype,uJ=t5.hasOwnProperty,r5=ut(Object,"create"),zr=r5;function i5(){this.__data__=zr?zr(null):{},this.size=0}var n5=i5;function o5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a5=o5,l5="__lodash_hash_undefined__",s5=Object.prototype,u5=s5.hasOwnProperty;function c5(e){var t=this.__data__;if(zr){var r=t[e];return r===l5?void 0:r}return u5.call(t,e)?t[e]:void 0}var d5=c5,p5=Object.prototype,g5=p5.hasOwnProperty;function f5(e){var t=this.__data__;return zr?t[e]!==void 0:g5.call(t,e)}var y5=f5,m5="__lodash_hash_undefined__";function b5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?m5:t,this}var h5=b5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=n5;ct.prototype.delete=a5;ct.prototype.get=d5;ct.prototype.has=y5;ct.prototype.set=h5;var du=ct;function v5(){this.__data__=[],this.size=0}var w5=v5;function k5(e,t){for(var r=e.length;r--;)if(g4(e[r][0],t))return r;return-1}var _n=k5,x5=Array.prototype,I5=x5.splice;function C5(e){var t=this.__data__,r=_n(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():I5.call(t,r,1),--this.size,!0}var A5=C5;function M5(e){var t=this.__data__,r=_n(t,e);return r<0?void 0:t[r][1]}var j5=M5;function S5(e){return _n(this.__data__,e)>-1}var $5=S5;function E5(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 _5=E5;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=w5;dt.prototype.delete=A5;dt.prototype.get=j5;dt.prototype.has=$5;dt.prototype.set=_5;var Ln=dt,L5=ut(X,"Map"),Ur=L5;function T5(){this.size=0,this.__data__={hash:new du,map:new(Ur||Ln),string:new du}}var O5=T5;function N5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var D5=N5;function P5(e,t){var r=e.__data__;return D5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=P5;function z5(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var U5=z5;function R5(e){return Tn(this,e).get(e)}var F5=R5;function V5(e){return Tn(this,e).has(e)}var B5=V5;function q5(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var G5=q5;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=O5;pt.prototype.delete=U5;pt.prototype.get=F5;pt.prototype.has=B5;pt.prototype.set=G5;var Ju=pt;function Y5(){this.__data__=new Ln,this.size=0}var H5=Y5;function Z5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Q5=Z5;function W5(e){return this.__data__.get(e)}var K5=W5;function J5(e){return this.__data__.has(e)}var X5=J5,e9=200;function t9(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!Ur||i.length<e9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ju(i)}return r.set(e,t),this.size=r.size,this}var r9=t9;function Br(e){var t=this.__data__=new Ln(e);this.size=t.size}Br.prototype.clear=H5;Br.prototype.delete=Q5;Br.prototype.get=K5;Br.prototype.has=X5;Br.prototype.set=r9;var i9=Object.prototype,cJ=i9.propertyIsEnumerable,n9=ut(X,"DataView"),ia=n9,o9=ut(X,"Promise"),na=o9,a9=ut(X,"Set"),oa=a9,pu="[object Map]",l9="[object Object]",gu="[object Promise]",fu="[object Set]",yu="[object WeakMap]",mu="[object DataView]",s9=Le(ia),u9=Le(Ur),c9=Le(na),d9=Le(oa),p9=Le(ra),nt=Vr;(ia&&nt(new ia(new ArrayBuffer(1)))!=mu||Ur&&nt(new Ur)!=pu||na&&nt(na.resolve())!=gu||oa&&nt(new oa)!=fu||ra&&nt(new ra)!=yu)&&(nt=function(e){var t=Vr(e),r=t==l9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case s9:return mu;case u9:return pu;case c9:return gu;case d9:return fu;case p9:return yu}return t});var dJ=X.Uint8Array,g9="__lodash_hash_undefined__";function f9(e){return this.__data__.set(e,g9),this}var y9=f9;function m9(e){return this.__data__.has(e)}var b9=m9;function aa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ju;++t<r;)this.add(e[t])}aa.prototype.add=aa.prototype.push=y9;aa.prototype.has=b9;var bu=lt?lt.prototype:void 0,pJ=bu?bu.valueOf:void 0,h9=Object.prototype,gJ=h9.hasOwnProperty,v9=Object.prototype,fJ=v9.hasOwnProperty,yJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),bJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Xu(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function la(e,t){let r=await Xu(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function w9(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Xu(i,t)}function k9(e){return e!==void 0}var On=k9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function qr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ya=class ec{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ec),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},tc=class rc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function x9(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 I9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var C9=I9,Qo="ly.img.ai.temp";async function A9(e,t){return e.engine.asset.findAllSources().includes(Qo)||e.engine.asset.addLocalSource(Qo),e.engine.asset.apply(Qo,t)}function M9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function ic(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function j9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function S9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ma(e){return e instanceof Error&&e.name==="AbortError"}function $9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function E9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
66
66
|
Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
|
|
67
67
|
This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
|
|
68
|
-
Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function L9(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var T9=L9;function O9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Yr=O9;function N9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),D9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:j9(e)}))}function D9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var hu=N9,P9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ba=P9;function z9(e,t,r){switch(t){case"image":return U9(e,r[t]);case"video":return R9(e,r[t]);case"sticker":return F9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function U9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function R9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function F9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var V9=z9;async function B9(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return q9(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return G9(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return Y9(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return H9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function q9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function G9(e,t,r){let i=t.width,n=t.height,a=await S9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function Y9(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function H9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var nc=B9;function Z9(e){switch(e.userFlow){case"placeholder":return W9(e);case"generation-only":return Q9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Q9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=ic(),c=await nc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function W9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=ic(),c=V9(s,a,o);if(i=await M9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await nc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ma(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var K9=Z9;function ha(e){return`${e}.generating`}function J9(e){return`${e}.abort`}function X9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(J9(d),()=>{}),m=c.global(ha(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await K9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){hu(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;e3(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ma(y))return;hu(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function e3(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var oc=X9;async function t3({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return oc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var r3=t3;function ac(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=ac(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function i3(e){return Tr(e,{...e})}function n3(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function o3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return a3(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function a3(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=l3(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function l3(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var lc=o3;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function sc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function uc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?s3(e,c,r,i,n,a,o,s):cc(e,c,r,i,n,a,o,s);case"boolean":return dc(e,c,r,i,n,a,o,s);case"number":case"integer":return pc(e,c,r,i,n,a,o,s);case"object":return sa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return u3(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function sa(e,t,r,i,n,a,o,s){let c=lc(t.schema??{},i).reduce((l,u)=>{let d=uc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function cc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=me(t,r,o,"placeholder"),f=qr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Gr(d,h,f,t.schema.default,""),v=l(p,b),k=c3(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function s3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:m,icons:f}=sc(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),b=qr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gr(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function dc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=qr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gr(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function pc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=qr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Gr(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function u3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=sc(t.schema),x=qr(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:cc,boolean:dc,integer:pc,object:sa},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:me(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>sa(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Gr(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function c3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var d3=uc,p3={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function vu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function g3(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||vu(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||vu(g);n[a(l.id,g)]=m}})}});let c={...p3,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}async function f3({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=i3(r.document),c=ac(s,r.inputReference);if(!n3(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=lc(l,r);return g3(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=d3(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});oc(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var y3=f3;async function m3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return r3(e,t);case"schema":return y3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var b3=m3;function h3(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new k2(o,r)),o}return i}var v3=h3;function w3(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var k3=w3,Wo="@imgly/plugin-ai-generation",x3=`
|
|
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 _9(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 L9=_9;function T9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Yr=T9;function O9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),N9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:M9(e)}))}function N9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var hu=O9,D9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ba=D9;function P9(e,t,r){switch(t){case"image":return z9(e,r[t]);case"video":return U9(e,r[t]);case"sticker":return R9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function z9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function U9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function R9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var F9=P9;async function V9(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 q9(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 G9(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 Y9(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 q9(e,t,r){let i=t.width,n=t.height,a=await j9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function G9(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 Y9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var nc=V9;function H9(e){switch(e.userFlow){case"placeholder":return Q9(e);case"generation-only":return Z9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Z9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=ic(),c=await nc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Q9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=ic(),c=F9(s,a,o);if(i=await A9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await nc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ma(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var W9=H9;function ha(e){return`${e}.generating`}function K9(e){return`${e}.abort`}function J9(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(K9(d),()=>{}),m=c.global(ha(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await W9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){hu(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;X9(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ma(y))return;hu(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function X9(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var oc=J9;async function e3({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return oc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var t3=e3;function ac(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=ac(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function r3(e){return Tr(e,{...e})}function i3(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 n3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return o3(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function o3(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=a3(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function a3(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var lc=n3;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function sc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function uc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?l3(e,c,r,i,n,a,o,s):cc(e,c,r,i,n,a,o,s);case"boolean":return dc(e,c,r,i,n,a,o,s);case"number":case"integer":return pc(e,c,r,i,n,a,o,s);case"object":return sa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return s3(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function sa(e,t,r,i,n,a,o,s){let c=lc(t.schema??{},i).reduce((l,u)=>{let d=uc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function cc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=me(t,r,o,"placeholder"),f=qr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Gr(d,h,f,t.schema.default,""),v=l(p,b),k=u3(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function l3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:m,icons:f}=sc(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),b=qr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gr(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function dc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=qr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gr(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function pc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=qr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Gr(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function s3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=sc(t.schema),x=qr(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:cc,boolean:dc,integer:pc,object:sa},M=(w,$)=>w.$ref?w.$ref.split("/").pop():$.split(".").pop()??$,A=(w,$)=>({id:w,label:me(t,r,o,$),icon:k[$]??k[w]});m.forEach((w,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(w.$ref||w.title){let j=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>sa(e,{id:C,schema:{...w,title:v[j]||j}},r,i,n,a,o,s),f.push(A(C,j))}else if(w.type==="string"&&w.enum)w.enum.forEach(j=>{f.push(A(j,j))});else if(w.type&&I[w.type]){let j=I[w.type];h[C]=()=>j(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let _=Gr(d,y,x,t.schema.default,null),S=_!=null?f.find(w=>w.id===_)??f[0]:f[0],E=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in h){let w=h[E.value.id]();b[E.value.id]=w}return()=>{let w=b[E.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function u3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var c3=uc,d3={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function vu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function p3(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||vu(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||vu(g);n[a(l.id,g)]=m}})}});let c={...d3,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}async function g3({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=r3(r.document),c=ac(s,r.inputReference);if(!i3(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=lc(l,r);return p3(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=c3(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});oc(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var f3=g3;async function y3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return t3(e,t);case"schema":return f3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var m3=y3;function b3(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new k2(o,r)),o}return i}var h3=b3;function v3(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 w3=v3,Wo="@imgly/plugin-ai-generation",k3=`
|
|
69
69
|
<svg>
|
|
70
70
|
<symbol
|
|
71
71
|
fill="none"
|
|
@@ -126,8 +126,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
126
126
|
|
|
127
127
|
</symbol>
|
|
128
128
|
</svg>
|
|
129
|
-
`,
|
|
130
|
-
`,"+")}`}}async function j3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function S3(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=$r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$r(n,o)}else"customPrompt"in e?a=$r(n,"custom"):a=$r(n,"improved");else a=$r(n,"generated");return $3(a,r.abortSignal)}async function*$3(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await gc(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function _3(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:E3(220,i),duration:i,thumbnailUrl:void 0}}function E3(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return L3(i,44100)}function L3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function gc(e){return new Promise(t=>{setTimeout(t,e)})}var T3=C3,fc="USER_CANCEL";function O3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=I9([...e.provider.output.middleware??[],...r?.middlewares??[],A9({enable:r?.debug}),T3({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:$9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ma(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===fc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var N3=O3;async function D3(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ya.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=v3(a),s=k3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=N3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await b3(a,c);_9(r.cesdk,"@imgly/plugin-ai-generation",I3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return tc.get().register(u),u}var Ko=D3;function P3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new x2(n,r,i);return r.engine.asset.addSource(a),a.id}var z3=P3;function Or(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function U3(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ko(e,u,r,i)));o.push(...l),a=F3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ko(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ko(e,d,r,i)));o.push(...u),a=R3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=z3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(On)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function R3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&wu(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&wu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function F3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function wu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ha(r.id),!1).value)}var V3=U3,Nn="ly.img.ai.editMode",yc="ly.img.ai.metadata";async function B3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Gu(n,yc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var q3=B3;function G3(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var Y3=G3;function H3(e){return`ly.img.ai.${e}.canvasMenu`}var Z3=H3;function Q3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Z3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var W3=Q3;function K3(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return J3(e,t);case"image":return X3(e,t);case"video":return ev(e,t);case"audio":return tv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function J3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function X3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await la(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await rv(r,k,x),I=await la(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();let $=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function ev(e,t){throw new Error("Function not implemented.")}async function tv(e,t){throw new Error("Function not implemented.")}async function rv(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${w9(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var iv=K3;function nv(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var ov=nv,av=class mc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ee=av;function lv(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(On)),c=new Gu(e.cesdk.engine,yc),l=e.lock??!0?ov({engine:e.cesdk.engine,editModeToLockTo:Nn,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ee.get().register(u,{onCancelGeneration:()=>{o.abort(fc),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await iv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Ee.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var ku=lv;function sv(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Nn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=W3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=uv(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=tc.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(On);return j=Y3(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:ku({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:ku({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function uv(e){return e.map(t=>t==="ly.img.separator"?t:ya.get().getBy({id:t,type:"quick"})[0]).filter(On)}var cv=sv;async function dv(e){let t=await cv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await q3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Nn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ee.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var pv=dv,gv="@imgly/plugin-ai-image-generation",fv=`
|
|
129
|
+
`,x3=k3;function I3(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await gc(2e3),await C3(t,e,r)):i(t,r)}async function C3(e,t,r){switch(t.kind){case"image":return A3(e,t,r);case"video":return M3(e,t,r);case"text":return j3(e,t,r);case"audio":return $3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function A3(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 w9(s,r),l=await la(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
|
|
130
|
+
`,"+")}`}}async function M3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function j3(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=$r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$r(n,o)}else"customPrompt"in e?a=$r(n,"custom"):a=$r(n,"improved");else a=$r(n,"generated");return S3(a,r.abortSignal)}async function*S3(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await gc(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function $3(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:E3(220,i),duration:i,thumbnailUrl:void 0}}function E3(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return _3(i,44100)}function _3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function gc(e){return new Promise(t=>{setTimeout(t,e)})}var L3=I3,fc="USER_CANCEL";function T3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=x9([...e.provider.output.middleware??[],...r?.middlewares??[],C9({enable:r?.debug}),L3({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:S9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ma(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===fc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var O3=T3;async function N3(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ya.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=h3(a),s=w3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=O3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await m3(a,c);$9(r.cesdk,"@imgly/plugin-ai-generation",x3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return tc.get().register(u),u}var Ko=N3;function D3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new x2(n,r,i);return r.engine.asset.addSource(a),a.id}var P3=D3;function Or(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function z3(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ko(e,u,r,i)));o.push(...l),a=R3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ko(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ko(e,d,r,i)));o.push(...u),a=U3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=P3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(On)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function U3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),v=i.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,w=a&&E,$=h.length>1&&S;if((w||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&wu(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&wu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];M!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:j=>{M.setValue(j.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function R3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function wu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ha(r.id),!1).value)}var F3=z3,Nn="ly.img.ai.editMode",yc="ly.img.ai.metadata";async function V3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Gu(n,yc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var B3=V3;function q3(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 G3=q3;function Y3(e){return`ly.img.ai.${e}.canvasMenu`}var H3=Y3;function Z3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=H3(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 Q3=Z3;function W3(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return K3(e,t);case"image":return J3(e,t);case"video":return X3(e,t);case"audio":return ev(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function K3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function J3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await la(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,x=await la(k,t.cesdk.engine),y=x.width/x.height,I=Math.abs(p-y)>.001,M=c?[{uri:k,width:x.width,height:x.height}]:void 0,A=k;M==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",M)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):v();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);v()},S=()=>{if(M==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",M);I?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:_,onAfter:S,onCancel:()=>{_()},onApply:()=>{S(),t.cesdk.engine.editor.addUndoStep()}}}}async function X3(e,t){throw new Error("Function not implemented.")}async function ev(e,t){throw new Error("Function not implemented.")}var tv=W3;function rv(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 iv=rv,nv=class mc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},_e=nv;function ov(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(On)),c=new Gu(e.cesdk.engine,yc),l=e.lock??!0?iv({engine:e.cesdk.engine,editModeToLockTo:Nn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(fc),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await tv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{_e.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var ku=ov;function av(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Nn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=Q3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=lv(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(S=>e.engine.block.isAllowedByScope(_,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let M=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=tc.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let S={definition:A,providerInitializationResult:_};return l.push(S),S}else return}}).filter(On);return M=G3(M),M.length===0||M.every(A=>A==="ly.img.separator")||M.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:M}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(M=>{let A=M.definition.id;y.has(A)||y.set(A,M)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,M)=>{v.setValue(!0);try{return await M(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let M=u.filter(({quickActions:S})=>S.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:ku({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:ku({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function lv(e){return e.map(t=>t==="ly.img.separator"?t:ya.get().getBy({id:t,type:"quick"})[0]).filter(On)}var sv=av;async function uv(e){let t=await sv({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()===Nn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var cv=uv,dv="@imgly/plugin-ai-image-generation",pv=`
|
|
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
|
-
`,yv=fv,mv=typeof global=="object"&&global&&global.Object===Object&&global,bc=mv,bv=typeof self=="object"&&self&&self.Object===Object&&self,hv=bc||bv||Function("return this")(),ee=hv,vv=ee.Symbol,st=vv,hc=Object.prototype,wv=hc.hasOwnProperty,kv=hc.toString,_r=st?st.toStringTag:void 0;function xv(e){var t=wv.call(e,_r),r=e[_r];try{e[_r]=void 0;var i=!0}catch{}var n=kv.call(e);return i&&(t?e[_r]=r:delete e[_r]),n}var Iv=xv,Cv=Object.prototype,Av=Cv.toString;function Mv(e){return Av.call(e)}var jv=Mv,Sv="[object Null]",$v="[object Undefined]",xu=st?st.toStringTag:void 0;function _v(e){return e==null?e===void 0?$v:Sv:xu&&xu in Object(e)?Iv(e):jv(e)}var Hr=_v;function Ev(e){return e!=null&&typeof e=="object"}var va=Ev,xJ=Array.isArray;function Lv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var vc=Lv,Tv="[object AsyncFunction]",Ov="[object Function]",Nv="[object GeneratorFunction]",Dv="[object Proxy]";function Pv(e){if(!vc(e))return!1;var t=Hr(e);return t==Ov||t==Nv||t==Tv||t==Dv}var zv=Pv,Uv=ee["__core-js_shared__"],Jo=Uv,Iu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Rv(e){return!!Iu&&Iu in e}var Fv=Rv,Vv=Function.prototype,Bv=Vv.toString;function qv(e){if(e!=null){try{return Bv.call(e)}catch{}try{return e+""}catch{}}return""}var Te=qv,Gv=/[\\^$.*+?()[\]{}|]/g,Yv=/^\[object .+?Constructor\]$/,Hv=Function.prototype,Zv=Object.prototype,Qv=Hv.toString,Wv=Zv.hasOwnProperty,Kv=RegExp("^"+Qv.call(Wv).replace(Gv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Jv(e){if(!vc(e)||Fv(e))return!1;var t=zv(e)?Kv:Yv;return t.test(Te(e))}var Xv=Jv;function e8(e,t){return e?.[t]}var t8=e8;function r8(e,t){var r=t8(e,t);return Xv(r)?r:void 0}var gt=r8,i8=gt(ee,"WeakMap"),ua=i8;function n8(e,t){return e===t||e!==e&&t!==t}var o8=n8,a8=9007199254740991;function l8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=a8}var s8=l8,IJ=Object.prototype,u8="[object Arguments]";function c8(e){return va(e)&&Hr(e)==u8}var Cu=c8,wc=Object.prototype,d8=wc.hasOwnProperty,p8=wc.propertyIsEnumerable,CJ=Cu(function(){return arguments}())?Cu:function(e){return va(e)&&d8.call(e,"callee")&&!p8.call(e,"callee")},kc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Au=kc&&typeof module=="object"&&module&&!module.nodeType&&module,g8=Au&&Au.exports===kc,Mu=g8?ee.Buffer:void 0,AJ=Mu?Mu.isBuffer:void 0,f8="[object Arguments]",y8="[object Array]",m8="[object Boolean]",b8="[object Date]",h8="[object Error]",v8="[object Function]",w8="[object Map]",k8="[object Number]",x8="[object Object]",I8="[object RegExp]",C8="[object Set]",A8="[object String]",M8="[object WeakMap]",j8="[object ArrayBuffer]",S8="[object DataView]",$8="[object Float32Array]",_8="[object Float64Array]",E8="[object Int8Array]",L8="[object Int16Array]",T8="[object Int32Array]",O8="[object Uint8Array]",N8="[object Uint8ClampedArray]",D8="[object Uint16Array]",P8="[object Uint32Array]",N={};N[$8]=N[_8]=N[E8]=N[L8]=N[T8]=N[O8]=N[N8]=N[D8]=N[P8]=!0;N[f8]=N[y8]=N[j8]=N[m8]=N[S8]=N[b8]=N[h8]=N[v8]=N[w8]=N[k8]=N[x8]=N[I8]=N[C8]=N[A8]=N[M8]=!1;function z8(e){return va(e)&&s8(e.length)&&!!N[Hr(e)]}var U8=z8;function R8(e){return function(t){return e(t)}}var F8=R8,xc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=xc&&typeof module=="object"&&module&&!module.nodeType&&module,V8=Pr&&Pr.exports===xc,Xo=V8&&bc.process,B8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),ju=B8,Su=ju&&ju.isTypedArray,MJ=Su?F8(Su):U8,q8=Object.prototype,jJ=q8.hasOwnProperty;function G8(e,t){return function(r){return e(t(r))}}var Y8=G8,SJ=Y8(Object.keys,Object),H8=Object.prototype,$J=H8.hasOwnProperty,Z8=gt(Object,"create"),Rr=Z8;function Q8(){this.__data__=Rr?Rr(null):{},this.size=0}var W8=Q8;function K8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var J8=K8,X8="__lodash_hash_undefined__",e7=Object.prototype,t7=e7.hasOwnProperty;function r7(e){var t=this.__data__;if(Rr){var r=t[e];return r===X8?void 0:r}return t7.call(t,e)?t[e]:void 0}var i7=r7,n7=Object.prototype,o7=n7.hasOwnProperty;function a7(e){var t=this.__data__;return Rr?t[e]!==void 0:o7.call(t,e)}var l7=a7,s7="__lodash_hash_undefined__";function u7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?s7:t,this}var c7=u7;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=W8;ft.prototype.delete=J8;ft.prototype.get=i7;ft.prototype.has=l7;ft.prototype.set=c7;var $u=ft;function d7(){this.__data__=[],this.size=0}var p7=d7;function g7(e,t){for(var r=e.length;r--;)if(o8(e[r][0],t))return r;return-1}var Dn=g7,f7=Array.prototype,y7=f7.splice;function m7(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():y7.call(t,r,1),--this.size,!0}var b7=m7;function h7(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var v7=h7;function w7(e){return Dn(this.__data__,e)>-1}var k7=w7;function x7(e,t){var r=this.__data__,i=Dn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var I7=x7;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=p7;yt.prototype.delete=b7;yt.prototype.get=v7;yt.prototype.has=k7;yt.prototype.set=I7;var Pn=yt,C7=gt(ee,"Map"),Fr=C7;function A7(){this.size=0,this.__data__={hash:new $u,map:new(Fr||Pn),string:new $u}}var M7=A7;function j7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var S7=j7;function $7(e,t){var r=e.__data__;return S7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=$7;function _7(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var E7=_7;function L7(e){return zn(this,e).get(e)}var T7=L7;function O7(e){return zn(this,e).has(e)}var N7=O7;function D7(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var P7=D7;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=M7;mt.prototype.delete=E7;mt.prototype.get=T7;mt.prototype.has=N7;mt.prototype.set=P7;var Ic=mt;function z7(){this.__data__=new Pn,this.size=0}var U7=z7;function R7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var F7=R7;function V7(e){return this.__data__.get(e)}var B7=V7;function q7(e){return this.__data__.has(e)}var G7=q7,Y7=200;function H7(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<Y7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ic(i)}return r.set(e,t),this.size=r.size,this}var Z7=H7;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=U7;Zr.prototype.delete=F7;Zr.prototype.get=B7;Zr.prototype.has=G7;Zr.prototype.set=Z7;var Q7=Object.prototype,_J=Q7.propertyIsEnumerable,W7=gt(ee,"DataView"),ca=W7,K7=gt(ee,"Promise"),da=K7,J7=gt(ee,"Set"),pa=J7,_u="[object Map]",X7="[object Object]",Eu="[object Promise]",Lu="[object Set]",Tu="[object WeakMap]",Ou="[object DataView]",e6=Te(ca),t6=Te(Fr),r6=Te(da),i6=Te(pa),n6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=Ou||Fr&&ot(new Fr)!=_u||da&&ot(da.resolve())!=Eu||pa&&ot(new pa)!=Lu||ua&&ot(new ua)!=Tu)&&(ot=function(e){var t=Hr(e),r=t==X7?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case e6:return Ou;case t6:return _u;case r6:return Eu;case i6:return Lu;case n6:return Tu}return t});var EJ=ee.Uint8Array,o6="__lodash_hash_undefined__";function a6(e){return this.__data__.set(e,o6),this}var l6=a6;function s6(e){return this.__data__.has(e)}var u6=s6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ic;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=l6;ga.prototype.has=u6;var Nu=st?st.prototype:void 0,LJ=Nu?Nu.valueOf:void 0,c6=Object.prototype,TJ=c6.hasOwnProperty,d6=Object.prototype,OJ=d6.hasOwnProperty,NJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),DJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),PJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function p6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return p6(i,t)}function g6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Du=g6;function f6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function y6(e){return typeof e?.translate=="function"}function m6(e,t,r){return e&&f6(e)&&y6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",b6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Un="editImage",ue=`ly.img.${Un}`,Pu=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,In=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Cn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var h6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${In}`]:"Edit Image...",[`${In}.description`]:"Change image based on description",[`${In}.prompt`]:"Edit Image...",[`${Pu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Pu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Cn(l,"prompt"),placeholder:Cn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Cn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Cn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),v6=h6,Rn="swapBackground",ce=`ly.img.${Rn}`,zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Mn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var w6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${An}`]:"Swap Background...",[`${An}.description`]:"Change the background of the image",[`${An}.prompt`]:"Swap Background...",[`${zu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${zu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:Mn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),k6=w6,Fn="styleTransfer",Er=`ly.img.${Fn}`,x6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Uu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var I6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],C6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:Er,type:"quick",kind:"image",label:`${x6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Er}.popover`,{label:Uu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Er}.popover.section`,{children:()=>{r.builder.Menu(`${Er}.popover.menu`,{children:()=>{I6.forEach(s=>{t.Button(`${Er}.popover.menu.${s.id}`,{label:Uu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),A6=C6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,M6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Ru(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var j6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],S6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Lr,type:"quick",kind:"image",label:`${M6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Ru(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{j6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Ru(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),$6=S6,Bn="createVariant",de=`ly.img.${Bn}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,jn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var _6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${jn}`]:"Create Variant...",[`${jn}.description`]:"Create a variation of the image",[`${jn}.prompt`]:"Create Variant...",[`${Fu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${jn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Fu}`,enable:t=>{if(!Yr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await bt(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),E6=_6,qn="combineImages",pe=`ly.img.${qn}`,Vu=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,ea=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function $n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var L6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ea}.apply`]:"Combine",[`${ea}`]:"Combine Images...",[`${ea}.prompt`]:"Image Combination Instructions",[`${Vu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Vu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:$n(l,"prompt"),placeholder:$n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:$n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:$n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),T6=L6,Gn="remixPage",Bu=`ly.img.${Gn}`,O6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,N6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function D6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${N6}`]:"Turn Page into Image"}}),{id:Bu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${O6}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Bu}.button`,{label:D6(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(b=>{i.block.destroy(b)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),z6=P6,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var U6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ta}`]:"Remix Page...",[`${ta}.prompt`]:"Remix Page Prompt",[`${qu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${qu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:_n(l,"prompt"),placeholder:_n(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:_n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:_n(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),R6=U6,fe="ly.img.ai.image-generation";function F6(e){return{async initialize({cesdk:t}){if(t==null)return;E9(t,Nr,"1.68.0-rc.1"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(gv,yv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:m6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});V6(e),r.register(v6({cesdk:t})),r.register(k6({cesdk:t})),r.register(A6({cesdk:t})),r.register($6({cesdk:t})),r.register(E6({cesdk:t})),r.register(T6({cesdk:t})),r.register(z6({cesdk:t})),r.register(R6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Du(a).map(d=>d({cesdk:t}))),c=await Promise.all(Du(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await V3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await pv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:b6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Nn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),T9({cesdk:t,panelId:fe})):n()}}}function V6(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var B6=F6,q6=e=>({name:Nr,version:"1.68.0-rc.1",...B6(e)}),Cc=q6;var G6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var Y6=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},H6=typeof global=="object"&&global&&global.Object===Object&&global,ld=H6,Z6=typeof self=="object"&&self&&self.Object===Object&&self,Q6=ld||Z6||Function("return this")(),te=Q6,W6=te.Symbol,kt=W6,sd=Object.prototype,K6=sd.hasOwnProperty,J6=sd.toString,Qr=kt?kt.toStringTag:void 0;function X6(e){var t=K6.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=J6.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var ew=X6,tw=Object.prototype,rw=tw.toString;function iw(e){return rw.call(e)}var nw=iw,ow="[object Null]",aw="[object Undefined]",Ac=kt?kt.toStringTag:void 0;function lw(e){return e==null?e===void 0?aw:ow:Ac&&Ac in Object(e)?ew(e):nw(e)}var li=lw;function sw(e){return e!=null&&typeof e=="object"}var za=sw,VJ=Array.isArray;function uw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ud=uw,cw="[object AsyncFunction]",dw="[object Function]",pw="[object GeneratorFunction]",gw="[object Proxy]";function fw(e){if(!ud(e))return!1;var t=li(e);return t==dw||t==pw||t==cw||t==gw}var yw=fw,mw=te["__core-js_shared__"],wa=mw,Mc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function bw(e){return!!Mc&&Mc in e}var hw=bw,vw=Function.prototype,ww=vw.toString;function kw(e){if(e!=null){try{return ww.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=kw,xw=/[\\^$.*+?()[\]{}|]/g,Iw=/^\[object .+?Constructor\]$/,Cw=Function.prototype,Aw=Object.prototype,Mw=Cw.toString,jw=Aw.hasOwnProperty,Sw=RegExp("^"+Mw.call(jw).replace(xw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $w(e){if(!ud(e)||hw(e))return!1;var t=yw(e)?Sw:Iw;return t.test(Oe(e))}var _w=$w;function Ew(e,t){return e?.[t]}var Lw=Ew;function Tw(e,t){var r=Lw(e,t);return _w(r)?r:void 0}var It=Tw,Ow=It(te,"WeakMap"),ja=Ow;function Nw(e,t){return e===t||e!==e&&t!==t}var Dw=Nw,Pw=9007199254740991;function zw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Pw}var Uw=zw,BJ=Object.prototype,Rw="[object Arguments]";function Fw(e){return za(e)&&li(e)==Rw}var jc=Fw,cd=Object.prototype,Vw=cd.hasOwnProperty,Bw=cd.propertyIsEnumerable,qJ=jc(function(){return arguments}())?jc:function(e){return za(e)&&Vw.call(e,"callee")&&!Bw.call(e,"callee")},dd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Sc=dd&&typeof module=="object"&&module&&!module.nodeType&&module,qw=Sc&&Sc.exports===dd,$c=qw?te.Buffer:void 0,GJ=$c?$c.isBuffer:void 0,Gw="[object Arguments]",Yw="[object Array]",Hw="[object Boolean]",Zw="[object Date]",Qw="[object Error]",Ww="[object Function]",Kw="[object Map]",Jw="[object Number]",Xw="[object Object]",ek="[object RegExp]",tk="[object Set]",rk="[object String]",ik="[object WeakMap]",nk="[object ArrayBuffer]",ok="[object DataView]",ak="[object Float32Array]",lk="[object Float64Array]",sk="[object Int8Array]",uk="[object Int16Array]",ck="[object Int32Array]",dk="[object Uint8Array]",pk="[object Uint8ClampedArray]",gk="[object Uint16Array]",fk="[object Uint32Array]",D={};D[ak]=D[lk]=D[sk]=D[uk]=D[ck]=D[dk]=D[pk]=D[gk]=D[fk]=!0;D[Gw]=D[Yw]=D[nk]=D[Hw]=D[ok]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=D[Xw]=D[ek]=D[tk]=D[rk]=D[ik]=!1;function yk(e){return za(e)&&Uw(e.length)&&!!D[li(e)]}var mk=yk;function bk(e){return function(t){return e(t)}}var hk=bk,pd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=pd&&typeof module=="object"&&module&&!module.nodeType&&module,vk=ti&&ti.exports===pd,ka=vk&&ld.process,wk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),_c=wk,Ec=_c&&_c.isTypedArray,YJ=Ec?hk(Ec):mk,kk=Object.prototype,HJ=kk.hasOwnProperty;function xk(e,t){return function(r){return e(t(r))}}var Ik=xk,ZJ=Ik(Object.keys,Object),Ck=Object.prototype,QJ=Ck.hasOwnProperty,Ak=It(Object,"create"),ii=Ak;function Mk(){this.__data__=ii?ii(null):{},this.size=0}var jk=Mk;function Sk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $k=Sk,_k="__lodash_hash_undefined__",Ek=Object.prototype,Lk=Ek.hasOwnProperty;function Tk(e){var t=this.__data__;if(ii){var r=t[e];return r===_k?void 0:r}return Lk.call(t,e)?t[e]:void 0}var Ok=Tk,Nk=Object.prototype,Dk=Nk.hasOwnProperty;function Pk(e){var t=this.__data__;return ii?t[e]!==void 0:Dk.call(t,e)}var zk=Pk,Uk="__lodash_hash_undefined__";function Rk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?Uk:t,this}var Fk=Rk;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=jk;Ct.prototype.delete=$k;Ct.prototype.get=Ok;Ct.prototype.has=zk;Ct.prototype.set=Fk;var Lc=Ct;function Vk(){this.__data__=[],this.size=0}var Bk=Vk;function qk(e,t){for(var r=e.length;r--;)if(Dw(e[r][0],t))return r;return-1}var Zn=qk,Gk=Array.prototype,Yk=Gk.splice;function Hk(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Yk.call(t,r,1),--this.size,!0}var Zk=Hk;function Qk(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var Wk=Qk;function Kk(e){return Zn(this.__data__,e)>-1}var Jk=Kk;function Xk(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ex=Xk;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=Bk;At.prototype.delete=Zk;At.prototype.get=Wk;At.prototype.has=Jk;At.prototype.set=ex;var Qn=At,tx=It(te,"Map"),ni=tx;function rx(){this.size=0,this.__data__={hash:new Lc,map:new(ni||Qn),string:new Lc}}var ix=rx;function nx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ox=nx;function ax(e,t){var r=e.__data__;return ox(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=ax;function lx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var sx=lx;function ux(e){return Wn(this,e).get(e)}var cx=ux;function dx(e){return Wn(this,e).has(e)}var px=dx;function gx(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var fx=gx;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=ix;Mt.prototype.delete=sx;Mt.prototype.get=cx;Mt.prototype.has=px;Mt.prototype.set=fx;var gd=Mt;function yx(){this.__data__=new Qn,this.size=0}var mx=yx;function bx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var hx=bx;function vx(e){return this.__data__.get(e)}var wx=vx;function kx(e){return this.__data__.has(e)}var xx=kx,Ix=200;function Cx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<Ix-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new gd(i)}return r.set(e,t),this.size=r.size,this}var Ax=Cx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=mx;si.prototype.delete=hx;si.prototype.get=wx;si.prototype.has=xx;si.prototype.set=Ax;var Mx=Object.prototype,WJ=Mx.propertyIsEnumerable,jx=It(te,"DataView"),Sa=jx,Sx=It(te,"Promise"),$a=Sx,$x=It(te,"Set"),_a=$x,Tc="[object Map]",_x="[object Object]",Oc="[object Promise]",Nc="[object Set]",Dc="[object WeakMap]",Pc="[object DataView]",Ex=Oe(Sa),Lx=Oe(ni),Tx=Oe($a),Ox=Oe(_a),Nx=Oe(ja),ht=li;(Sa&&ht(new Sa(new ArrayBuffer(1)))!=Pc||ni&&ht(new ni)!=Tc||$a&&ht($a.resolve())!=Oc||_a&&ht(new _a)!=Nc||ja&&ht(new ja)!=Dc)&&(ht=function(e){var t=li(e),r=t==_x?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Ex:return Pc;case Lx:return Tc;case Tx:return Oc;case Ox:return Nc;case Nx:return Dc}return t});var KJ=te.Uint8Array,Dx="__lodash_hash_undefined__";function Px(e){return this.__data__.set(e,Dx),this}var zx=Px;function Ux(e){return this.__data__.has(e)}var Rx=Ux;function Ea(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new gd;++t<r;)this.add(e[t])}Ea.prototype.add=Ea.prototype.push=zx;Ea.prototype.has=Rx;var zc=kt?kt.prototype:void 0,JJ=zc?zc.valueOf:void 0,Fx=Object.prototype,XJ=Fx.hasOwnProperty,Vx=Object.prototype,eX=Vx.hasOwnProperty,tX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),rX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),iX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function fd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Bx(e,t){let r=await fd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function qx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return fd(i,t)}function Gx(e){return e!==void 0}var Yx=Gx;function ui(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function di(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Hn=class yd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},Hx=class md{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new md),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Zx(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Qx({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Wx=Qx,xa="ly.img.ai.temp";async function Kx(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function Jx(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function bd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Xx(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function eI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ua(e){return e instanceof Error&&e.name==="AbortError"}function tI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function rI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
144
|
+
`,gv=pv,fv=typeof global=="object"&&global&&global.Object===Object&&global,bc=fv,yv=typeof self=="object"&&self&&self.Object===Object&&self,mv=bc||yv||Function("return this")(),ee=mv,bv=ee.Symbol,st=bv,hc=Object.prototype,hv=hc.hasOwnProperty,vv=hc.toString,Er=st?st.toStringTag:void 0;function wv(e){var t=hv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=vv.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var kv=wv,xv=Object.prototype,Iv=xv.toString;function Cv(e){return Iv.call(e)}var Av=Cv,Mv="[object Null]",jv="[object Undefined]",xu=st?st.toStringTag:void 0;function Sv(e){return e==null?e===void 0?jv:Mv:xu&&xu in Object(e)?kv(e):Av(e)}var Hr=Sv;function $v(e){return e!=null&&typeof e=="object"}var va=$v,hJ=Array.isArray;function Ev(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var vc=Ev,_v="[object AsyncFunction]",Lv="[object Function]",Tv="[object GeneratorFunction]",Ov="[object Proxy]";function Nv(e){if(!vc(e))return!1;var t=Hr(e);return t==Lv||t==Tv||t==_v||t==Ov}var Dv=Nv,Pv=ee["__core-js_shared__"],Jo=Pv,Iu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function zv(e){return!!Iu&&Iu in e}var Uv=zv,Rv=Function.prototype,Fv=Rv.toString;function Vv(e){if(e!=null){try{return Fv.call(e)}catch{}try{return e+""}catch{}}return""}var Te=Vv,Bv=/[\\^$.*+?()[\]{}|]/g,qv=/^\[object .+?Constructor\]$/,Gv=Function.prototype,Yv=Object.prototype,Hv=Gv.toString,Zv=Yv.hasOwnProperty,Qv=RegExp("^"+Hv.call(Zv).replace(Bv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Wv(e){if(!vc(e)||Uv(e))return!1;var t=Dv(e)?Qv:qv;return t.test(Te(e))}var Kv=Wv;function Jv(e,t){return e?.[t]}var Xv=Jv;function e8(e,t){var r=Xv(e,t);return Kv(r)?r:void 0}var gt=e8,t8=gt(ee,"WeakMap"),ua=t8;function r8(e,t){return e===t||e!==e&&t!==t}var i8=r8,n8=9007199254740991;function o8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=n8}var a8=o8,vJ=Object.prototype,l8="[object Arguments]";function s8(e){return va(e)&&Hr(e)==l8}var Cu=s8,wc=Object.prototype,u8=wc.hasOwnProperty,c8=wc.propertyIsEnumerable,wJ=Cu(function(){return arguments}())?Cu:function(e){return va(e)&&u8.call(e,"callee")&&!c8.call(e,"callee")},kc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Au=kc&&typeof module=="object"&&module&&!module.nodeType&&module,d8=Au&&Au.exports===kc,Mu=d8?ee.Buffer:void 0,kJ=Mu?Mu.isBuffer:void 0,p8="[object Arguments]",g8="[object Array]",f8="[object Boolean]",y8="[object Date]",m8="[object Error]",b8="[object Function]",h8="[object Map]",v8="[object Number]",w8="[object Object]",k8="[object RegExp]",x8="[object Set]",I8="[object String]",C8="[object WeakMap]",A8="[object ArrayBuffer]",M8="[object DataView]",j8="[object Float32Array]",S8="[object Float64Array]",$8="[object Int8Array]",E8="[object Int16Array]",_8="[object Int32Array]",L8="[object Uint8Array]",T8="[object Uint8ClampedArray]",O8="[object Uint16Array]",N8="[object Uint32Array]",N={};N[j8]=N[S8]=N[$8]=N[E8]=N[_8]=N[L8]=N[T8]=N[O8]=N[N8]=!0;N[p8]=N[g8]=N[A8]=N[f8]=N[M8]=N[y8]=N[m8]=N[b8]=N[h8]=N[v8]=N[w8]=N[k8]=N[x8]=N[I8]=N[C8]=!1;function D8(e){return va(e)&&a8(e.length)&&!!N[Hr(e)]}var P8=D8;function z8(e){return function(t){return e(t)}}var U8=z8,xc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=xc&&typeof module=="object"&&module&&!module.nodeType&&module,R8=Pr&&Pr.exports===xc,Xo=R8&&bc.process,F8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),ju=F8,Su=ju&&ju.isTypedArray,xJ=Su?U8(Su):P8,V8=Object.prototype,IJ=V8.hasOwnProperty;function B8(e,t){return function(r){return e(t(r))}}var q8=B8,CJ=q8(Object.keys,Object),G8=Object.prototype,AJ=G8.hasOwnProperty,Y8=gt(Object,"create"),Rr=Y8;function H8(){this.__data__=Rr?Rr(null):{},this.size=0}var Z8=H8;function Q8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var W8=Q8,K8="__lodash_hash_undefined__",J8=Object.prototype,X8=J8.hasOwnProperty;function e7(e){var t=this.__data__;if(Rr){var r=t[e];return r===K8?void 0:r}return X8.call(t,e)?t[e]:void 0}var t7=e7,r7=Object.prototype,i7=r7.hasOwnProperty;function n7(e){var t=this.__data__;return Rr?t[e]!==void 0:i7.call(t,e)}var o7=n7,a7="__lodash_hash_undefined__";function l7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?a7:t,this}var s7=l7;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=Z8;ft.prototype.delete=W8;ft.prototype.get=t7;ft.prototype.has=o7;ft.prototype.set=s7;var $u=ft;function u7(){this.__data__=[],this.size=0}var c7=u7;function d7(e,t){for(var r=e.length;r--;)if(i8(e[r][0],t))return r;return-1}var Dn=d7,p7=Array.prototype,g7=p7.splice;function f7(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():g7.call(t,r,1),--this.size,!0}var y7=f7;function m7(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var b7=m7;function h7(e){return Dn(this.__data__,e)>-1}var v7=h7;function w7(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 k7=w7;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=c7;yt.prototype.delete=y7;yt.prototype.get=b7;yt.prototype.has=v7;yt.prototype.set=k7;var Pn=yt,x7=gt(ee,"Map"),Fr=x7;function I7(){this.size=0,this.__data__={hash:new $u,map:new(Fr||Pn),string:new $u}}var C7=I7;function A7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var M7=A7;function j7(e,t){var r=e.__data__;return M7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=j7;function S7(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var $7=S7;function E7(e){return zn(this,e).get(e)}var _7=E7;function L7(e){return zn(this,e).has(e)}var T7=L7;function O7(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var N7=O7;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=C7;mt.prototype.delete=$7;mt.prototype.get=_7;mt.prototype.has=T7;mt.prototype.set=N7;var Ic=mt;function D7(){this.__data__=new Pn,this.size=0}var P7=D7;function z7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var U7=z7;function R7(e){return this.__data__.get(e)}var F7=R7;function V7(e){return this.__data__.has(e)}var B7=V7,q7=200;function G7(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<q7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ic(i)}return r.set(e,t),this.size=r.size,this}var Y7=G7;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=P7;Zr.prototype.delete=U7;Zr.prototype.get=F7;Zr.prototype.has=B7;Zr.prototype.set=Y7;var H7=Object.prototype,MJ=H7.propertyIsEnumerable,Z7=gt(ee,"DataView"),ca=Z7,Q7=gt(ee,"Promise"),da=Q7,W7=gt(ee,"Set"),pa=W7,Eu="[object Map]",K7="[object Object]",_u="[object Promise]",Lu="[object Set]",Tu="[object WeakMap]",Ou="[object DataView]",J7=Te(ca),X7=Te(Fr),e6=Te(da),t6=Te(pa),r6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=Ou||Fr&&ot(new Fr)!=Eu||da&&ot(da.resolve())!=_u||pa&&ot(new pa)!=Lu||ua&&ot(new ua)!=Tu)&&(ot=function(e){var t=Hr(e),r=t==K7?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case J7:return Ou;case X7:return Eu;case e6:return _u;case t6:return Lu;case r6:return Tu}return t});var jJ=ee.Uint8Array,i6="__lodash_hash_undefined__";function n6(e){return this.__data__.set(e,i6),this}var o6=n6;function a6(e){return this.__data__.has(e)}var l6=a6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ic;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=o6;ga.prototype.has=l6;var Nu=st?st.prototype:void 0,SJ=Nu?Nu.valueOf:void 0,s6=Object.prototype,$J=s6.hasOwnProperty,u6=Object.prototype,EJ=u6.hasOwnProperty,_J=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),LJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),TJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function c6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return c6(i,t)}function d6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Du=d6;function p6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function g6(e){return typeof e?.translate=="function"}function f6(e,t,r){return e&&p6(e)&&g6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",y6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Un="editImage",ue=`ly.img.${Un}`,Pu=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,In=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Cn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var m6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${In}`]:"Edit Image...",[`${In}.description`]:"Change image based on description",[`${In}.prompt`]:"Edit Image...",[`${Pu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Pu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Cn(l,"prompt"),placeholder:Cn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Cn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Cn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),b6=m6,Rn="swapBackground",ce=`ly.img.${Rn}`,zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Mn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var h6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${An}`]:"Swap Background...",[`${An}.description`]:"Change the background of the image",[`${An}.prompt`]:"Swap Background...",[`${zu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${zu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:Mn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),v6=h6,Fn="styleTransfer",_r=`ly.img.${Fn}`,w6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Uu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var k6=[{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."}],x6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${w6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Uu(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:()=>{k6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Uu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),I6=x6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,C6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Ru(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var A6=[{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."}],M6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Lr,type:"quick",kind:"image",label:`${C6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Ru(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{A6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Ru(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),j6=M6,Bn="createVariant",de=`ly.img.${Bn}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,jn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var S6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${jn}`]:"Create Variant...",[`${jn}.description`]:"Create a variation of the image",[`${jn}.prompt`]:"Create Variant...",[`${Fu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${jn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Fu}`,enable:t=>{if(!Yr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await bt(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),$6=S6,qn="combineImages",pe=`ly.img.${qn}`,Vu=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,ea=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function $n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var E6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ea}.apply`]:"Combine",[`${ea}`]:"Combine Images...",[`${ea}.prompt`]:"Image Combination Instructions",[`${Vu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Vu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:$n(l,"prompt"),placeholder:$n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:$n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:$n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),_6=E6,Gn="remixPage",Bu=`ly.img.${Gn}`,L6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,T6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function O6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var N6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${T6}`]:"Turn Page into Image"}}),{id:Bu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${L6}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Bu}.button`,{label:O6(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"})}}})}}),D6=N6,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ta}`]:"Remix Page...",[`${ta}.prompt`]:"Remix Page Prompt",[`${qu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${qu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(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:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:En(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),z6=P6,fe="ly.img.ai.image-generation";function U6(e){return{async initialize({cesdk:t}){if(t==null)return;E9(t,Nr,"1.69.0-nightly.20260130"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(dv,gv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:f6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});R6(e),r.register(b6({cesdk:t})),r.register(v6({cesdk:t})),r.register(I6({cesdk:t})),r.register(j6({cesdk:t})),r.register($6({cesdk:t})),r.register(_6({cesdk:t})),r.register(D6({cesdk:t})),r.register(z6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Du(a).map(d=>d({cesdk:t}))),c=await Promise.all(Du(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await F3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await cv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:y6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Nn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),L9({cesdk:t,panelId:fe})):n()}}}function R6(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 F6=U6,V6=e=>({name:Nr,version:"1.69.0-nightly.20260130",...F6(e)}),Cc=V6;var B6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var q6=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")}},G6=typeof global=="object"&&global&&global.Object===Object&&global,ld=G6,Y6=typeof self=="object"&&self&&self.Object===Object&&self,H6=ld||Y6||Function("return this")(),te=H6,Z6=te.Symbol,kt=Z6,sd=Object.prototype,Q6=sd.hasOwnProperty,W6=sd.toString,Qr=kt?kt.toStringTag:void 0;function K6(e){var t=Q6.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=W6.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var J6=K6,X6=Object.prototype,ew=X6.toString;function tw(e){return ew.call(e)}var rw=tw,iw="[object Null]",nw="[object Undefined]",Ac=kt?kt.toStringTag:void 0;function ow(e){return e==null?e===void 0?nw:iw:Ac&&Ac in Object(e)?J6(e):rw(e)}var li=ow;function aw(e){return e!=null&&typeof e=="object"}var za=aw,zJ=Array.isArray;function lw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ud=lw,sw="[object AsyncFunction]",uw="[object Function]",cw="[object GeneratorFunction]",dw="[object Proxy]";function pw(e){if(!ud(e))return!1;var t=li(e);return t==uw||t==cw||t==sw||t==dw}var gw=pw,fw=te["__core-js_shared__"],wa=fw,Mc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function yw(e){return!!Mc&&Mc in e}var mw=yw,bw=Function.prototype,hw=bw.toString;function vw(e){if(e!=null){try{return hw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=vw,ww=/[\\^$.*+?()[\]{}|]/g,kw=/^\[object .+?Constructor\]$/,xw=Function.prototype,Iw=Object.prototype,Cw=xw.toString,Aw=Iw.hasOwnProperty,Mw=RegExp("^"+Cw.call(Aw).replace(ww,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function jw(e){if(!ud(e)||mw(e))return!1;var t=gw(e)?Mw:kw;return t.test(Oe(e))}var Sw=jw;function $w(e,t){return e?.[t]}var Ew=$w;function _w(e,t){var r=Ew(e,t);return Sw(r)?r:void 0}var It=_w,Lw=It(te,"WeakMap"),ja=Lw;function Tw(e,t){return e===t||e!==e&&t!==t}var Ow=Tw,Nw=9007199254740991;function Dw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Nw}var Pw=Dw,UJ=Object.prototype,zw="[object Arguments]";function Uw(e){return za(e)&&li(e)==zw}var jc=Uw,cd=Object.prototype,Rw=cd.hasOwnProperty,Fw=cd.propertyIsEnumerable,RJ=jc(function(){return arguments}())?jc:function(e){return za(e)&&Rw.call(e,"callee")&&!Fw.call(e,"callee")},dd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Sc=dd&&typeof module=="object"&&module&&!module.nodeType&&module,Vw=Sc&&Sc.exports===dd,$c=Vw?te.Buffer:void 0,FJ=$c?$c.isBuffer:void 0,Bw="[object Arguments]",qw="[object Array]",Gw="[object Boolean]",Yw="[object Date]",Hw="[object Error]",Zw="[object Function]",Qw="[object Map]",Ww="[object Number]",Kw="[object Object]",Jw="[object RegExp]",Xw="[object Set]",ek="[object String]",tk="[object WeakMap]",rk="[object ArrayBuffer]",ik="[object DataView]",nk="[object Float32Array]",ok="[object Float64Array]",ak="[object Int8Array]",lk="[object Int16Array]",sk="[object Int32Array]",uk="[object Uint8Array]",ck="[object Uint8ClampedArray]",dk="[object Uint16Array]",pk="[object Uint32Array]",D={};D[nk]=D[ok]=D[ak]=D[lk]=D[sk]=D[uk]=D[ck]=D[dk]=D[pk]=!0;D[Bw]=D[qw]=D[rk]=D[Gw]=D[ik]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=D[Xw]=D[ek]=D[tk]=!1;function gk(e){return za(e)&&Pw(e.length)&&!!D[li(e)]}var fk=gk;function yk(e){return function(t){return e(t)}}var mk=yk,pd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=pd&&typeof module=="object"&&module&&!module.nodeType&&module,bk=ti&&ti.exports===pd,ka=bk&&ld.process,hk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Ec=hk,_c=Ec&&Ec.isTypedArray,VJ=_c?mk(_c):fk,vk=Object.prototype,BJ=vk.hasOwnProperty;function wk(e,t){return function(r){return e(t(r))}}var kk=wk,qJ=kk(Object.keys,Object),xk=Object.prototype,GJ=xk.hasOwnProperty,Ik=It(Object,"create"),ii=Ik;function Ck(){this.__data__=ii?ii(null):{},this.size=0}var Ak=Ck;function Mk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var jk=Mk,Sk="__lodash_hash_undefined__",$k=Object.prototype,Ek=$k.hasOwnProperty;function _k(e){var t=this.__data__;if(ii){var r=t[e];return r===Sk?void 0:r}return Ek.call(t,e)?t[e]:void 0}var Lk=_k,Tk=Object.prototype,Ok=Tk.hasOwnProperty;function Nk(e){var t=this.__data__;return ii?t[e]!==void 0:Ok.call(t,e)}var Dk=Nk,Pk="__lodash_hash_undefined__";function zk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?Pk:t,this}var Uk=zk;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=Ak;Ct.prototype.delete=jk;Ct.prototype.get=Lk;Ct.prototype.has=Dk;Ct.prototype.set=Uk;var Lc=Ct;function Rk(){this.__data__=[],this.size=0}var Fk=Rk;function Vk(e,t){for(var r=e.length;r--;)if(Ow(e[r][0],t))return r;return-1}var Zn=Vk,Bk=Array.prototype,qk=Bk.splice;function Gk(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():qk.call(t,r,1),--this.size,!0}var Yk=Gk;function Hk(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var Zk=Hk;function Qk(e){return Zn(this.__data__,e)>-1}var Wk=Qk;function Kk(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Jk=Kk;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=Fk;At.prototype.delete=Yk;At.prototype.get=Zk;At.prototype.has=Wk;At.prototype.set=Jk;var Qn=At,Xk=It(te,"Map"),ni=Xk;function ex(){this.size=0,this.__data__={hash:new Lc,map:new(ni||Qn),string:new Lc}}var tx=ex;function rx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ix=rx;function nx(e,t){var r=e.__data__;return ix(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=nx;function ox(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var ax=ox;function lx(e){return Wn(this,e).get(e)}var sx=lx;function ux(e){return Wn(this,e).has(e)}var cx=ux;function dx(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var px=dx;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=tx;Mt.prototype.delete=ax;Mt.prototype.get=sx;Mt.prototype.has=cx;Mt.prototype.set=px;var gd=Mt;function gx(){this.__data__=new Qn,this.size=0}var fx=gx;function yx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var mx=yx;function bx(e){return this.__data__.get(e)}var hx=bx;function vx(e){return this.__data__.has(e)}var wx=vx,kx=200;function xx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<kx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new gd(i)}return r.set(e,t),this.size=r.size,this}var Ix=xx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=fx;si.prototype.delete=mx;si.prototype.get=hx;si.prototype.has=wx;si.prototype.set=Ix;var Cx=Object.prototype,YJ=Cx.propertyIsEnumerable,Ax=It(te,"DataView"),Sa=Ax,Mx=It(te,"Promise"),$a=Mx,jx=It(te,"Set"),Ea=jx,Tc="[object Map]",Sx="[object Object]",Oc="[object Promise]",Nc="[object Set]",Dc="[object WeakMap]",Pc="[object DataView]",$x=Oe(Sa),Ex=Oe(ni),_x=Oe($a),Lx=Oe(Ea),Tx=Oe(ja),ht=li;(Sa&&ht(new Sa(new ArrayBuffer(1)))!=Pc||ni&&ht(new ni)!=Tc||$a&&ht($a.resolve())!=Oc||Ea&&ht(new Ea)!=Nc||ja&&ht(new ja)!=Dc)&&(ht=function(e){var t=li(e),r=t==Sx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case $x:return Pc;case Ex:return Tc;case _x:return Oc;case Lx:return Nc;case Tx:return Dc}return t});var HJ=te.Uint8Array,Ox="__lodash_hash_undefined__";function Nx(e){return this.__data__.set(e,Ox),this}var Dx=Nx;function Px(e){return this.__data__.has(e)}var zx=Px;function _a(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new gd;++t<r;)this.add(e[t])}_a.prototype.add=_a.prototype.push=Dx;_a.prototype.has=zx;var zc=kt?kt.prototype:void 0,ZJ=zc?zc.valueOf:void 0,Ux=Object.prototype,QJ=Ux.hasOwnProperty,Rx=Object.prototype,WJ=Rx.hasOwnProperty,KJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function fd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Fx(e,t){let r=await fd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Vx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return fd(i,t)}function Bx(e){return e!==void 0}var qx=Bx;function ui(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function di(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Hn=class yd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},Gx=class md{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new md),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Yx(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 Hx({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 Zx=Hx,xa="ly.img.ai.temp";async function Qx(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function Wx(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function bd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Kx(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 Jx(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ua(e){return e instanceof Error&&e.name==="AbortError"}function Xx(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function eI(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 iI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var nI=iI;function oI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var aI=oI;function lI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),sI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Jx(e)}))}function sI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Uc=lI,uI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ra=uI;function cI(e,t,r){switch(t){case"image":return dI(e,r[t]);case"video":return pI(e,r[t]);case"sticker":return gI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function pI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ra,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function gI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var fI=cI;async function yI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return mI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return bI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return hI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return vI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function mI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function bI(e,t,r){let i=t.width,n=t.height,a=await Xx(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function hI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function vI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var hd=yI;function wI(e){switch(e.userFlow){case"placeholder":return xI(e);case"generation-only":return kI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function kI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=bd(),c=await hd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function xI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=bd(),c=fI(s,a,o);if(i=await Kx(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await hd(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ua(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var II=wI;function Fa(e){return`${e}.generating`}function CI(e){return`${e}.abort`}function AI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(CI(d),()=>{}),m=c.global(Fa(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await II({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Uc(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;MI(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Ua(y))return;Uc(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function MI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var vd=AI;async function jI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return vd(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var SI=jI;function wd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=wd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function $I(e){return Jr(e,{...e})}function _I(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function EI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return LI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function LI(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=TI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function TI(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var kd=EI;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function xd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Id(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?OI(e,c,r,i,n,a,o,s):Cd(e,c,r,i,n,a,o,s);case"boolean":return Ad(e,c,r,i,n,a,o,s);case"number":case"integer":return Md(e,c,r,i,n,a,o,s);case"object":return La(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return NI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function La(e,t,r,i,n,a,o,s){let c=kd(t.schema??{},i).reduce((l,u)=>{let d=Id(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Cd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=ve(t,r,o,"placeholder"),f=ci(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=di(d,h,f,t.schema.default,""),v=l(p,b),k=DI(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function OI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:m,icons:f}=xd(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),b=ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=di(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Ad(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!di(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Md(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=di(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function NI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=xd(t.schema),x=ci(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Cd,boolean:Ad,integer:Md,object:La},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:ve(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>La(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=di(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function DI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var PI=Id,zI={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Rc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function UI(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Rc(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Rc(g);n[a(l.id,g)]=m}})}});let c={...zI,...n};Object.keys(c).length>0&&ui(r.cesdk,{en:c})}async function RI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=$I(r.document),c=wd(s,r.inputReference);if(!_I(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=kd(l,r);return UI(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=PI(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});vd(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var FI=RI;async function VI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return SI(e,t);case"schema":return FI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var BI=VI;function qI(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new G6(o,r)),o}return i}var GI=qI;function YI(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var HI=YI,Ia="@imgly/plugin-ai-generation",ZI=`
|
|
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 tI(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 rI=tI;function iI(){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 nI=iI;function oI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),aI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Wx(e)}))}function aI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Uc=oI,lI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ra=lI;function sI(e,t,r){switch(t){case"image":return uI(e,r[t]);case"video":return cI(e,r[t]);case"sticker":return dI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function uI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function cI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ra,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function dI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var pI=sI;async function gI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return fI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return yI(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 mI(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 bI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function fI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function yI(e,t,r){let i=t.width,n=t.height,a=await Kx(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 mI(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 bI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var hd=gI;function hI(e){switch(e.userFlow){case"placeholder":return wI(e);case"generation-only":return vI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function vI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=bd(),c=await hd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function wI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=bd(),c=pI(s,a,o);if(i=await Qx(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await hd(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ua(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var kI=hI;function Fa(e){return`${e}.generating`}function xI(e){return`${e}.abort`}function II(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(xI(d),()=>{}),m=c.global(Fa(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await kI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Uc(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;CI(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Ua(y))return;Uc(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function 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 vd=II;async function AI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return vd(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var MI=AI;function wd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=wd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function jI(e){return Jr(e,{...e})}function SI(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 $I(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return EI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function EI(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=_I(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function _I(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var kd=$I;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function xd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Id(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?LI(e,c,r,i,n,a,o,s):Cd(e,c,r,i,n,a,o,s);case"boolean":return Ad(e,c,r,i,n,a,o,s);case"number":case"integer":return Md(e,c,r,i,n,a,o,s);case"object":return La(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return TI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function La(e,t,r,i,n,a,o,s){let c=kd(t.schema??{},i).reduce((l,u)=>{let d=Id(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Cd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=ve(t,r,o,"placeholder"),f=ci(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=di(d,h,f,t.schema.default,""),v=l(p,b),k=OI(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function LI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:m,icons:f}=xd(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),b=ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=di(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Ad(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!di(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Md(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=di(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function TI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=xd(t.schema),x=ci(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Cd,boolean:Ad,integer:Md,object:La},M=(w,$)=>w.$ref?w.$ref.split("/").pop():$.split(".").pop()??$,A=(w,$)=>({id:w,label:ve(t,r,o,$),icon:k[$]??k[w]});m.forEach((w,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(w.$ref||w.title){let j=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>La(e,{id:C,schema:{...w,title:v[j]||j}},r,i,n,a,o,s),f.push(A(C,j))}else if(w.type==="string"&&w.enum)w.enum.forEach(j=>{f.push(A(j,j))});else if(w.type&&I[w.type]){let j=I[w.type];h[C]=()=>j(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let _=di(d,y,x,t.schema.default,null),S=_!=null?f.find(w=>w.id===_)??f[0]:f[0],E=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in h){let w=h[E.value.id]();b[E.value.id]=w}return()=>{let w=b[E.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function OI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var NI=Id,DI={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Rc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function PI(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Rc(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Rc(g);n[a(l.id,g)]=m}})}});let c={...DI,...n};Object.keys(c).length>0&&ui(r.cesdk,{en:c})}async function zI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=jI(r.document),c=wd(s,r.inputReference);if(!SI(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=kd(l,r);return PI(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=NI(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});vd(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var UI=zI;async function RI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return MI(e,t);case"schema":return UI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var FI=RI;function VI(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 B6(o,r)),o}return i}var BI=VI;function qI(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 GI=qI,Ia="@imgly/plugin-ai-generation",YI=`
|
|
148
148
|
<svg>
|
|
149
149
|
<symbol
|
|
150
150
|
fill="none"
|
|
@@ -205,11 +205,11 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
205
205
|
|
|
206
206
|
</symbol>
|
|
207
207
|
</svg>
|
|
208
|
-
`,
|
|
209
|
-
`,"+")}`}}async function XI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function eC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return tC(a,r.abortSignal)}async function*tC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await jd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function rC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:iC(220,i),duration:i,thumbnailUrl:void 0}}function iC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return nC(i,44100)}function nC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jd(e){return new Promise(t=>{setTimeout(t,e)})}var oC=WI,aC="USER_CANCEL";function lC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Zx([...e.provider.output.middleware??[],...r?.middlewares??[],Wx({enable:r?.debug}),oC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:eI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ua(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===aC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var sC=lC;async function uC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=GI(a),s=HI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=sC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await BI(a,c);tI(r.cesdk,"@imgly/plugin-ai-generation",QI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Hx.get().register(u),u}var Ca=uC;function cC(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new Y6(n,r,i);return r.engine.asset.addSource(a),a.id}var dC=cC;function Xr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function pC(e,t,r,i){let{cesdk:n}=r;ui(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=fC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=gC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=dC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Yx)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function gC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Xr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Xr(e,"fromText.label"),icon:f.value!=="fromText"&&Fc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Xr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Fc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function fC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Fc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var yC=pC,mC=typeof global=="object"&&global&&global.Object===Object&&global,Sd=mC,bC=typeof self=="object"&&self&&self.Object===Object&&self,hC=Sd||bC||Function("return this")(),re=hC,vC=re.Symbol,xt=vC,$d=Object.prototype,wC=$d.hasOwnProperty,kC=$d.toString,Kr=xt?xt.toStringTag:void 0;function xC(e){var t=wC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=kC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var IC=xC,CC=Object.prototype,AC=CC.toString;function MC(e){return AC.call(e)}var jC=MC,SC="[object Null]",$C="[object Undefined]",Vc=xt?xt.toStringTag:void 0;function _C(e){return e==null?e===void 0?$C:SC:Vc&&Vc in Object(e)?IC(e):jC(e)}var pi=_C;function EC(e){return e!=null&&typeof e=="object"}var Va=EC,nX=Array.isArray;function LC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _d=LC,TC="[object AsyncFunction]",OC="[object Function]",NC="[object GeneratorFunction]",DC="[object Proxy]";function PC(e){if(!_d(e))return!1;var t=pi(e);return t==OC||t==NC||t==TC||t==DC}var zC=PC,UC=re["__core-js_shared__"],Aa=UC,Bc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RC(e){return!!Bc&&Bc in e}var FC=RC,VC=Function.prototype,BC=VC.toString;function qC(e){if(e!=null){try{return BC.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=qC,GC=/[\\^$.*+?()[\]{}|]/g,YC=/^\[object .+?Constructor\]$/,HC=Function.prototype,ZC=Object.prototype,QC=HC.toString,WC=ZC.hasOwnProperty,KC=RegExp("^"+QC.call(WC).replace(GC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JC(e){if(!_d(e)||FC(e))return!1;var t=zC(e)?KC:YC;return t.test(Ne(e))}var XC=JC;function eA(e,t){return e?.[t]}var tA=eA;function rA(e,t){var r=tA(e,t);return XC(r)?r:void 0}var jt=rA,iA=jt(re,"WeakMap"),Ta=iA;function nA(e,t){return e===t||e!==e&&t!==t}var oA=nA,aA=9007199254740991;function lA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=aA}var sA=lA,oX=Object.prototype,uA="[object Arguments]";function cA(e){return Va(e)&&pi(e)==uA}var qc=cA,Ed=Object.prototype,dA=Ed.hasOwnProperty,pA=Ed.propertyIsEnumerable,aX=qc(function(){return arguments}())?qc:function(e){return Va(e)&&dA.call(e,"callee")&&!pA.call(e,"callee")},Ld=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gc=Ld&&typeof module=="object"&&module&&!module.nodeType&&module,gA=Gc&&Gc.exports===Ld,Yc=gA?re.Buffer:void 0,lX=Yc?Yc.isBuffer:void 0,fA="[object Arguments]",yA="[object Array]",mA="[object Boolean]",bA="[object Date]",hA="[object Error]",vA="[object Function]",wA="[object Map]",kA="[object Number]",xA="[object Object]",IA="[object RegExp]",CA="[object Set]",AA="[object String]",MA="[object WeakMap]",jA="[object ArrayBuffer]",SA="[object DataView]",$A="[object Float32Array]",_A="[object Float64Array]",EA="[object Int8Array]",LA="[object Int16Array]",TA="[object Int32Array]",OA="[object Uint8Array]",NA="[object Uint8ClampedArray]",DA="[object Uint16Array]",PA="[object Uint32Array]",P={};P[$A]=P[_A]=P[EA]=P[LA]=P[TA]=P[OA]=P[NA]=P[DA]=P[PA]=!0;P[fA]=P[yA]=P[jA]=P[mA]=P[SA]=P[bA]=P[hA]=P[vA]=P[wA]=P[kA]=P[xA]=P[IA]=P[CA]=P[AA]=P[MA]=!1;function zA(e){return Va(e)&&sA(e.length)&&!!P[pi(e)]}var UA=zA;function RA(e){return function(t){return e(t)}}var FA=RA,Td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Td&&typeof module=="object"&&module&&!module.nodeType&&module,VA=ri&&ri.exports===Td,Ma=VA&&Sd.process,BA=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ma&&Ma.binding&&Ma.binding("util")}catch{}}(),Hc=BA,Zc=Hc&&Hc.isTypedArray,sX=Zc?FA(Zc):UA,qA=Object.prototype,uX=qA.hasOwnProperty;function GA(e,t){return function(r){return e(t(r))}}var YA=GA,cX=YA(Object.keys,Object),HA=Object.prototype,dX=HA.hasOwnProperty,ZA=jt(Object,"create"),oi=ZA;function QA(){this.__data__=oi?oi(null):{},this.size=0}var WA=QA;function KA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var JA=KA,XA="__lodash_hash_undefined__",eM=Object.prototype,tM=eM.hasOwnProperty;function rM(e){var t=this.__data__;if(oi){var r=t[e];return r===XA?void 0:r}return tM.call(t,e)?t[e]:void 0}var iM=rM,nM=Object.prototype,oM=nM.hasOwnProperty;function aM(e){var t=this.__data__;return oi?t[e]!==void 0:oM.call(t,e)}var lM=aM,sM="__lodash_hash_undefined__";function uM(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=oi&&t===void 0?sM:t,this}var cM=uM;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=WA;St.prototype.delete=JA;St.prototype.get=iM;St.prototype.has=lM;St.prototype.set=cM;var Qc=St;function dM(){this.__data__=[],this.size=0}var pM=dM;function gM(e,t){for(var r=e.length;r--;)if(oA(e[r][0],t))return r;return-1}var Kn=gM,fM=Array.prototype,yM=fM.splice;function mM(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():yM.call(t,r,1),--this.size,!0}var bM=mM;function hM(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var vM=hM;function wM(e){return Kn(this.__data__,e)>-1}var kM=wM;function xM(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var IM=xM;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=pM;$t.prototype.delete=bM;$t.prototype.get=vM;$t.prototype.has=kM;$t.prototype.set=IM;var Jn=$t,CM=jt(re,"Map"),ai=CM;function AM(){this.size=0,this.__data__={hash:new Qc,map:new(ai||Jn),string:new Qc}}var MM=AM;function jM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var SM=jM;function $M(e,t){var r=e.__data__;return SM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=$M;function _M(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var EM=_M;function LM(e){return Xn(this,e).get(e)}var TM=LM;function OM(e){return Xn(this,e).has(e)}var NM=OM;function DM(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var PM=DM;function _t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}_t.prototype.clear=MM;_t.prototype.delete=EM;_t.prototype.get=TM;_t.prototype.has=NM;_t.prototype.set=PM;var Od=_t;function zM(){this.__data__=new Jn,this.size=0}var UM=zM;function RM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var FM=RM;function VM(e){return this.__data__.get(e)}var BM=VM;function qM(e){return this.__data__.has(e)}var GM=qM,YM=200;function HM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!ai||i.length<YM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Od(i)}return r.set(e,t),this.size=r.size,this}var ZM=HM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=UM;gi.prototype.delete=FM;gi.prototype.get=BM;gi.prototype.has=GM;gi.prototype.set=ZM;var QM=Object.prototype,pX=QM.propertyIsEnumerable,WM=jt(re,"DataView"),Oa=WM,KM=jt(re,"Promise"),Na=KM,JM=jt(re,"Set"),Da=JM,Wc="[object Map]",XM="[object Object]",Kc="[object Promise]",Jc="[object Set]",Xc="[object WeakMap]",ed="[object DataView]",ej=Ne(Oa),tj=Ne(ai),rj=Ne(Na),ij=Ne(Da),nj=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=ed||ai&&vt(new ai)!=Wc||Na&&vt(Na.resolve())!=Kc||Da&&vt(new Da)!=Jc||Ta&&vt(new Ta)!=Xc)&&(vt=function(e){var t=pi(e),r=t==XM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case ej:return ed;case tj:return Wc;case rj:return Kc;case ij:return Jc;case nj:return Xc}return t});var gX=re.Uint8Array,oj="__lodash_hash_undefined__";function aj(e){return this.__data__.set(e,oj),this}var lj=aj;function sj(e){return this.__data__.has(e)}var uj=sj;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Od;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=lj;Pa.prototype.has=uj;var td=xt?xt.prototype:void 0,fX=td?td.valueOf:void 0,cj=Object.prototype,yX=cj.hasOwnProperty,dj=Object.prototype,mX=dj.hasOwnProperty,bX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),hX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),vX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function pj(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Nd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return pj(i,t)}function gj(e){return e==null?[]:Array.isArray(e)?e:[e]}var rd=gj;function fj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function yj(e){return typeof e?.translate=="function"}function mj(e,t,r){return e&&fj(e)&&yj(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",id=`ly.img.${eo}`,bj=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,nd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function hj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var vj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${nd}`]:"Create Video...",[`${nd}.description`]:"Create a video from the image"}}),{id,type:"quick",kind:"image",label:`${bj}`,enable:aI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${id}.button`,{label:hj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Nd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),wj=vj,to="animateBetweenImages",od=`ly.img.${to}`,kj=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,ad=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function xj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Ij=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${ad}`]:"Animate Between Images...",[`${ad}.description`]:"Create a video transitioning between two images"}}),{id:od,type:"quick",kind:"image",label:`${kj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${od}.button`,{label:xj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Nd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),Cj=Ij,be="ly.img.ai.video-generation";function Aj(e){return{async initialize({cesdk:t}){if(t==null)return;rI(t,ei,"1.68.0-rc.1"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ei}.action.label`;ui(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),Mj(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:mj(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(rd(n).map(l=>l({cesdk:t}))),s=await Promise.all(rd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await yC("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(wj({cesdk:t})),Hn.get().register(Cj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),nI({cesdk:t,panelId:be})):i()}}}function Mj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var jj=Aj,Sj=e=>({name:ei,version:"1.68.0-rc.1",...jj(e)}),Dd=Sj;var $j=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var _j=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ej=typeof global=="object"&&global&&global.Object===Object&&global,hp=Ej,Lj=typeof self=="object"&&self&&self.Object===Object&&self,Tj=hp||Lj||Function("return this")(),ie=Tj,Oj=ie.Symbol,Ot=Oj,vp=Object.prototype,Nj=vp.hasOwnProperty,Dj=vp.toString,fi=Ot?Ot.toStringTag:void 0;function Pj(e){var t=Nj.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=Dj.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var zj=Pj,Uj=Object.prototype,Rj=Uj.toString;function Fj(e){return Rj.call(e)}var Vj=Fj,Bj="[object Null]",qj="[object Undefined]",Pd=Ot?Ot.toStringTag:void 0;function Gj(e){return e==null?e===void 0?qj:Bj:Pd&&Pd in Object(e)?zj(e):Vj(e)}var Ai=Gj;function Yj(e){return e!=null&&typeof e=="object"}var ll=Yj,IX=Array.isArray;function Hj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wp=Hj,Zj="[object AsyncFunction]",Qj="[object Function]",Wj="[object GeneratorFunction]",Kj="[object Proxy]";function Jj(e){if(!wp(e))return!1;var t=Ai(e);return t==Qj||t==Wj||t==Zj||t==Kj}var Xj=Jj,eS=ie["__core-js_shared__"],Ba=eS,zd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tS(e){return!!zd&&zd in e}var rS=tS,iS=Function.prototype,nS=iS.toString;function oS(e){if(e!=null){try{return nS.call(e)}catch{}try{return e+""}catch{}}return""}var ze=oS,aS=/[\\^$.*+?()[\]{}|]/g,lS=/^\[object .+?Constructor\]$/,sS=Function.prototype,uS=Object.prototype,cS=sS.toString,dS=uS.hasOwnProperty,pS=RegExp("^"+cS.call(dS).replace(aS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gS(e){if(!wp(e)||rS(e))return!1;var t=Xj(e)?pS:lS;return t.test(ze(e))}var fS=gS;function yS(e,t){return e?.[t]}var mS=yS;function bS(e,t){var r=mS(e,t);return fS(r)?r:void 0}var Dt=bS,hS=Dt(ie,"WeakMap"),Wa=hS;function vS(e,t){return e===t||e!==e&&t!==t}var wS=vS,kS=9007199254740991;function xS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kS}var IS=xS,CX=Object.prototype,CS="[object Arguments]";function AS(e){return ll(e)&&Ai(e)==CS}var Ud=AS,kp=Object.prototype,MS=kp.hasOwnProperty,jS=kp.propertyIsEnumerable,AX=Ud(function(){return arguments}())?Ud:function(e){return ll(e)&&MS.call(e,"callee")&&!jS.call(e,"callee")},xp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rd=xp&&typeof module=="object"&&module&&!module.nodeType&&module,SS=Rd&&Rd.exports===xp,Fd=SS?ie.Buffer:void 0,MX=Fd?Fd.isBuffer:void 0,$S="[object Arguments]",_S="[object Array]",ES="[object Boolean]",LS="[object Date]",TS="[object Error]",OS="[object Function]",NS="[object Map]",DS="[object Number]",PS="[object Object]",zS="[object RegExp]",US="[object Set]",RS="[object String]",FS="[object WeakMap]",VS="[object ArrayBuffer]",BS="[object DataView]",qS="[object Float32Array]",GS="[object Float64Array]",YS="[object Int8Array]",HS="[object Int16Array]",ZS="[object Int32Array]",QS="[object Uint8Array]",WS="[object Uint8ClampedArray]",KS="[object Uint16Array]",JS="[object Uint32Array]",z={};z[qS]=z[GS]=z[YS]=z[HS]=z[ZS]=z[QS]=z[WS]=z[KS]=z[JS]=!0;z[$S]=z[_S]=z[VS]=z[ES]=z[BS]=z[LS]=z[TS]=z[OS]=z[NS]=z[DS]=z[PS]=z[zS]=z[US]=z[RS]=z[FS]=!1;function XS(e){return ll(e)&&IS(e.length)&&!!z[Ai(e)]}var e$=XS;function t$(e){return function(t){return e(t)}}var r$=t$,Ip=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Ip&&typeof module=="object"&&module&&!module.nodeType&&module,i$=vi&&vi.exports===Ip,qa=i$&&hp.process,n$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Vd=n$,Bd=Vd&&Vd.isTypedArray,jX=Bd?r$(Bd):e$,o$=Object.prototype,SX=o$.hasOwnProperty;function a$(e,t){return function(r){return e(t(r))}}var l$=a$,$X=l$(Object.keys,Object),s$=Object.prototype,_X=s$.hasOwnProperty,u$=Dt(Object,"create"),ki=u$;function c$(){this.__data__=ki?ki(null):{},this.size=0}var d$=c$;function p$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var g$=p$,f$="__lodash_hash_undefined__",y$=Object.prototype,m$=y$.hasOwnProperty;function b$(e){var t=this.__data__;if(ki){var r=t[e];return r===f$?void 0:r}return m$.call(t,e)?t[e]:void 0}var h$=b$,v$=Object.prototype,w$=v$.hasOwnProperty;function k$(e){var t=this.__data__;return ki?t[e]!==void 0:w$.call(t,e)}var x$=k$,I$="__lodash_hash_undefined__";function C$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?I$:t,this}var A$=C$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=d$;Pt.prototype.delete=g$;Pt.prototype.get=h$;Pt.prototype.has=x$;Pt.prototype.set=A$;var qd=Pt;function M$(){this.__data__=[],this.size=0}var j$=M$;function S$(e,t){for(var r=e.length;r--;)if(wS(e[r][0],t))return r;return-1}var ro=S$,$$=Array.prototype,_$=$$.splice;function E$(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_$.call(t,r,1),--this.size,!0}var L$=E$;function T$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var O$=T$;function N$(e){return ro(this.__data__,e)>-1}var D$=N$;function P$(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var z$=P$;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=j$;zt.prototype.delete=L$;zt.prototype.get=O$;zt.prototype.has=D$;zt.prototype.set=z$;var io=zt,U$=Dt(ie,"Map"),xi=U$;function R$(){this.size=0,this.__data__={hash:new qd,map:new(xi||io),string:new qd}}var F$=R$;function V$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var B$=V$;function q$(e,t){var r=e.__data__;return B$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=q$;function G$(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var Y$=G$;function H$(e){return no(this,e).get(e)}var Z$=H$;function Q$(e){return no(this,e).has(e)}var W$=Q$;function K$(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var J$=K$;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=F$;Ut.prototype.delete=Y$;Ut.prototype.get=Z$;Ut.prototype.has=W$;Ut.prototype.set=J$;var Cp=Ut;function X$(){this.__data__=new io,this.size=0}var e_=X$;function t_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var r_=t_;function i_(e){return this.__data__.get(e)}var n_=i_;function o_(e){return this.__data__.has(e)}var a_=o_,l_=200;function s_(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<l_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Cp(i)}return r.set(e,t),this.size=r.size,this}var u_=s_;function Mi(e){var t=this.__data__=new io(e);this.size=t.size}Mi.prototype.clear=e_;Mi.prototype.delete=r_;Mi.prototype.get=n_;Mi.prototype.has=a_;Mi.prototype.set=u_;var c_=Object.prototype,EX=c_.propertyIsEnumerable,d_=Dt(ie,"DataView"),Ka=d_,p_=Dt(ie,"Promise"),Ja=p_,g_=Dt(ie,"Set"),Xa=g_,Gd="[object Map]",f_="[object Object]",Yd="[object Promise]",Hd="[object Set]",Zd="[object WeakMap]",Qd="[object DataView]",y_=ze(Ka),m_=ze(xi),b_=ze(Ja),h_=ze(Xa),v_=ze(Wa),Et=Ai;(Ka&&Et(new Ka(new ArrayBuffer(1)))!=Qd||xi&&Et(new xi)!=Gd||Ja&&Et(Ja.resolve())!=Yd||Xa&&Et(new Xa)!=Hd||Wa&&Et(new Wa)!=Zd)&&(Et=function(e){var t=Ai(e),r=t==f_?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case y_:return Qd;case m_:return Gd;case b_:return Yd;case h_:return Hd;case v_:return Zd}return t});var LX=ie.Uint8Array,w_="__lodash_hash_undefined__";function k_(e){return this.__data__.set(e,w_),this}var x_=k_;function I_(e){return this.__data__.has(e)}var C_=I_;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Cp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=x_;el.prototype.has=C_;var Wd=Ot?Ot.prototype:void 0,TX=Wd?Wd.valueOf:void 0,A_=Object.prototype,OX=A_.hasOwnProperty,M_=Object.prototype,NX=M_.hasOwnProperty,DX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),PX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ap(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function j_(e,t){let r=await Ap(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function S_(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ap(i,t)}function $_(e){return e!==void 0}var __=$_;function sl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Mp=class jp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},E_=class Sp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Sp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function L_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function T_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var O_=T_,Ga="ly.img.ai.temp";async function N_(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function D_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function $p(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function P_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function z_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ul(e){return e instanceof Error&&e.name==="AbortError"}function U_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function R_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
208
|
+
`,HI=YI;function ZI(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await jd(2e3),await QI(t,e,r)):i(t,r)}async function QI(e,t,r){switch(t.kind){case"image":return WI(e,t,r);case"video":return KI(e,t,r);case"text":return JI(e,t,r);case"audio":return eC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function WI(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 Vx(s,r),l=await Fx(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 KI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function JI(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return XI(a,r.abortSignal)}async function*XI(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await jd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function eC(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:tC(220,i),duration:i,thumbnailUrl:void 0}}function tC(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 rC(i,44100)}function rC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jd(e){return new Promise(t=>{setTimeout(t,e)})}var iC=ZI,nC="USER_CANCEL";function oC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Yx([...e.provider.output.middleware??[],...r?.middlewares??[],Zx({enable:r?.debug}),iC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Jx(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ua(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===nC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var aC=oC;async function lC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=BI(a),s=GI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=aC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await FI(a,c);Xx(r.cesdk,"@imgly/plugin-ai-generation",HI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Gx.get().register(u),u}var Ca=lC;function sC(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 q6(n,r,i);return r.engine.asset.addSource(a),a.id}var uC=sC;function Xr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function cC(e,t,r,i){let{cesdk:n}=r;ui(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=pC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=dC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=uC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(qx)}),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 dC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),v=i.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,w=a&&E,$=h.length>1&&S;if((w||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Xr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Xr(e,"fromText.label"),icon:f.value!=="fromText"&&Fc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Xr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Fc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];M!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:j=>{M.setValue(j.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function pC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Fc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var gC=cC,fC=typeof global=="object"&&global&&global.Object===Object&&global,Sd=fC,yC=typeof self=="object"&&self&&self.Object===Object&&self,mC=Sd||yC||Function("return this")(),re=mC,bC=re.Symbol,xt=bC,$d=Object.prototype,hC=$d.hasOwnProperty,vC=$d.toString,Kr=xt?xt.toStringTag:void 0;function wC(e){var t=hC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=vC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var kC=wC,xC=Object.prototype,IC=xC.toString;function CC(e){return IC.call(e)}var AC=CC,MC="[object Null]",jC="[object Undefined]",Vc=xt?xt.toStringTag:void 0;function SC(e){return e==null?e===void 0?jC:MC:Vc&&Vc in Object(e)?kC(e):AC(e)}var pi=SC;function $C(e){return e!=null&&typeof e=="object"}var Va=$C,eX=Array.isArray;function EC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ed=EC,_C="[object AsyncFunction]",LC="[object Function]",TC="[object GeneratorFunction]",OC="[object Proxy]";function NC(e){if(!Ed(e))return!1;var t=pi(e);return t==LC||t==TC||t==_C||t==OC}var DC=NC,PC=re["__core-js_shared__"],Aa=PC,Bc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function zC(e){return!!Bc&&Bc in e}var UC=zC,RC=Function.prototype,FC=RC.toString;function VC(e){if(e!=null){try{return FC.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=VC,BC=/[\\^$.*+?()[\]{}|]/g,qC=/^\[object .+?Constructor\]$/,GC=Function.prototype,YC=Object.prototype,HC=GC.toString,ZC=YC.hasOwnProperty,QC=RegExp("^"+HC.call(ZC).replace(BC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function WC(e){if(!Ed(e)||UC(e))return!1;var t=DC(e)?QC:qC;return t.test(Ne(e))}var KC=WC;function JC(e,t){return e?.[t]}var XC=JC;function eA(e,t){var r=XC(e,t);return KC(r)?r:void 0}var jt=eA,tA=jt(re,"WeakMap"),Ta=tA;function rA(e,t){return e===t||e!==e&&t!==t}var iA=rA,nA=9007199254740991;function oA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=nA}var aA=oA,tX=Object.prototype,lA="[object Arguments]";function sA(e){return Va(e)&&pi(e)==lA}var qc=sA,_d=Object.prototype,uA=_d.hasOwnProperty,cA=_d.propertyIsEnumerable,rX=qc(function(){return arguments}())?qc:function(e){return Va(e)&&uA.call(e,"callee")&&!cA.call(e,"callee")},Ld=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gc=Ld&&typeof module=="object"&&module&&!module.nodeType&&module,dA=Gc&&Gc.exports===Ld,Yc=dA?re.Buffer:void 0,iX=Yc?Yc.isBuffer:void 0,pA="[object Arguments]",gA="[object Array]",fA="[object Boolean]",yA="[object Date]",mA="[object Error]",bA="[object Function]",hA="[object Map]",vA="[object Number]",wA="[object Object]",kA="[object RegExp]",xA="[object Set]",IA="[object String]",CA="[object WeakMap]",AA="[object ArrayBuffer]",MA="[object DataView]",jA="[object Float32Array]",SA="[object Float64Array]",$A="[object Int8Array]",EA="[object Int16Array]",_A="[object Int32Array]",LA="[object Uint8Array]",TA="[object Uint8ClampedArray]",OA="[object Uint16Array]",NA="[object Uint32Array]",P={};P[jA]=P[SA]=P[$A]=P[EA]=P[_A]=P[LA]=P[TA]=P[OA]=P[NA]=!0;P[pA]=P[gA]=P[AA]=P[fA]=P[MA]=P[yA]=P[mA]=P[bA]=P[hA]=P[vA]=P[wA]=P[kA]=P[xA]=P[IA]=P[CA]=!1;function DA(e){return Va(e)&&aA(e.length)&&!!P[pi(e)]}var PA=DA;function zA(e){return function(t){return e(t)}}var UA=zA,Td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Td&&typeof module=="object"&&module&&!module.nodeType&&module,RA=ri&&ri.exports===Td,Ma=RA&&Sd.process,FA=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ma&&Ma.binding&&Ma.binding("util")}catch{}}(),Hc=FA,Zc=Hc&&Hc.isTypedArray,nX=Zc?UA(Zc):PA,VA=Object.prototype,oX=VA.hasOwnProperty;function BA(e,t){return function(r){return e(t(r))}}var qA=BA,aX=qA(Object.keys,Object),GA=Object.prototype,lX=GA.hasOwnProperty,YA=jt(Object,"create"),oi=YA;function HA(){this.__data__=oi?oi(null):{},this.size=0}var ZA=HA;function QA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var WA=QA,KA="__lodash_hash_undefined__",JA=Object.prototype,XA=JA.hasOwnProperty;function eM(e){var t=this.__data__;if(oi){var r=t[e];return r===KA?void 0:r}return XA.call(t,e)?t[e]:void 0}var tM=eM,rM=Object.prototype,iM=rM.hasOwnProperty;function nM(e){var t=this.__data__;return oi?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]=oi&&t===void 0?aM:t,this}var sM=lM;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=ZA;St.prototype.delete=WA;St.prototype.get=tM;St.prototype.has=oM;St.prototype.set=sM;var Qc=St;function uM(){this.__data__=[],this.size=0}var cM=uM;function dM(e,t){for(var r=e.length;r--;)if(iA(e[r][0],t))return r;return-1}var Kn=dM,pM=Array.prototype,gM=pM.splice;function fM(e){var t=this.__data__,r=Kn(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=Kn(t,e);return r<0?void 0:t[r][1]}var bM=mM;function hM(e){return Kn(this.__data__,e)>-1}var vM=hM;function wM(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var kM=wM;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=cM;$t.prototype.delete=yM;$t.prototype.get=bM;$t.prototype.has=vM;$t.prototype.set=kM;var Jn=$t,xM=jt(re,"Map"),ai=xM;function IM(){this.size=0,this.__data__={hash:new Qc,map:new(ai||Jn),string:new Qc}}var CM=IM;function AM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var MM=AM;function jM(e,t){var r=e.__data__;return MM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=jM;function SM(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var $M=SM;function EM(e){return Xn(this,e).get(e)}var _M=EM;function LM(e){return Xn(this,e).has(e)}var TM=LM;function OM(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var NM=OM;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=CM;Et.prototype.delete=$M;Et.prototype.get=_M;Et.prototype.has=TM;Et.prototype.set=NM;var Od=Et;function DM(){this.__data__=new Jn,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 Jn){var i=r.__data__;if(!ai||i.length<qM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Od(i)}return r.set(e,t),this.size=r.size,this}var YM=GM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=PM;gi.prototype.delete=UM;gi.prototype.get=FM;gi.prototype.has=BM;gi.prototype.set=YM;var HM=Object.prototype,sX=HM.propertyIsEnumerable,ZM=jt(re,"DataView"),Oa=ZM,QM=jt(re,"Promise"),Na=QM,WM=jt(re,"Set"),Da=WM,Wc="[object Map]",KM="[object Object]",Kc="[object Promise]",Jc="[object Set]",Xc="[object WeakMap]",ed="[object DataView]",JM=Ne(Oa),XM=Ne(ai),ej=Ne(Na),tj=Ne(Da),rj=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=ed||ai&&vt(new ai)!=Wc||Na&&vt(Na.resolve())!=Kc||Da&&vt(new Da)!=Jc||Ta&&vt(new Ta)!=Xc)&&(vt=function(e){var t=pi(e),r=t==KM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case JM:return ed;case XM:return Wc;case ej:return Kc;case tj:return Jc;case rj:return Xc}return t});var uX=re.Uint8Array,ij="__lodash_hash_undefined__";function nj(e){return this.__data__.set(e,ij),this}var oj=nj;function aj(e){return this.__data__.has(e)}var lj=aj;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Od;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=oj;Pa.prototype.has=lj;var td=xt?xt.prototype:void 0,cX=td?td.valueOf:void 0,sj=Object.prototype,dX=sj.hasOwnProperty,uj=Object.prototype,pX=uj.hasOwnProperty,gX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),fX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function cj(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Nd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return cj(i,t)}function dj(e){return e==null?[]:Array.isArray(e)?e:[e]}var rd=dj;function pj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function gj(e){return typeof e?.translate=="function"}function fj(e,t,r){return e&&pj(e)&&gj(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",id=`ly.img.${eo}`,yj=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,nd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function mj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var bj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${nd}`]:"Create Video...",[`${nd}.description`]:"Create a video from the image"}}),{id,type:"quick",kind:"image",label:`${yj}`,enable:nI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${id}.button`,{label:mj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Nd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),hj=bj,to="animateBetweenImages",od=`ly.img.${to}`,vj=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,ad=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function wj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var kj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${ad}`]:"Animate Between Images...",[`${ad}.description`]:"Create a video transitioning between two images"}}),{id:od,type:"quick",kind:"image",label:`${vj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${od}.button`,{label:wj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Nd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),xj=kj,be="ly.img.ai.video-generation";function Ij(e){return{async initialize({cesdk:t}){if(t==null)return;eI(t,ei,"1.69.0-nightly.20260130"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ei}.action.label`;ui(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),Cj(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:fj(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(rd(n).map(l=>l({cesdk:t}))),s=await Promise.all(rd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await gC("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(hj({cesdk:t})),Hn.get().register(xj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),rI({cesdk:t,panelId:be})):i()}}}function Cj(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 Aj=Ij,Mj=e=>({name:ei,version:"1.69.0-nightly.20260130",...Aj(e)}),Dd=Mj;var jj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var 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")}},$j=typeof global=="object"&&global&&global.Object===Object&&global,hp=$j,Ej=typeof self=="object"&&self&&self.Object===Object&&self,_j=hp||Ej||Function("return this")(),ie=_j,Lj=ie.Symbol,Ot=Lj,vp=Object.prototype,Tj=vp.hasOwnProperty,Oj=vp.toString,fi=Ot?Ot.toStringTag:void 0;function Nj(e){var t=Tj.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=Oj.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var Dj=Nj,Pj=Object.prototype,zj=Pj.toString;function Uj(e){return zj.call(e)}var Rj=Uj,Fj="[object Null]",Vj="[object Undefined]",Pd=Ot?Ot.toStringTag:void 0;function Bj(e){return e==null?e===void 0?Vj:Fj:Pd&&Pd in Object(e)?Dj(e):Rj(e)}var Ai=Bj;function qj(e){return e!=null&&typeof e=="object"}var ll=qj,vX=Array.isArray;function Gj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wp=Gj,Yj="[object AsyncFunction]",Hj="[object Function]",Zj="[object GeneratorFunction]",Qj="[object Proxy]";function Wj(e){if(!wp(e))return!1;var t=Ai(e);return t==Hj||t==Zj||t==Yj||t==Qj}var Kj=Wj,Jj=ie["__core-js_shared__"],Ba=Jj,zd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Xj(e){return!!zd&&zd in e}var eS=Xj,tS=Function.prototype,rS=tS.toString;function iS(e){if(e!=null){try{return rS.call(e)}catch{}try{return e+""}catch{}}return""}var ze=iS,nS=/[\\^$.*+?()[\]{}|]/g,oS=/^\[object .+?Constructor\]$/,aS=Function.prototype,lS=Object.prototype,sS=aS.toString,uS=lS.hasOwnProperty,cS=RegExp("^"+sS.call(uS).replace(nS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dS(e){if(!wp(e)||eS(e))return!1;var t=Kj(e)?cS:oS;return t.test(ze(e))}var pS=dS;function gS(e,t){return e?.[t]}var fS=gS;function yS(e,t){var r=fS(e,t);return pS(r)?r:void 0}var Dt=yS,mS=Dt(ie,"WeakMap"),Wa=mS;function bS(e,t){return e===t||e!==e&&t!==t}var hS=bS,vS=9007199254740991;function wS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=vS}var kS=wS,wX=Object.prototype,xS="[object Arguments]";function IS(e){return ll(e)&&Ai(e)==xS}var Ud=IS,kp=Object.prototype,CS=kp.hasOwnProperty,AS=kp.propertyIsEnumerable,kX=Ud(function(){return arguments}())?Ud:function(e){return ll(e)&&CS.call(e,"callee")&&!AS.call(e,"callee")},xp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rd=xp&&typeof module=="object"&&module&&!module.nodeType&&module,MS=Rd&&Rd.exports===xp,Fd=MS?ie.Buffer:void 0,xX=Fd?Fd.isBuffer:void 0,jS="[object Arguments]",SS="[object Array]",$S="[object Boolean]",ES="[object Date]",_S="[object Error]",LS="[object Function]",TS="[object Map]",OS="[object Number]",NS="[object Object]",DS="[object RegExp]",PS="[object Set]",zS="[object String]",US="[object WeakMap]",RS="[object ArrayBuffer]",FS="[object DataView]",VS="[object Float32Array]",BS="[object Float64Array]",qS="[object Int8Array]",GS="[object Int16Array]",YS="[object Int32Array]",HS="[object Uint8Array]",ZS="[object Uint8ClampedArray]",QS="[object Uint16Array]",WS="[object Uint32Array]",z={};z[VS]=z[BS]=z[qS]=z[GS]=z[YS]=z[HS]=z[ZS]=z[QS]=z[WS]=!0;z[jS]=z[SS]=z[RS]=z[$S]=z[FS]=z[ES]=z[_S]=z[LS]=z[TS]=z[OS]=z[NS]=z[DS]=z[PS]=z[zS]=z[US]=!1;function KS(e){return ll(e)&&kS(e.length)&&!!z[Ai(e)]}var JS=KS;function XS(e){return function(t){return e(t)}}var e$=XS,Ip=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Ip&&typeof module=="object"&&module&&!module.nodeType&&module,t$=vi&&vi.exports===Ip,qa=t$&&hp.process,r$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Vd=r$,Bd=Vd&&Vd.isTypedArray,IX=Bd?e$(Bd):JS,i$=Object.prototype,CX=i$.hasOwnProperty;function n$(e,t){return function(r){return e(t(r))}}var o$=n$,AX=o$(Object.keys,Object),a$=Object.prototype,MX=a$.hasOwnProperty,l$=Dt(Object,"create"),ki=l$;function s$(){this.__data__=ki?ki(null):{},this.size=0}var u$=s$;function c$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var d$=c$,p$="__lodash_hash_undefined__",g$=Object.prototype,f$=g$.hasOwnProperty;function y$(e){var t=this.__data__;if(ki){var r=t[e];return r===p$?void 0:r}return f$.call(t,e)?t[e]:void 0}var m$=y$,b$=Object.prototype,h$=b$.hasOwnProperty;function v$(e){var t=this.__data__;return ki?t[e]!==void 0:h$.call(t,e)}var w$=v$,k$="__lodash_hash_undefined__";function x$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?k$:t,this}var I$=x$;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=u$;Pt.prototype.delete=d$;Pt.prototype.get=m$;Pt.prototype.has=w$;Pt.prototype.set=I$;var qd=Pt;function C$(){this.__data__=[],this.size=0}var A$=C$;function M$(e,t){for(var r=e.length;r--;)if(hS(e[r][0],t))return r;return-1}var ro=M$,j$=Array.prototype,S$=j$.splice;function $$(e){var t=this.__data__,r=ro(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 E$=$$;function _$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var L$=_$;function T$(e){return ro(this.__data__,e)>-1}var O$=T$;function N$(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 D$=N$;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=A$;zt.prototype.delete=E$;zt.prototype.get=L$;zt.prototype.has=O$;zt.prototype.set=D$;var io=zt,P$=Dt(ie,"Map"),xi=P$;function z$(){this.size=0,this.__data__={hash:new qd,map:new(xi||io),string:new qd}}var U$=z$;function R$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var F$=R$;function V$(e,t){var r=e.__data__;return F$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=V$;function B$(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var q$=B$;function G$(e){return no(this,e).get(e)}var Y$=G$;function H$(e){return no(this,e).has(e)}var Z$=H$;function Q$(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var W$=Q$;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=U$;Ut.prototype.delete=q$;Ut.prototype.get=Y$;Ut.prototype.has=Z$;Ut.prototype.set=W$;var Cp=Ut;function K$(){this.__data__=new io,this.size=0}var J$=K$;function X$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var eE=X$;function tE(e){return this.__data__.get(e)}var rE=tE;function iE(e){return this.__data__.has(e)}var nE=iE,oE=200;function aE(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<oE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Cp(i)}return r.set(e,t),this.size=r.size,this}var lE=aE;function Mi(e){var t=this.__data__=new io(e);this.size=t.size}Mi.prototype.clear=J$;Mi.prototype.delete=eE;Mi.prototype.get=rE;Mi.prototype.has=nE;Mi.prototype.set=lE;var sE=Object.prototype,jX=sE.propertyIsEnumerable,uE=Dt(ie,"DataView"),Ka=uE,cE=Dt(ie,"Promise"),Ja=cE,dE=Dt(ie,"Set"),Xa=dE,Gd="[object Map]",pE="[object Object]",Yd="[object Promise]",Hd="[object Set]",Zd="[object WeakMap]",Qd="[object DataView]",gE=ze(Ka),fE=ze(xi),yE=ze(Ja),mE=ze(Xa),bE=ze(Wa),_t=Ai;(Ka&&_t(new Ka(new ArrayBuffer(1)))!=Qd||xi&&_t(new xi)!=Gd||Ja&&_t(Ja.resolve())!=Yd||Xa&&_t(new Xa)!=Hd||Wa&&_t(new Wa)!=Zd)&&(_t=function(e){var t=Ai(e),r=t==pE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case gE:return Qd;case fE:return Gd;case yE:return Yd;case mE:return Hd;case bE:return Zd}return t});var SX=ie.Uint8Array,hE="__lodash_hash_undefined__";function vE(e){return this.__data__.set(e,hE),this}var wE=vE;function kE(e){return this.__data__.has(e)}var xE=kE;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Cp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=wE;el.prototype.has=xE;var Wd=Ot?Ot.prototype:void 0,$X=Wd?Wd.valueOf:void 0,IE=Object.prototype,EX=IE.hasOwnProperty,CE=Object.prototype,_X=CE.hasOwnProperty,LX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),TX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),OX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ap(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function AE(e,t){let r=await Ap(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function ME(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ap(i,t)}function jE(e){return e!==void 0}var SE=jE;function sl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Mp=class jp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},$E=class Sp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Sp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function EE(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 _E({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var LE=_E,Ga="ly.img.ai.temp";async function TE(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function OE(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function $p(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function NE(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 DE(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 PE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function zE(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 F_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Kd=F_;function V_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),B_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:D_(e)}))}function B_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Jd=V_,q_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",cl=q_;function G_(e,t,r){switch(t){case"image":return Y_(e,r[t]);case"video":return H_(e,r[t]);case"sticker":return Z_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Y_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function H_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:cl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Z_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Q_=G_;async function W_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return K_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return J_(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return X_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return eE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function K_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function J_(e,t,r){let i=t.width,n=t.height,a=await P_(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function X_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function eE(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var _p=W_;function tE(e){switch(e.userFlow){case"placeholder":return iE(e);case"generation-only":return rE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function rE(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=$p(),c=await _p(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function iE(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=$p(),c=Q_(s,a,o);if(i=await N_(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await _p(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var nE=tE;function dl(e){return`${e}.generating`}function oE(e){return`${e}.abort`}function aE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(oE(d),()=>{}),m=c.global(dl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await nE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Jd(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;lE(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ul(y))return;Jd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function lE(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ep=aE;async function sE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(dl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ep(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var uE=sE;function Lp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function bi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Lp(e,t.$ref),n={...bi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=bi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>bi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=bi(e,t[n],r));return i}return t}function cE(e){return bi(e,{...e})}function dE(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function pE(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return gE(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function gE(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=fE(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function fE(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Tp=pE;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Op(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Np(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?yE(e,c,r,i,n,a,o,s):Dp(e,c,r,i,n,a,o,s);case"boolean":return Pp(e,c,r,i,n,a,o,s);case"number":case"integer":return zp(e,c,r,i,n,a,o,s);case"object":return tl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return mE(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function tl(e,t,r,i,n,a,o,s){let c=Tp(t.schema??{},i).reduce((l,u)=>{let d=Np(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Dp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Si(d,h,f,t.schema.default,""),v=l(p,b),k=bE(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function yE(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:m,icons:f}=Op(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),b=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Pp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function zp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Si(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function mE(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Op(t.schema),x=ji(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Dp,boolean:Pp,integer:zp,object:tl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:xe(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>tl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Si(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function bE(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var hE=Np,vE={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Xd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wE(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Xd(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Xd(g);n[a(l.id,g)]=m}})}});let c={...vE,...n};Object.keys(c).length>0&&sl(r.cesdk,{en:c})}async function kE({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=cE(r.document),c=Lp(s,r.inputReference);if(!dE(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Tp(l,r);return wE(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=hE(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Ep(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var xE=kE;async function IE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return uE(e,t);case"schema":return xE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CE=IE;function AE(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $j(o,r)),o}return i}var ME=AE;function jE(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var SE=jE,Ya="@imgly/plugin-ai-generation",$E=`
|
|
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 UE(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Kd=UE;function RE(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),FE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:OE(e)}))}function FE(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=RE,VE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",cl=VE;function BE(e,t,r){switch(t){case"image":return qE(e,r[t]);case"video":return GE(e,r[t]);case"sticker":return YE(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function GE(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:cl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function YE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var HE=BE;async function ZE(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 QE(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 WE(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 KE(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 JE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function QE(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 WE(e,t,r){let i=t.width,n=t.height,a=await NE(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 KE(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 JE(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 Ep=ZE;function XE(e){switch(e.userFlow){case"placeholder":return t_(e);case"generation-only":return e_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function e_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=$p(),c=await Ep(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 t_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=$p(),c=HE(s,a,o);if(i=await TE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Ep(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var r_=XE;function dl(e){return`${e}.generating`}function i_(e){return`${e}.abort`}function n_(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(i_(d),()=>{}),m=c.global(dl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await r_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Jd(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;o_(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ul(y))return;Jd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function o_(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 _p=n_;async function a_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(dl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return _p(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var l_=a_;function Lp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function bi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Lp(e,t.$ref),n={...bi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=bi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>bi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=bi(e,t[n],r));return i}return t}function s_(e){return bi(e,{...e})}function u_(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 c_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return d_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function d_(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=p_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function p_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Tp=c_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Op(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Np(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?g_(e,c,r,i,n,a,o,s):Dp(e,c,r,i,n,a,o,s);case"boolean":return Pp(e,c,r,i,n,a,o,s);case"number":case"integer":return zp(e,c,r,i,n,a,o,s);case"object":return tl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return f_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function tl(e,t,r,i,n,a,o,s){let c=Tp(t.schema??{},i).reduce((l,u)=>{let d=Np(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Dp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Si(d,h,f,t.schema.default,""),v=l(p,b),k=y_(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function g_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:m,icons:f}=Op(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),b=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Pp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function zp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Si(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function f_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Op(t.schema),x=ji(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Dp,boolean:Pp,integer:zp,object:tl},M=(w,$)=>w.$ref?w.$ref.split("/").pop():$.split(".").pop()??$,A=(w,$)=>({id:w,label:xe(t,r,o,$),icon:k[$]??k[w]});m.forEach((w,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(w.$ref||w.title){let j=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>tl(e,{id:C,schema:{...w,title:v[j]||j}},r,i,n,a,o,s),f.push(A(C,j))}else if(w.type==="string"&&w.enum)w.enum.forEach(j=>{f.push(A(j,j))});else if(w.type&&I[w.type]){let j=I[w.type];h[C]=()=>j(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let _=Si(d,y,x,t.schema.default,null),S=_!=null?f.find(w=>w.id===_)??f[0]:f[0],E=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in h){let w=h[E.value.id]();b[E.value.id]=w}return()=>{let w=b[E.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function y_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var m_=Np,b_={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Xd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function h_(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Xd(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Xd(g);n[a(l.id,g)]=m}})}});let c={...b_,...n};Object.keys(c).length>0&&sl(r.cesdk,{en:c})}async function v_({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=s_(r.document),c=Lp(s,r.inputReference);if(!u_(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Tp(l,r);return h_(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=m_(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});_p(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var w_=v_;async function k_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return l_(e,t);case"schema":return w_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var x_=k_;function I_(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 jj(o,r)),o}return i}var C_=I_;function A_(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 M_=A_,Ya="@imgly/plugin-ai-generation",j_=`
|
|
213
213
|
<svg>
|
|
214
214
|
<symbol
|
|
215
215
|
fill="none"
|
|
@@ -270,8 +270,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
270
270
|
|
|
271
271
|
</symbol>
|
|
272
272
|
</svg>
|
|
273
|
-
`,
|
|
274
|
-
`,"+")}`}}async function OE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function NE(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=yi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=yi(n,o)}else"customPrompt"in e?a=yi(n,"custom"):a=yi(n,"improved");else a=yi(n,"generated");return DE(a,r.abortSignal)}async function*DE(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Up(100)}return{kind:"text",text:e}}function yi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function PE(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:zE(220,i),duration:i,thumbnailUrl:void 0}}function zE(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return UE(i,44100)}function UE(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function Up(e){return new Promise(t=>{setTimeout(t,e)})}var RE=EE,FE="USER_CANCEL";function VE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=L_([...e.provider.output.middleware??[],...r?.middlewares??[],O_({enable:r?.debug}),RE({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:z_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===FE?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var BE=VE;async function qE(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Mp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=ME(a),s=SE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=BE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await CE(a,c);U_(r.cesdk,"@imgly/plugin-ai-generation",_E);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return E_.get().register(u),u}var Ha=qE;function GE(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _j(n,r,i);return r.engine.asset.addSource(a),a.id}var YE=GE;function hi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function HE(e,t,r,i){let{cesdk:n}=r;sl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ha(e,u,r,i)));o.push(...l),a=QE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ha(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ha(e,d,r,i)));o.push(...u),a=ZE({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=YE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(__)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function ZE({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:hi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:hi(e,"fromText.label"),icon:f.value!=="fromText"&&ep(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:hi(e,"fromImage.label"),icon:f.value!=="fromImage"&&ep(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function QE({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function ep(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var tp=HE,WE=typeof global=="object"&&global&&global.Object===Object&&global,Rp=WE,KE=typeof self=="object"&&self&&self.Object===Object&&self,JE=Rp||KE||Function("return this")(),ne=JE,XE=ne.Symbol,Nt=XE,Fp=Object.prototype,eL=Fp.hasOwnProperty,tL=Fp.toString,mi=Nt?Nt.toStringTag:void 0;function rL(e){var t=eL.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=tL.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var iL=rL,nL=Object.prototype,oL=nL.toString;function aL(e){return oL.call(e)}var lL=aL,sL="[object Null]",uL="[object Undefined]",rp=Nt?Nt.toStringTag:void 0;function cL(e){return e==null?e===void 0?uL:sL:rp&&rp in Object(e)?iL(e):lL(e)}var $i=cL;function dL(e){return e!=null&&typeof e=="object"}var pl=dL,UX=Array.isArray;function pL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vp=pL,gL="[object AsyncFunction]",fL="[object Function]",yL="[object GeneratorFunction]",mL="[object Proxy]";function bL(e){if(!Vp(e))return!1;var t=$i(e);return t==fL||t==yL||t==gL||t==mL}var hL=bL,vL=ne["__core-js_shared__"],Za=vL,ip=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wL(e){return!!ip&&ip in e}var kL=wL,xL=Function.prototype,IL=xL.toString;function CL(e){if(e!=null){try{return IL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=CL,AL=/[\\^$.*+?()[\]{}|]/g,ML=/^\[object .+?Constructor\]$/,jL=Function.prototype,SL=Object.prototype,$L=jL.toString,_L=SL.hasOwnProperty,EL=RegExp("^"+$L.call(_L).replace(AL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function LL(e){if(!Vp(e)||kL(e))return!1;var t=hL(e)?EL:ML;return t.test(Ue(e))}var TL=LL;function OL(e,t){return e?.[t]}var NL=OL;function DL(e,t){var r=NL(e,t);return TL(r)?r:void 0}var Rt=DL,PL=Rt(ne,"WeakMap"),rl=PL;function zL(e,t){return e===t||e!==e&&t!==t}var UL=zL,RL=9007199254740991;function FL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=RL}var VL=FL,RX=Object.prototype,BL="[object Arguments]";function qL(e){return pl(e)&&$i(e)==BL}var np=qL,Bp=Object.prototype,GL=Bp.hasOwnProperty,YL=Bp.propertyIsEnumerable,FX=np(function(){return arguments}())?np:function(e){return pl(e)&&GL.call(e,"callee")&&!YL.call(e,"callee")},qp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,op=qp&&typeof module=="object"&&module&&!module.nodeType&&module,HL=op&&op.exports===qp,ap=HL?ne.Buffer:void 0,VX=ap?ap.isBuffer:void 0,ZL="[object Arguments]",QL="[object Array]",WL="[object Boolean]",KL="[object Date]",JL="[object Error]",XL="[object Function]",eT="[object Map]",tT="[object Number]",rT="[object Object]",iT="[object RegExp]",nT="[object Set]",oT="[object String]",aT="[object WeakMap]",lT="[object ArrayBuffer]",sT="[object DataView]",uT="[object Float32Array]",cT="[object Float64Array]",dT="[object Int8Array]",pT="[object Int16Array]",gT="[object Int32Array]",fT="[object Uint8Array]",yT="[object Uint8ClampedArray]",mT="[object Uint16Array]",bT="[object Uint32Array]",U={};U[uT]=U[cT]=U[dT]=U[pT]=U[gT]=U[fT]=U[yT]=U[mT]=U[bT]=!0;U[ZL]=U[QL]=U[lT]=U[WL]=U[sT]=U[KL]=U[JL]=U[XL]=U[eT]=U[tT]=U[rT]=U[iT]=U[nT]=U[oT]=U[aT]=!1;function hT(e){return pl(e)&&VL(e.length)&&!!U[$i(e)]}var vT=hT;function wT(e){return function(t){return e(t)}}var kT=wT,Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,xT=wi&&wi.exports===Gp,Qa=xT&&Rp.process,IT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),lp=IT,sp=lp&&lp.isTypedArray,BX=sp?kT(sp):vT,CT=Object.prototype,qX=CT.hasOwnProperty;function AT(e,t){return function(r){return e(t(r))}}var MT=AT,GX=MT(Object.keys,Object),jT=Object.prototype,YX=jT.hasOwnProperty,ST=Rt(Object,"create"),Ii=ST;function $T(){this.__data__=Ii?Ii(null):{},this.size=0}var _T=$T;function ET(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var LT=ET,TT="__lodash_hash_undefined__",OT=Object.prototype,NT=OT.hasOwnProperty;function DT(e){var t=this.__data__;if(Ii){var r=t[e];return r===TT?void 0:r}return NT.call(t,e)?t[e]:void 0}var PT=DT,zT=Object.prototype,UT=zT.hasOwnProperty;function RT(e){var t=this.__data__;return Ii?t[e]!==void 0:UT.call(t,e)}var FT=RT,VT="__lodash_hash_undefined__";function BT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?VT:t,this}var qT=BT;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=_T;Ft.prototype.delete=LT;Ft.prototype.get=PT;Ft.prototype.has=FT;Ft.prototype.set=qT;var up=Ft;function GT(){this.__data__=[],this.size=0}var YT=GT;function HT(e,t){for(var r=e.length;r--;)if(UL(e[r][0],t))return r;return-1}var oo=HT,ZT=Array.prototype,QT=ZT.splice;function WT(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():QT.call(t,r,1),--this.size,!0}var KT=WT;function JT(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var XT=JT;function eO(e){return oo(this.__data__,e)>-1}var tO=eO;function rO(e,t){var r=this.__data__,i=oo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var iO=rO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=YT;Vt.prototype.delete=KT;Vt.prototype.get=XT;Vt.prototype.has=tO;Vt.prototype.set=iO;var ao=Vt,nO=Rt(ne,"Map"),Ci=nO;function oO(){this.size=0,this.__data__={hash:new up,map:new(Ci||ao),string:new up}}var aO=oO;function lO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var sO=lO;function uO(e,t){var r=e.__data__;return sO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=uO;function cO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var dO=cO;function pO(e){return lo(this,e).get(e)}var gO=pO;function fO(e){return lo(this,e).has(e)}var yO=fO;function mO(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var bO=mO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=aO;Bt.prototype.delete=dO;Bt.prototype.get=gO;Bt.prototype.has=yO;Bt.prototype.set=bO;var Yp=Bt;function hO(){this.__data__=new ao,this.size=0}var vO=hO;function wO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var kO=wO;function xO(e){return this.__data__.get(e)}var IO=xO;function CO(e){return this.__data__.has(e)}var AO=CO,MO=200;function jO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<MO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var SO=jO;function _i(e){var t=this.__data__=new ao(e);this.size=t.size}_i.prototype.clear=vO;_i.prototype.delete=kO;_i.prototype.get=IO;_i.prototype.has=AO;_i.prototype.set=SO;var $O=Object.prototype,HX=$O.propertyIsEnumerable,_O=Rt(ne,"DataView"),il=_O,EO=Rt(ne,"Promise"),nl=EO,LO=Rt(ne,"Set"),ol=LO,cp="[object Map]",TO="[object Object]",dp="[object Promise]",pp="[object Set]",gp="[object WeakMap]",fp="[object DataView]",OO=Ue(il),NO=Ue(Ci),DO=Ue(nl),PO=Ue(ol),zO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=fp||Ci&&Lt(new Ci)!=cp||nl&&Lt(nl.resolve())!=dp||ol&&Lt(new ol)!=pp||rl&&Lt(new rl)!=gp)&&(Lt=function(e){var t=$i(e),r=t==TO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case OO:return fp;case NO:return cp;case DO:return dp;case PO:return pp;case zO:return gp}return t});var ZX=ne.Uint8Array,UO="__lodash_hash_undefined__";function RO(e){return this.__data__.set(e,UO),this}var FO=RO;function VO(e){return this.__data__.has(e)}var BO=VO;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=FO;al.prototype.has=BO;var yp=Nt?Nt.prototype:void 0,QX=yp?yp.valueOf:void 0,qO=Object.prototype,WX=qO.hasOwnProperty,GO=Object.prototype,KX=GO.hasOwnProperty,JX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),XX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function YO(e){return e==null?[]:Array.isArray(e)?e:[e]}var mp=YO;function HO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ZO(e){return typeof e?.translate=="function"}function bp(e,t,r){return e&&HO(e)&&ZO(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function QO(e){return{async initialize({cesdk:t}){if(t==null)return;R_(t,we,"1.68.0-rc.1"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;sl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),WO(e);let n=Mp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:bp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:bp(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(mp(s).map(f=>f({cesdk:t}))),u=await Promise.all(mp(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await tp("audio",l,{cesdk:t},e),m=await tp("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,m.panel.builderRenderFunction),Kd({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),Kd({cesdk:t,panelId:De})):o()}}}function WO(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var KO=QO,JO=e=>({name:we,version:"1.68.0-rc.1",...KO(e)}),Hp=JO;var XO="@imgly/plugin-ai-text-generation",eN=`
|
|
273
|
+
`,S_=j_;function $_(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Up(2e3),await E_(t,e,r)):i(t,r)}async function E_(e,t,r){switch(t.kind){case"image":return __(e,t,r);case"video":return L_(e,t,r);case"text":return T_(e,t,r);case"audio":return N_(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function __(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 ME(s,r),l=await AE(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 L_(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function T_(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 O_(a,r.abortSignal)}async function*O_(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Up(100)}return{kind:"text",text:e}}function yi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function N_(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:D_(220,i),duration:i,thumbnailUrl:void 0}}function D_(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 P_(i,44100)}function P_(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function Up(e){return new Promise(t=>{setTimeout(t,e)})}var z_=$_,U_="USER_CANCEL";function R_(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=EE([...e.provider.output.middleware??[],...r?.middlewares??[],LE({enable:r?.debug}),z_({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:DE(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===U_?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var F_=R_;async function V_(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Mp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=C_(a),s=M_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=F_({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await x_(a,c);PE(r.cesdk,"@imgly/plugin-ai-generation",S_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return $E.get().register(u),u}var Ha=V_;function B_(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 q_=B_;function hi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function G_(e,t,r,i){let{cesdk:n}=r;sl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ha(e,u,r,i)));o.push(...l),a=H_({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ha(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ha(e,d,r,i)));o.push(...u),a=Y_({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=q_({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(SE)}),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 Y_({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),v=i.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,w=a&&E,$=h.length>1&&S;if((w||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:hi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:hi(e,"fromText.label"),icon:f.value!=="fromText"&&ep(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:hi(e,"fromImage.label"),icon:f.value!=="fromImage"&&ep(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];M!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:j=>{M.setValue(j.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function H_({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function ep(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var tp=G_,Z_=typeof global=="object"&&global&&global.Object===Object&&global,Rp=Z_,Q_=typeof self=="object"&&self&&self.Object===Object&&self,W_=Rp||Q_||Function("return this")(),ne=W_,K_=ne.Symbol,Nt=K_,Fp=Object.prototype,J_=Fp.hasOwnProperty,X_=Fp.toString,mi=Nt?Nt.toStringTag:void 0;function eL(e){var t=J_.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=X_.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var tL=eL,rL=Object.prototype,iL=rL.toString;function nL(e){return iL.call(e)}var oL=nL,aL="[object Null]",lL="[object Undefined]",rp=Nt?Nt.toStringTag:void 0;function sL(e){return e==null?e===void 0?lL:aL:rp&&rp in Object(e)?tL(e):oL(e)}var $i=sL;function uL(e){return e!=null&&typeof e=="object"}var pl=uL,NX=Array.isArray;function cL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vp=cL,dL="[object AsyncFunction]",pL="[object Function]",gL="[object GeneratorFunction]",fL="[object Proxy]";function yL(e){if(!Vp(e))return!1;var t=$i(e);return t==pL||t==gL||t==dL||t==fL}var mL=yL,bL=ne["__core-js_shared__"],Za=bL,ip=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function hL(e){return!!ip&&ip in e}var vL=hL,wL=Function.prototype,kL=wL.toString;function xL(e){if(e!=null){try{return kL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=xL,IL=/[\\^$.*+?()[\]{}|]/g,CL=/^\[object .+?Constructor\]$/,AL=Function.prototype,ML=Object.prototype,jL=AL.toString,SL=ML.hasOwnProperty,$L=RegExp("^"+jL.call(SL).replace(IL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function EL(e){if(!Vp(e)||vL(e))return!1;var t=mL(e)?$L:CL;return t.test(Ue(e))}var _L=EL;function LL(e,t){return e?.[t]}var TL=LL;function OL(e,t){var r=TL(e,t);return _L(r)?r:void 0}var Rt=OL,NL=Rt(ne,"WeakMap"),rl=NL;function DL(e,t){return e===t||e!==e&&t!==t}var PL=DL,zL=9007199254740991;function UL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=zL}var RL=UL,DX=Object.prototype,FL="[object Arguments]";function VL(e){return pl(e)&&$i(e)==FL}var np=VL,Bp=Object.prototype,BL=Bp.hasOwnProperty,qL=Bp.propertyIsEnumerable,PX=np(function(){return arguments}())?np:function(e){return pl(e)&&BL.call(e,"callee")&&!qL.call(e,"callee")},qp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,op=qp&&typeof module=="object"&&module&&!module.nodeType&&module,GL=op&&op.exports===qp,ap=GL?ne.Buffer:void 0,zX=ap?ap.isBuffer:void 0,YL="[object Arguments]",HL="[object Array]",ZL="[object Boolean]",QL="[object Date]",WL="[object Error]",KL="[object Function]",JL="[object Map]",XL="[object Number]",eT="[object Object]",tT="[object RegExp]",rT="[object Set]",iT="[object String]",nT="[object WeakMap]",oT="[object ArrayBuffer]",aT="[object DataView]",lT="[object Float32Array]",sT="[object Float64Array]",uT="[object Int8Array]",cT="[object Int16Array]",dT="[object Int32Array]",pT="[object Uint8Array]",gT="[object Uint8ClampedArray]",fT="[object Uint16Array]",yT="[object Uint32Array]",U={};U[lT]=U[sT]=U[uT]=U[cT]=U[dT]=U[pT]=U[gT]=U[fT]=U[yT]=!0;U[YL]=U[HL]=U[oT]=U[ZL]=U[aT]=U[QL]=U[WL]=U[KL]=U[JL]=U[XL]=U[eT]=U[tT]=U[rT]=U[iT]=U[nT]=!1;function mT(e){return pl(e)&&RL(e.length)&&!!U[$i(e)]}var bT=mT;function hT(e){return function(t){return e(t)}}var vT=hT,Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,wT=wi&&wi.exports===Gp,Qa=wT&&Rp.process,kT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),lp=kT,sp=lp&&lp.isTypedArray,UX=sp?vT(sp):bT,xT=Object.prototype,RX=xT.hasOwnProperty;function IT(e,t){return function(r){return e(t(r))}}var CT=IT,FX=CT(Object.keys,Object),AT=Object.prototype,VX=AT.hasOwnProperty,MT=Rt(Object,"create"),Ii=MT;function jT(){this.__data__=Ii?Ii(null):{},this.size=0}var ST=jT;function $T(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ET=$T,_T="__lodash_hash_undefined__",LT=Object.prototype,TT=LT.hasOwnProperty;function OT(e){var t=this.__data__;if(Ii){var r=t[e];return r===_T?void 0:r}return TT.call(t,e)?t[e]:void 0}var NT=OT,DT=Object.prototype,PT=DT.hasOwnProperty;function zT(e){var t=this.__data__;return Ii?t[e]!==void 0:PT.call(t,e)}var UT=zT,RT="__lodash_hash_undefined__";function FT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?RT:t,this}var VT=FT;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=ST;Ft.prototype.delete=ET;Ft.prototype.get=NT;Ft.prototype.has=UT;Ft.prototype.set=VT;var up=Ft;function BT(){this.__data__=[],this.size=0}var qT=BT;function GT(e,t){for(var r=e.length;r--;)if(PL(e[r][0],t))return r;return-1}var oo=GT,YT=Array.prototype,HT=YT.splice;function ZT(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():HT.call(t,r,1),--this.size,!0}var QT=ZT;function WT(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var KT=WT;function JT(e){return oo(this.__data__,e)>-1}var XT=JT;function eO(e,t){var r=this.__data__,i=oo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var tO=eO;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=qT;Vt.prototype.delete=QT;Vt.prototype.get=KT;Vt.prototype.has=XT;Vt.prototype.set=tO;var ao=Vt,rO=Rt(ne,"Map"),Ci=rO;function iO(){this.size=0,this.__data__={hash:new up,map:new(Ci||ao),string:new up}}var nO=iO;function oO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var aO=oO;function lO(e,t){var r=e.__data__;return aO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=lO;function sO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var uO=sO;function cO(e){return lo(this,e).get(e)}var dO=cO;function pO(e){return lo(this,e).has(e)}var gO=pO;function fO(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var yO=fO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=nO;Bt.prototype.delete=uO;Bt.prototype.get=dO;Bt.prototype.has=gO;Bt.prototype.set=yO;var Yp=Bt;function mO(){this.__data__=new ao,this.size=0}var bO=mO;function hO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var vO=hO;function wO(e){return this.__data__.get(e)}var kO=wO;function xO(e){return this.__data__.has(e)}var IO=xO,CO=200;function AO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<CO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var MO=AO;function Ei(e){var t=this.__data__=new ao(e);this.size=t.size}Ei.prototype.clear=bO;Ei.prototype.delete=vO;Ei.prototype.get=kO;Ei.prototype.has=IO;Ei.prototype.set=MO;var jO=Object.prototype,BX=jO.propertyIsEnumerable,SO=Rt(ne,"DataView"),il=SO,$O=Rt(ne,"Promise"),nl=$O,EO=Rt(ne,"Set"),ol=EO,cp="[object Map]",_O="[object Object]",dp="[object Promise]",pp="[object Set]",gp="[object WeakMap]",fp="[object DataView]",LO=Ue(il),TO=Ue(Ci),OO=Ue(nl),NO=Ue(ol),DO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=fp||Ci&&Lt(new Ci)!=cp||nl&&Lt(nl.resolve())!=dp||ol&&Lt(new ol)!=pp||rl&&Lt(new rl)!=gp)&&(Lt=function(e){var t=$i(e),r=t==_O?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case LO:return fp;case TO:return cp;case OO:return dp;case NO:return pp;case DO:return gp}return t});var qX=ne.Uint8Array,PO="__lodash_hash_undefined__";function zO(e){return this.__data__.set(e,PO),this}var UO=zO;function RO(e){return this.__data__.has(e)}var FO=RO;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=UO;al.prototype.has=FO;var yp=Nt?Nt.prototype:void 0,GX=yp?yp.valueOf:void 0,VO=Object.prototype,YX=VO.hasOwnProperty,BO=Object.prototype,HX=BO.hasOwnProperty,ZX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),QX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),WX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function qO(e){return e==null?[]:Array.isArray(e)?e:[e]}var mp=qO;function GO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function YO(e){return typeof e?.translate=="function"}function bp(e,t,r){return e&&GO(e)&&YO(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function HO(e){return{async initialize({cesdk:t}){if(t==null)return;zE(t,we,"1.69.0-nightly.20260130"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;sl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),ZO(e);let n=Mp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:bp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:bp(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(mp(s).map(f=>f({cesdk:t}))),u=await Promise.all(mp(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await tp("audio",l,{cesdk:t},e),m=await tp("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,m.panel.builderRenderFunction),Kd({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),Kd({cesdk:t,panelId:De})):o()}}}function ZO(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 QO=HO,WO=e=>({name:we,version:"1.69.0-nightly.20260130",...QO(e)}),Hp=WO;var KO="@imgly/plugin-ai-text-generation",JO=`
|
|
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
|
-
`,tN=eN,rN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var iN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},nN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Og=nN,oN=typeof global=="object"&&global&&global.Object===Object&&global,Ng=oN,aN=typeof self=="object"&&self&&self.Object===Object&&self,lN=Ng||aN||Function("return this")(),oe=lN,sN=oe.Symbol,Ht=sN,Dg=Object.prototype,uN=Dg.hasOwnProperty,cN=Dg.toString,Ei=Ht?Ht.toStringTag:void 0;function dN(e){var t=uN.call(e,Ei),r=e[Ei];try{e[Ei]=void 0;var i=!0}catch{}var n=cN.call(e);return i&&(t?e[Ei]=r:delete e[Ei]),n}var pN=dN,gN=Object.prototype,fN=gN.toString;function yN(e){return fN.call(e)}var mN=yN,bN="[object Null]",hN="[object Undefined]",Zp=Ht?Ht.toStringTag:void 0;function vN(e){return e==null?e===void 0?hN:bN:Zp&&Zp in Object(e)?pN(e):mN(e)}var qi=vN;function wN(e){return e!=null&&typeof e=="object"}var Tl=wN,nee=Array.isArray;function kN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pg=kN,xN="[object AsyncFunction]",IN="[object Function]",CN="[object GeneratorFunction]",AN="[object Proxy]";function MN(e){if(!Pg(e))return!1;var t=qi(e);return t==IN||t==CN||t==xN||t==AN}var jN=MN,SN=oe["__core-js_shared__"],gl=SN,Qp=function(){var e=/[^.]+$/.exec(gl&&gl.keys&&gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $N(e){return!!Qp&&Qp in e}var _N=$N,EN=Function.prototype,LN=EN.toString;function TN(e){if(e!=null){try{return LN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=TN,ON=/[\\^$.*+?()[\]{}|]/g,NN=/^\[object .+?Constructor\]$/,DN=Function.prototype,PN=Object.prototype,zN=DN.toString,UN=PN.hasOwnProperty,RN=RegExp("^"+zN.call(UN).replace(ON,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function FN(e){if(!Pg(e)||_N(e))return!1;var t=jN(e)?RN:NN;return t.test(Ve(e))}var VN=FN;function BN(e,t){return e?.[t]}var qN=BN;function GN(e,t){var r=qN(e,t);return VN(r)?r:void 0}var Qt=GN,YN=Qt(oe,"WeakMap"),kl=YN;function HN(e,t){return e===t||e!==e&&t!==t}var ZN=HN,QN=9007199254740991;function WN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=QN}var KN=WN,oee=Object.prototype,JN="[object Arguments]";function XN(e){return Tl(e)&&qi(e)==JN}var Wp=XN,zg=Object.prototype,eD=zg.hasOwnProperty,tD=zg.propertyIsEnumerable,aee=Wp(function(){return arguments}())?Wp:function(e){return Tl(e)&&eD.call(e,"callee")&&!tD.call(e,"callee")},Ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kp=Ug&&typeof module=="object"&&module&&!module.nodeType&&module,rD=Kp&&Kp.exports===Ug,Jp=rD?oe.Buffer:void 0,lee=Jp?Jp.isBuffer:void 0,iD="[object Arguments]",nD="[object Array]",oD="[object Boolean]",aD="[object Date]",lD="[object Error]",sD="[object Function]",uD="[object Map]",cD="[object Number]",dD="[object Object]",pD="[object RegExp]",gD="[object Set]",fD="[object String]",yD="[object WeakMap]",mD="[object ArrayBuffer]",bD="[object DataView]",hD="[object Float32Array]",vD="[object Float64Array]",wD="[object Int8Array]",kD="[object Int16Array]",xD="[object Int32Array]",ID="[object Uint8Array]",CD="[object Uint8ClampedArray]",AD="[object Uint16Array]",MD="[object Uint32Array]",R={};R[hD]=R[vD]=R[wD]=R[kD]=R[xD]=R[ID]=R[CD]=R[AD]=R[MD]=!0;R[iD]=R[nD]=R[mD]=R[oD]=R[bD]=R[aD]=R[lD]=R[sD]=R[uD]=R[cD]=R[dD]=R[pD]=R[gD]=R[fD]=R[yD]=!1;function jD(e){return Tl(e)&&KN(e.length)&&!!R[qi(e)]}var SD=jD;function $D(e){return function(t){return e(t)}}var _D=$D,Rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=Rg&&typeof module=="object"&&module&&!module.nodeType&&module,ED=zi&&zi.exports===Rg,fl=ED&&Ng.process,LD=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||fl&&fl.binding&&fl.binding("util")}catch{}}(),Xp=LD,eg=Xp&&Xp.isTypedArray,see=eg?_D(eg):SD,TD=Object.prototype,uee=TD.hasOwnProperty;function OD(e,t){return function(r){return e(t(r))}}var ND=OD,cee=ND(Object.keys,Object),DD=Object.prototype,dee=DD.hasOwnProperty,PD=Qt(Object,"create"),Ri=PD;function zD(){this.__data__=Ri?Ri(null):{},this.size=0}var UD=zD;function RD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var FD=RD,VD="__lodash_hash_undefined__",BD=Object.prototype,qD=BD.hasOwnProperty;function GD(e){var t=this.__data__;if(Ri){var r=t[e];return r===VD?void 0:r}return qD.call(t,e)?t[e]:void 0}var YD=GD,HD=Object.prototype,ZD=HD.hasOwnProperty;function QD(e){var t=this.__data__;return Ri?t[e]!==void 0:ZD.call(t,e)}var WD=QD,KD="__lodash_hash_undefined__";function JD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?KD:t,this}var XD=JD;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=UD;Wt.prototype.delete=FD;Wt.prototype.get=YD;Wt.prototype.has=WD;Wt.prototype.set=XD;var tg=Wt;function eP(){this.__data__=[],this.size=0}var tP=eP;function rP(e,t){for(var r=e.length;r--;)if(ZN(e[r][0],t))return r;return-1}var so=rP,iP=Array.prototype,nP=iP.splice;function oP(e){var t=this.__data__,r=so(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():nP.call(t,r,1),--this.size,!0}var aP=oP;function lP(e){var t=this.__data__,r=so(t,e);return r<0?void 0:t[r][1]}var sP=lP;function uP(e){return so(this.__data__,e)>-1}var cP=uP;function dP(e,t){var r=this.__data__,i=so(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var pP=dP;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=tP;Kt.prototype.delete=aP;Kt.prototype.get=sP;Kt.prototype.has=cP;Kt.prototype.set=pP;var uo=Kt,gP=Qt(oe,"Map"),Fi=gP;function fP(){this.size=0,this.__data__={hash:new tg,map:new(Fi||uo),string:new tg}}var yP=fP;function mP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var bP=mP;function hP(e,t){var r=e.__data__;return bP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var co=hP;function vP(e){var t=co(this,e).delete(e);return this.size-=t?1:0,t}var wP=vP;function kP(e){return co(this,e).get(e)}var xP=kP;function IP(e){return co(this,e).has(e)}var CP=IP;function AP(e,t){var r=co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var MP=AP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=yP;Jt.prototype.delete=wP;Jt.prototype.get=xP;Jt.prototype.has=CP;Jt.prototype.set=MP;var Fg=Jt;function jP(){this.__data__=new uo,this.size=0}var SP=jP;function $P(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var _P=$P;function EP(e){return this.__data__.get(e)}var LP=EP;function TP(e){return this.__data__.has(e)}var OP=TP,NP=200;function DP(e,t){var r=this.__data__;if(r instanceof uo){var i=r.__data__;if(!Fi||i.length<NP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fg(i)}return r.set(e,t),this.size=r.size,this}var PP=DP;function Gi(e){var t=this.__data__=new uo(e);this.size=t.size}Gi.prototype.clear=SP;Gi.prototype.delete=_P;Gi.prototype.get=LP;Gi.prototype.has=OP;Gi.prototype.set=PP;var zP=Object.prototype,pee=zP.propertyIsEnumerable,UP=Qt(oe,"DataView"),xl=UP,RP=Qt(oe,"Promise"),Il=RP,FP=Qt(oe,"Set"),Cl=FP,rg="[object Map]",VP="[object Object]",ig="[object Promise]",ng="[object Set]",og="[object WeakMap]",ag="[object DataView]",BP=Ve(xl),qP=Ve(Fi),GP=Ve(Il),YP=Ve(Cl),HP=Ve(kl),qt=qi;(xl&&qt(new xl(new ArrayBuffer(1)))!=ag||Fi&&qt(new Fi)!=rg||Il&&qt(Il.resolve())!=ig||Cl&&qt(new Cl)!=ng||kl&&qt(new kl)!=og)&&(qt=function(e){var t=qi(e),r=t==VP?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case BP:return ag;case qP:return rg;case GP:return ig;case YP:return ng;case HP:return og}return t});var gee=oe.Uint8Array,ZP="__lodash_hash_undefined__";function QP(e){return this.__data__.set(e,ZP),this}var WP=QP;function KP(e){return this.__data__.has(e)}var JP=KP;function Al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Fg;++t<r;)this.add(e[t])}Al.prototype.add=Al.prototype.push=WP;Al.prototype.has=JP;var lg=Ht?Ht.prototype:void 0,fee=lg?lg.valueOf:void 0,XP=Object.prototype,yee=XP.hasOwnProperty,ez=Object.prototype,mee=ez.hasOwnProperty,bee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),hee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),vee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function tz(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Vg(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Ml(e,t){let r=await Vg(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function rz(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Vg(i,t)}function iz(e){return e!==void 0}var po=iz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Yi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Ol=class Bg{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Bg),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},qg=class Gg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Gg),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function nz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function oz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var az=oz,yl="ly.img.ai.temp";async function lz(e,t){return e.engine.asset.findAllSources().includes(yl)||e.engine.asset.addLocalSource(yl),e.engine.asset.apply(yl,t)}function sz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Yg(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function uz(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function cz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Nl(e){return e instanceof Error&&e.name==="AbortError"}function dz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function pz(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
350
|
+
`,XO=JO,eN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var tN=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")}},rN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Og=rN,iN=typeof global=="object"&&global&&global.Object===Object&&global,Ng=iN,nN=typeof self=="object"&&self&&self.Object===Object&&self,oN=Ng||nN||Function("return this")(),oe=oN,aN=oe.Symbol,Ht=aN,Dg=Object.prototype,lN=Dg.hasOwnProperty,sN=Dg.toString,_i=Ht?Ht.toStringTag:void 0;function uN(e){var t=lN.call(e,_i),r=e[_i];try{e[_i]=void 0;var i=!0}catch{}var n=sN.call(e);return i&&(t?e[_i]=r:delete e[_i]),n}var cN=uN,dN=Object.prototype,pN=dN.toString;function gN(e){return pN.call(e)}var fN=gN,yN="[object Null]",mN="[object Undefined]",Zp=Ht?Ht.toStringTag:void 0;function bN(e){return e==null?e===void 0?mN:yN:Zp&&Zp in Object(e)?cN(e):fN(e)}var qi=bN;function hN(e){return e!=null&&typeof e=="object"}var Tl=hN,eee=Array.isArray;function vN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pg=vN,wN="[object AsyncFunction]",kN="[object Function]",xN="[object GeneratorFunction]",IN="[object Proxy]";function CN(e){if(!Pg(e))return!1;var t=qi(e);return t==kN||t==xN||t==wN||t==IN}var AN=CN,MN=oe["__core-js_shared__"],gl=MN,Qp=function(){var e=/[^.]+$/.exec(gl&&gl.keys&&gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jN(e){return!!Qp&&Qp in e}var SN=jN,$N=Function.prototype,EN=$N.toString;function _N(e){if(e!=null){try{return EN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=_N,LN=/[\\^$.*+?()[\]{}|]/g,TN=/^\[object .+?Constructor\]$/,ON=Function.prototype,NN=Object.prototype,DN=ON.toString,PN=NN.hasOwnProperty,zN=RegExp("^"+DN.call(PN).replace(LN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UN(e){if(!Pg(e)||SN(e))return!1;var t=AN(e)?zN:TN;return t.test(Ve(e))}var RN=UN;function FN(e,t){return e?.[t]}var VN=FN;function BN(e,t){var r=VN(e,t);return RN(r)?r:void 0}var Qt=BN,qN=Qt(oe,"WeakMap"),kl=qN;function GN(e,t){return e===t||e!==e&&t!==t}var YN=GN,HN=9007199254740991;function ZN(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HN}var QN=ZN,tee=Object.prototype,WN="[object Arguments]";function KN(e){return Tl(e)&&qi(e)==WN}var Wp=KN,zg=Object.prototype,JN=zg.hasOwnProperty,XN=zg.propertyIsEnumerable,ree=Wp(function(){return arguments}())?Wp:function(e){return Tl(e)&&JN.call(e,"callee")&&!XN.call(e,"callee")},Ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kp=Ug&&typeof module=="object"&&module&&!module.nodeType&&module,eD=Kp&&Kp.exports===Ug,Jp=eD?oe.Buffer:void 0,iee=Jp?Jp.isBuffer:void 0,tD="[object Arguments]",rD="[object Array]",iD="[object Boolean]",nD="[object Date]",oD="[object Error]",aD="[object Function]",lD="[object Map]",sD="[object Number]",uD="[object Object]",cD="[object RegExp]",dD="[object Set]",pD="[object String]",gD="[object WeakMap]",fD="[object ArrayBuffer]",yD="[object DataView]",mD="[object Float32Array]",bD="[object Float64Array]",hD="[object Int8Array]",vD="[object Int16Array]",wD="[object Int32Array]",kD="[object Uint8Array]",xD="[object Uint8ClampedArray]",ID="[object Uint16Array]",CD="[object Uint32Array]",R={};R[mD]=R[bD]=R[hD]=R[vD]=R[wD]=R[kD]=R[xD]=R[ID]=R[CD]=!0;R[tD]=R[rD]=R[fD]=R[iD]=R[yD]=R[nD]=R[oD]=R[aD]=R[lD]=R[sD]=R[uD]=R[cD]=R[dD]=R[pD]=R[gD]=!1;function AD(e){return Tl(e)&&QN(e.length)&&!!R[qi(e)]}var MD=AD;function jD(e){return function(t){return e(t)}}var SD=jD,Rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=Rg&&typeof module=="object"&&module&&!module.nodeType&&module,$D=zi&&zi.exports===Rg,fl=$D&&Ng.process,ED=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||fl&&fl.binding&&fl.binding("util")}catch{}}(),Xp=ED,eg=Xp&&Xp.isTypedArray,nee=eg?SD(eg):MD,_D=Object.prototype,oee=_D.hasOwnProperty;function LD(e,t){return function(r){return e(t(r))}}var TD=LD,aee=TD(Object.keys,Object),OD=Object.prototype,lee=OD.hasOwnProperty,ND=Qt(Object,"create"),Ri=ND;function DD(){this.__data__=Ri?Ri(null):{},this.size=0}var PD=DD;function zD(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var UD=zD,RD="__lodash_hash_undefined__",FD=Object.prototype,VD=FD.hasOwnProperty;function BD(e){var t=this.__data__;if(Ri){var r=t[e];return r===RD?void 0:r}return VD.call(t,e)?t[e]:void 0}var qD=BD,GD=Object.prototype,YD=GD.hasOwnProperty;function HD(e){var t=this.__data__;return Ri?t[e]!==void 0:YD.call(t,e)}var ZD=HD,QD="__lodash_hash_undefined__";function WD(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?QD:t,this}var KD=WD;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=PD;Wt.prototype.delete=UD;Wt.prototype.get=qD;Wt.prototype.has=ZD;Wt.prototype.set=KD;var tg=Wt;function JD(){this.__data__=[],this.size=0}var XD=JD;function eP(e,t){for(var r=e.length;r--;)if(YN(e[r][0],t))return r;return-1}var so=eP,tP=Array.prototype,rP=tP.splice;function iP(e){var t=this.__data__,r=so(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rP.call(t,r,1),--this.size,!0}var nP=iP;function oP(e){var t=this.__data__,r=so(t,e);return r<0?void 0:t[r][1]}var aP=oP;function lP(e){return so(this.__data__,e)>-1}var sP=lP;function uP(e,t){var r=this.__data__,i=so(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var cP=uP;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=XD;Kt.prototype.delete=nP;Kt.prototype.get=aP;Kt.prototype.has=sP;Kt.prototype.set=cP;var uo=Kt,dP=Qt(oe,"Map"),Fi=dP;function pP(){this.size=0,this.__data__={hash:new tg,map:new(Fi||uo),string:new tg}}var gP=pP;function fP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yP=fP;function mP(e,t){var r=e.__data__;return yP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var co=mP;function bP(e){var t=co(this,e).delete(e);return this.size-=t?1:0,t}var hP=bP;function vP(e){return co(this,e).get(e)}var wP=vP;function kP(e){return co(this,e).has(e)}var xP=kP;function IP(e,t){var r=co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var CP=IP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=gP;Jt.prototype.delete=hP;Jt.prototype.get=wP;Jt.prototype.has=xP;Jt.prototype.set=CP;var Fg=Jt;function AP(){this.__data__=new uo,this.size=0}var MP=AP;function jP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SP=jP;function $P(e){return this.__data__.get(e)}var EP=$P;function _P(e){return this.__data__.has(e)}var LP=_P,TP=200;function OP(e,t){var r=this.__data__;if(r instanceof uo){var i=r.__data__;if(!Fi||i.length<TP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fg(i)}return r.set(e,t),this.size=r.size,this}var NP=OP;function Gi(e){var t=this.__data__=new uo(e);this.size=t.size}Gi.prototype.clear=MP;Gi.prototype.delete=SP;Gi.prototype.get=EP;Gi.prototype.has=LP;Gi.prototype.set=NP;var DP=Object.prototype,see=DP.propertyIsEnumerable,PP=Qt(oe,"DataView"),xl=PP,zP=Qt(oe,"Promise"),Il=zP,UP=Qt(oe,"Set"),Cl=UP,rg="[object Map]",RP="[object Object]",ig="[object Promise]",ng="[object Set]",og="[object WeakMap]",ag="[object DataView]",FP=Ve(xl),VP=Ve(Fi),BP=Ve(Il),qP=Ve(Cl),GP=Ve(kl),qt=qi;(xl&&qt(new xl(new ArrayBuffer(1)))!=ag||Fi&&qt(new Fi)!=rg||Il&&qt(Il.resolve())!=ig||Cl&&qt(new Cl)!=ng||kl&&qt(new kl)!=og)&&(qt=function(e){var t=qi(e),r=t==RP?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case FP:return ag;case VP:return rg;case BP:return ig;case qP:return ng;case GP:return og}return t});var uee=oe.Uint8Array,YP="__lodash_hash_undefined__";function HP(e){return this.__data__.set(e,YP),this}var ZP=HP;function QP(e){return this.__data__.has(e)}var WP=QP;function Al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Fg;++t<r;)this.add(e[t])}Al.prototype.add=Al.prototype.push=ZP;Al.prototype.has=WP;var lg=Ht?Ht.prototype:void 0,cee=lg?lg.valueOf:void 0,KP=Object.prototype,dee=KP.hasOwnProperty,JP=Object.prototype,pee=JP.hasOwnProperty,gee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),fee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Vg(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Ml(e,t){let r=await Vg(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function XP(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Vg(i,t)}function ez(e){return e!==void 0}var po=ez;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Yi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Ol=class Bg{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Bg),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},qg=class Gg{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Gg),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function tz(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 rz({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 iz=rz,yl="ly.img.ai.temp";async function nz(e,t){return e.engine.asset.findAllSources().includes(yl)||e.engine.asset.addLocalSource(yl),e.engine.asset.apply(yl,t)}function oz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Yg(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function az(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function lz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Nl(e){return e instanceof Error&&e.name==="AbortError"}function sz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function uz(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 gz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),fz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:sz(e)}))}function fz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var sg=gz,yz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Dl=yz;function mz(e,t,r){switch(t){case"image":return bz(e,r[t]);case"video":return hz(e,r[t]);case"sticker":return vz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function bz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function hz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Dl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function vz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var wz=mz;async function kz(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return xz(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return Iz(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return Cz(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return Az(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function xz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Iz(e,t,r){let i=t.width,n=t.height,a=await uz(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function Cz(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function Az(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Hg=kz;function Mz(e){switch(e.userFlow){case"placeholder":return Sz(e);case"generation-only":return jz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function jz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Yg(),c=await Hg(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Sz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=Yg(),c=wz(s,a,o);if(i=await lz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Hg(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Nl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var $z=Mz;function Pl(e){return`${e}.generating`}function _z(e){return`${e}.abort`}function Ez(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(_z(d),()=>{}),m=c.global(Pl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await $z({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){sg(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Lz(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Nl(y))return;sg(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Lz(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Zg=Ez;async function Tz({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Pl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Zg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Oz=Tz;function Qg(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Di(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Qg(e,t.$ref),n={...Di(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Di(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Di(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Di(e,t[n],r));return i}return t}function Nz(e){return Di(e,{...e})}function Dz(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function Pz(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return zz(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function zz(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=Uz(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Uz(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Wg=Pz;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Kg(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Jg(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?Rz(e,c,r,i,n,a,o,s):Xg(e,c,r,i,n,a,o,s);case"boolean":return e1(e,c,r,i,n,a,o,s);case"number":case"integer":return t1(e,c,r,i,n,a,o,s);case"object":return jl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Fz(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function jl(e,t,r,i,n,a,o,s){let c=Wg(t.schema??{},i).reduce((l,u)=>{let d=Jg(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Xg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=Ae(t,r,o,"placeholder"),f=Yi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Hi(d,h,f,t.schema.default,""),v=l(p,b),k=Vz(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function Rz(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),{labels:m,icons:f}=Kg(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),b=Yi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hi(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function e1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=Yi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hi(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function t1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Yi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Hi(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function Fz(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Kg(t.schema),x=Yi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Xg,boolean:e1,integer:t1,object:jl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Ae(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>jl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Hi(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function Vz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Bz=Jg,qz={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function ug(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Gz(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||ug(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||ug(g);n[a(l.id,g)]=m}})}});let c={...qz,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}async function Yz({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=Nz(r.document),c=Qg(s,r.inputReference);if(!Dz(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Wg(l,r);return Gz(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=Bz(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Zg(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var Hz=Yz;async function Zz(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Oz(e,t);case"schema":return Hz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Qz=Zz;function Wz(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new rN(o,r)),o}return i}var Kz=Wz;function Jz(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Xz=Jz,ml="@imgly/plugin-ai-generation",eU=`
|
|
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 cz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),dz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:oz(e)}))}function dz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var sg=cz,pz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Dl=pz;function gz(e,t,r){switch(t){case"image":return fz(e,r[t]);case"video":return yz(e,r[t]);case"sticker":return mz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function fz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function yz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Dl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function mz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var bz=gz;async function hz(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 vz(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 wz(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 kz(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 xz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function vz(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 wz(e,t,r){let i=t.width,n=t.height,a=await az(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 kz(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 xz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Hg=hz;function Iz(e){switch(e.userFlow){case"placeholder":return Az(e);case"generation-only":return Cz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Cz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Yg(),c=await Hg(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Az(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=Yg(),c=bz(s,a,o);if(i=await nz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Hg(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Nl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Mz=Iz;function Pl(e){return`${e}.generating`}function jz(e){return`${e}.abort`}function Sz(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(jz(d),()=>{}),m=c.global(Pl(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await Mz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){sg(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;$z(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Nl(y))return;sg(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function $z(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Zg=Sz;async function Ez({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Pl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Zg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var _z=Ez;function Qg(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Di(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Qg(e,t.$ref),n={...Di(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Di(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Di(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Di(e,t[n],r));return i}return t}function Lz(e){return Di(e,{...e})}function Tz(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 Oz(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return Nz(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function Nz(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=Dz(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Dz(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Wg=Oz;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Kg(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Jg(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?Pz(e,c,r,i,n,a,o,s):Xg(e,c,r,i,n,a,o,s);case"boolean":return e1(e,c,r,i,n,a,o,s);case"number":case"integer":return t1(e,c,r,i,n,a,o,s);case"object":return jl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return zz(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function jl(e,t,r,i,n,a,o,s){let c=Wg(t.schema??{},i).reduce((l,u)=>{let d=Jg(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Xg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=Ae(t,r,o,"placeholder"),f=Yi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Hi(d,h,f,t.schema.default,""),v=l(p,b),k=Uz(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function Pz(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),{labels:m,icons:f}=Kg(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),b=Yi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hi(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function e1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=Yi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hi(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function t1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Yi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Hi(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function zz(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=Kg(t.schema),x=Yi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:Xg,boolean:e1,integer:t1,object:jl},M=(w,$)=>w.$ref?w.$ref.split("/").pop():$.split(".").pop()??$,A=(w,$)=>({id:w,label:Ae(t,r,o,$),icon:k[$]??k[w]});m.forEach((w,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(w.$ref||w.title){let j=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>jl(e,{id:C,schema:{...w,title:v[j]||j}},r,i,n,a,o,s),f.push(A(C,j))}else if(w.type==="string"&&w.enum)w.enum.forEach(j=>{f.push(A(j,j))});else if(w.type&&I[w.type]){let j=I[w.type];h[C]=()=>j(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let _=Hi(d,y,x,t.schema.default,null),S=_!=null?f.find(w=>w.id===_)??f[0]:f[0],E=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in h){let w=h[E.value.id]();b[E.value.id]=w}return()=>{let w=b[E.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function Uz(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Rz=Jg,Fz={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function ug(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Vz(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||ug(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||ug(g);n[a(l.id,g)]=m}})}});let c={...Fz,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}async function Bz({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=Lz(r.document),c=Qg(s,r.inputReference);if(!Tz(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Wg(l,r);return Vz(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=Rz(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Zg(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var qz=Bz;async function Gz(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return _z(e,t);case"schema":return qz(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Yz=Gz;function Hz(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 eN(o,r)),o}return i}var Zz=Hz;function Qz(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Wz=Qz,ml="@imgly/plugin-ai-generation",Kz=`
|
|
354
354
|
<svg>
|
|
355
355
|
<symbol
|
|
356
356
|
fill="none"
|
|
@@ -411,8 +411,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
411
411
|
|
|
412
412
|
</symbol>
|
|
413
413
|
</svg>
|
|
414
|
-
`,
|
|
415
|
-
`,"+")}`}}async function oU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function aU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Li(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Li(n,o)}else"customPrompt"in e?a=Li(n,"custom"):a=Li(n,"improved");else a=Li(n,"generated");return lU(a,r.abortSignal)}async function*lU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await r1(100)}return{kind:"text",text:e}}function Li(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function sU(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:uU(220,i),duration:i,thumbnailUrl:void 0}}function uU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return cU(i,44100)}function cU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function r1(e){return new Promise(t=>{setTimeout(t,e)})}var dU=rU,i1="USER_CANCEL";function pU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=nz([...e.provider.output.middleware??[],...r?.middlewares??[],az({enable:r?.debug}),dU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:cz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Nl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===i1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var gU=pU;async function fU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ol.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=Kz(a),s=Xz(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=gU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Qz(a,c);dz(r.cesdk,"@imgly/plugin-ai-generation",tU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return qg.get().register(u),u}var bl=fU;function yU(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new iN(n,r,i);return r.engine.asset.addSource(a),a.id}var mU=yU;function Pi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function bU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>bl(e,u,r,i)));o.push(...l),a=vU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>bl(e,d,r,i)));o.push(...u),a=hU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=mU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(po)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function hU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Pi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Pi(e,"fromText.label"),icon:f.value!=="fromText"&&cg(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Pi(e,"fromImage.label"),icon:f.value!=="fromImage"&&cg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function vU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function cg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pl(r.id),!1).value)}var wU=bU,go="ly.img.ai.editMode",n1="ly.img.ai.metadata";async function kU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Og(n,n1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var xU=kU;function IU(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var CU=IU;function AU(e){return`ly.img.ai.${e}.canvasMenu`}var MU=AU;function jU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=MU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var SU=jU;function $U(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return _U(e,t);case"image":return EU(e,t);case"video":return LU(e,t);case"audio":return TU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function _U(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function EU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await Ml(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,x=await r.engine.editor.getMimeType(k),y=await OU(r,k,x),I=await Ml(y,t.cesdk.engine),j=I.width/I.height,A=Math.abs(p-j)>.001,E=c?[{uri:y,width:I.width,height:I.height}]:void 0,S=y;E==null?r.engine.block.setString(o,"fill/image/imageFileURI",S):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),await r.engine.block.forceLoadResources([o]),A?r.engine.block.setContentFillMode(a,"Cover"):v();let $=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);v()},w=()=>{if(E==null){if(S==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",S)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",E);A?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:$,onAfter:w,onCancel:()=>{$()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function LU(e,t){throw new Error("Function not implemented.")}async function TU(e,t){throw new Error("Function not implemented.")}async function OU(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${tz(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var NU=$U;function DU(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var PU=DU,zU=class o1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new o1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=zU;function UU(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(po)),c=new Og(e.cesdk.engine,n1),l=e.lock??!0?PU({engine:e.cesdk.engine,editModeToLockTo:go,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(i1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await NU(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Fe.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var dg=UU;function RU(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===go)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=SU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=FU(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),j=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(j,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(E=>A.every(S=>e.engine.block.isAllowedByScope(E,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let j=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let E=qg.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(E!=null){let S={definition:A,providerInitializationResult:E};return l.push(S),S}else return}}).filter(po);return j=CU(j),j.length===0||j.every(A=>A==="ly.img.separator")||j.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:j}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(j=>{let A=j.definition.id;y.has(A)||y.set(A,j)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,j)=>{v.setValue(!0);try{return await j(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let j=u.filter(({quickActions:S})=>S.some($=>$!=="ly.img.separator"&&$.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(A,{engine:e.engine});j.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:j,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:dg({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,j=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&j&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:dg({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function FU(e){return e.map(t=>t==="ly.img.separator"?t:Ol.get().getBy({id:t,type:"quick"})[0]).filter(po)}var VU=RU;async function BU(e){let t=await VU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await xU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===go){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var qU=BU,GU=typeof global=="object"&&global&&global.Object===Object&&global,a1=GU,YU=typeof self=="object"&&self&&self.Object===Object&&self,HU=a1||YU||Function("return this")(),ae=HU,ZU=ae.Symbol,Zt=ZU,l1=Object.prototype,QU=l1.hasOwnProperty,WU=l1.toString,Ti=Zt?Zt.toStringTag:void 0;function KU(e){var t=QU.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=WU.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var JU=KU,XU=Object.prototype,eR=XU.toString;function tR(e){return eR.call(e)}var rR=tR,iR="[object Null]",nR="[object Undefined]",pg=Zt?Zt.toStringTag:void 0;function oR(e){return e==null?e===void 0?nR:iR:pg&&pg in Object(e)?JU(e):rR(e)}var Zi=oR;function aR(e){return e!=null&&typeof e=="object"}var zl=aR,wee=Array.isArray;function lR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var s1=lR,sR="[object AsyncFunction]",uR="[object Function]",cR="[object GeneratorFunction]",dR="[object Proxy]";function pR(e){if(!s1(e))return!1;var t=Zi(e);return t==uR||t==cR||t==sR||t==dR}var gR=pR,fR=ae["__core-js_shared__"],hl=fR,gg=function(){var e=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function yR(e){return!!gg&&gg in e}var mR=yR,bR=Function.prototype,hR=bR.toString;function vR(e){if(e!=null){try{return hR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=vR,wR=/[\\^$.*+?()[\]{}|]/g,kR=/^\[object .+?Constructor\]$/,xR=Function.prototype,IR=Object.prototype,CR=xR.toString,AR=IR.hasOwnProperty,MR=RegExp("^"+CR.call(AR).replace(wR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function jR(e){if(!s1(e)||mR(e))return!1;var t=gR(e)?MR:kR;return t.test(Be(e))}var SR=jR;function $R(e,t){return e?.[t]}var _R=$R;function ER(e,t){var r=_R(e,t);return SR(r)?r:void 0}var Xt=ER,LR=Xt(ae,"WeakMap"),Sl=LR;function TR(e,t){return e===t||e!==e&&t!==t}var OR=TR,NR=9007199254740991;function DR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=NR}var PR=DR,kee=Object.prototype,zR="[object Arguments]";function UR(e){return zl(e)&&Zi(e)==zR}var fg=UR,u1=Object.prototype,RR=u1.hasOwnProperty,FR=u1.propertyIsEnumerable,xee=fg(function(){return arguments}())?fg:function(e){return zl(e)&&RR.call(e,"callee")&&!FR.call(e,"callee")},c1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yg=c1&&typeof module=="object"&&module&&!module.nodeType&&module,VR=yg&&yg.exports===c1,mg=VR?ae.Buffer:void 0,Iee=mg?mg.isBuffer:void 0,BR="[object Arguments]",qR="[object Array]",GR="[object Boolean]",YR="[object Date]",HR="[object Error]",ZR="[object Function]",QR="[object Map]",WR="[object Number]",KR="[object Object]",JR="[object RegExp]",XR="[object Set]",eF="[object String]",tF="[object WeakMap]",rF="[object ArrayBuffer]",iF="[object DataView]",nF="[object Float32Array]",oF="[object Float64Array]",aF="[object Int8Array]",lF="[object Int16Array]",sF="[object Int32Array]",uF="[object Uint8Array]",cF="[object Uint8ClampedArray]",dF="[object Uint16Array]",pF="[object Uint32Array]",F={};F[nF]=F[oF]=F[aF]=F[lF]=F[sF]=F[uF]=F[cF]=F[dF]=F[pF]=!0;F[BR]=F[qR]=F[rF]=F[GR]=F[iF]=F[YR]=F[HR]=F[ZR]=F[QR]=F[WR]=F[KR]=F[JR]=F[XR]=F[eF]=F[tF]=!1;function gF(e){return zl(e)&&PR(e.length)&&!!F[Zi(e)]}var fF=gF;function yF(e){return function(t){return e(t)}}var mF=yF,d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=d1&&typeof module=="object"&&module&&!module.nodeType&&module,bF=Ui&&Ui.exports===d1,vl=bF&&a1.process,hF=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),bg=hF,hg=bg&&bg.isTypedArray,Cee=hg?mF(hg):fF,vF=Object.prototype,Aee=vF.hasOwnProperty;function wF(e,t){return function(r){return e(t(r))}}var kF=wF,Mee=kF(Object.keys,Object),xF=Object.prototype,jee=xF.hasOwnProperty,IF=Xt(Object,"create"),Vi=IF;function CF(){this.__data__=Vi?Vi(null):{},this.size=0}var AF=CF;function MF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var jF=MF,SF="__lodash_hash_undefined__",$F=Object.prototype,_F=$F.hasOwnProperty;function EF(e){var t=this.__data__;if(Vi){var r=t[e];return r===SF?void 0:r}return _F.call(t,e)?t[e]:void 0}var LF=EF,TF=Object.prototype,OF=TF.hasOwnProperty;function NF(e){var t=this.__data__;return Vi?t[e]!==void 0:OF.call(t,e)}var DF=NF,PF="__lodash_hash_undefined__";function zF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Vi&&t===void 0?PF:t,this}var UF=zF;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=AF;er.prototype.delete=jF;er.prototype.get=LF;er.prototype.has=DF;er.prototype.set=UF;var vg=er;function RF(){this.__data__=[],this.size=0}var FF=RF;function VF(e,t){for(var r=e.length;r--;)if(OR(e[r][0],t))return r;return-1}var fo=VF,BF=Array.prototype,qF=BF.splice;function GF(e){var t=this.__data__,r=fo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():qF.call(t,r,1),--this.size,!0}var YF=GF;function HF(e){var t=this.__data__,r=fo(t,e);return r<0?void 0:t[r][1]}var ZF=HF;function QF(e){return fo(this.__data__,e)>-1}var WF=QF;function KF(e,t){var r=this.__data__,i=fo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var JF=KF;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=FF;tr.prototype.delete=YF;tr.prototype.get=ZF;tr.prototype.has=WF;tr.prototype.set=JF;var yo=tr,XF=Xt(ae,"Map"),Bi=XF;function eV(){this.size=0,this.__data__={hash:new vg,map:new(Bi||yo),string:new vg}}var tV=eV;function rV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var iV=rV;function nV(e,t){var r=e.__data__;return iV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var mo=nV;function oV(e){var t=mo(this,e).delete(e);return this.size-=t?1:0,t}var aV=oV;function lV(e){return mo(this,e).get(e)}var sV=lV;function uV(e){return mo(this,e).has(e)}var cV=uV;function dV(e,t){var r=mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var pV=dV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=tV;rr.prototype.delete=aV;rr.prototype.get=sV;rr.prototype.has=cV;rr.prototype.set=pV;var p1=rr;function gV(){this.__data__=new yo,this.size=0}var fV=gV;function yV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var mV=yV;function bV(e){return this.__data__.get(e)}var hV=bV;function vV(e){return this.__data__.has(e)}var wV=vV,kV=200;function xV(e,t){var r=this.__data__;if(r instanceof yo){var i=r.__data__;if(!Bi||i.length<kV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new p1(i)}return r.set(e,t),this.size=r.size,this}var IV=xV;function Qi(e){var t=this.__data__=new yo(e);this.size=t.size}Qi.prototype.clear=fV;Qi.prototype.delete=mV;Qi.prototype.get=hV;Qi.prototype.has=wV;Qi.prototype.set=IV;var CV=Object.prototype,See=CV.propertyIsEnumerable,AV=Xt(ae,"DataView"),$l=AV,MV=Xt(ae,"Promise"),_l=MV,jV=Xt(ae,"Set"),El=jV,wg="[object Map]",SV="[object Object]",kg="[object Promise]",xg="[object Set]",Ig="[object WeakMap]",Cg="[object DataView]",$V=Be($l),_V=Be(Bi),EV=Be(_l),LV=Be(El),TV=Be(Sl),Gt=Zi;($l&&Gt(new $l(new ArrayBuffer(1)))!=Cg||Bi&&Gt(new Bi)!=wg||_l&&Gt(_l.resolve())!=kg||El&&Gt(new El)!=xg||Sl&&Gt(new Sl)!=Ig)&&(Gt=function(e){var t=Zi(e),r=t==SV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case $V:return Cg;case _V:return wg;case EV:return kg;case LV:return xg;case TV:return Ig}return t});var $ee=ae.Uint8Array,OV="__lodash_hash_undefined__";function NV(e){return this.__data__.set(e,OV),this}var DV=NV;function PV(e){return this.__data__.has(e)}var zV=PV;function Ll(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new p1;++t<r;)this.add(e[t])}Ll.prototype.add=Ll.prototype.push=DV;Ll.prototype.has=zV;var Ag=Zt?Zt.prototype:void 0,_ee=Ag?Ag.valueOf:void 0,UV=Object.prototype,Eee=UV.hasOwnProperty,RV=Object.prototype,Lee=RV.hasOwnProperty,Tee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Oee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Nee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function FV(e){return e==null?[]:Array.isArray(e)?e:[e]}var VV=FV;function BV(e){return`
|
|
414
|
+
`,Jz=Kz;function Xz(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await r1(2e3),await eU(t,e,r)):i(t,r)}async function eU(e,t,r){switch(t.kind){case"image":return tU(e,t,r);case"video":return rU(e,t,r);case"text":return iU(e,t,r);case"audio":return oU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function tU(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 XP(s,r),l=await Ml(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
|
|
415
|
+
`,"+")}`}}async function rU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function iU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Li(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Li(n,o)}else"customPrompt"in e?a=Li(n,"custom"):a=Li(n,"improved");else a=Li(n,"generated");return nU(a,r.abortSignal)}async function*nU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await r1(100)}return{kind:"text",text:e}}function Li(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function oU(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:aU(220,i),duration:i,thumbnailUrl:void 0}}function aU(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 lU(i,44100)}function lU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function r1(e){return new Promise(t=>{setTimeout(t,e)})}var sU=Xz,i1="USER_CANCEL";function uU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=tz([...e.provider.output.middleware??[],...r?.middlewares??[],iz({enable:r?.debug}),sU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:lz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Nl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===i1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var cU=uU;async function dU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ol.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=Zz(a),s=Wz(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=cU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Yz(a,c);sz(r.cesdk,"@imgly/plugin-ai-generation",Jz);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return qg.get().register(u),u}var bl=dU;function pU(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 tN(n,r,i);return r.engine.asset.addSource(a),a.id}var gU=pU;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 fU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>bl(e,u,r,i)));o.push(...l),a=mU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>bl(e,d,r,i)));o.push(...u),a=yU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=gU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(po)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function yU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),v=i.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,w=a&&E,$=h.length>1&&S;if((w||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Pi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Pi(e,"fromText.label"),icon:f.value!=="fromText"&&cg(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Pi(e,"fromImage.label"),icon:f.value!=="fromImage"&&cg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];M!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:C,value:A,setValue:j=>{M.setValue(j.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function mU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function cg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pl(r.id),!1).value)}var bU=fU,go="ly.img.ai.editMode",n1="ly.img.ai.metadata";async function hU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Og(n,n1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;m!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),h()}});break}default:}};return Promise.resolve(r)}var vU=hU;function wU(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 kU=wU;function xU(e){return`ly.img.ai.${e}.canvasMenu`}var IU=xU;function CU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=IU(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 AU=CU;function MU(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return jU(e,t);case"image":return SU(e,t);case"video":return $U(e,t);case"audio":return EU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function jU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function SU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await Ml(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),h=r.engine.block.getCropTranslationY(a),b=r.engine.block.getCropRotation(a),v=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,h),r.engine.block.setCropRotation(a,b)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,x=await Ml(k,t.cesdk.engine),y=x.width/x.height,I=Math.abs(p-y)>.001,M=c?[{uri:k,width:x.width,height:x.height}]:void 0,A=k;M==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",M)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):v();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);v()},S=()=>{if(M==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",M);I?r.engine.block.setContentFillMode(a,"Cover"):v()};return{applyCallbacks:{onBefore:_,onAfter:S,onCancel:()=>{_()},onApply:()=>{S(),t.cesdk.engine.editor.addUndoStep()}}}}async function $U(e,t){throw new Error("Function not implemented.")}async function EU(e,t){throw new Error("Function not implemented.")}var _U=MU;function LU(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 TU=LU,OU=class o1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new o1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=OU;function NU(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(po)),c=new Og(e.cesdk.engine,n1),l=e.lock??!0?TU({engine:e.cesdk.engine,editModeToLockTo:go,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(i1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await _U(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(m=>{Fe.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var dg=NU;function DU(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===go)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=AU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=PU(s).filter(y=>{if(y==="ly.img.separator")return!0;let I=y.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let A=y.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(S=>e.engine.block.isAllowedByScope(_,S))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((y,I)=>{if(I.provider.kind!==e.kind)return y;let M=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=qg.get().getAll().filter(S=>S.provider.kind!==e.kind&&S.provider.id!==I.provider.id).find(S=>S.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let S={definition:A,providerInitializationResult:_};return l.push(S),S}else return}}).filter(po);return M=kU(M),M.length===0||M.every(A=>A==="ly.img.separator")||M.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||y.push({providerInitializationResult:I,quickActions:M}),y},[]);if(u.length===0)if(l.length>0){let y=new Map;l.forEach(M=>{let A=M.definition.id;y.has(A)||y.set(A,M)});let I=Array.from(y.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),m=n.every(y=>i.engine.block.getState(y).type==="Ready"),{builder:f,experimental:h,state:b}=i,v=b(`${t}.isGenerating`,!1),k=b(`${t}.toggleExpandedState`,void 0),x=async(y,I,M)=>{v.setValue(!0);try{return await M(y,I)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!m,isLoading:v.value,trailingIcon:null,children:({close:y})=>{if(k.value!==void 0){let I=g?.quickActions.find(S=>S!=="ly.img.separator"&&S.definition.id===k.value);if(I==null||I.definition.render==null)return;let M=u.filter(({quickActions:S})=>S.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:S})=>({id:S.provider.id,label:S.provider.name??S.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:dg({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{k.setValue(A.definition.id)},isExpanded:!1,generate:dg({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function PU(e){return e.map(t=>t==="ly.img.separator"?t:Ol.get().getBy({id:t,type:"quick"})[0]).filter(po)}var zU=DU;async function UU(e){let t=await zU({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await vU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===go){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var RU=UU,FU=typeof global=="object"&&global&&global.Object===Object&&global,a1=FU,VU=typeof self=="object"&&self&&self.Object===Object&&self,BU=a1||VU||Function("return this")(),ae=BU,qU=ae.Symbol,Zt=qU,l1=Object.prototype,GU=l1.hasOwnProperty,YU=l1.toString,Ti=Zt?Zt.toStringTag:void 0;function HU(e){var t=GU.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=YU.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var ZU=HU,QU=Object.prototype,WU=QU.toString;function KU(e){return WU.call(e)}var JU=KU,XU="[object Null]",eR="[object Undefined]",pg=Zt?Zt.toStringTag:void 0;function tR(e){return e==null?e===void 0?eR:XU:pg&&pg in Object(e)?ZU(e):JU(e)}var Zi=tR;function rR(e){return e!=null&&typeof e=="object"}var zl=rR,mee=Array.isArray;function iR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var s1=iR,nR="[object AsyncFunction]",oR="[object Function]",aR="[object GeneratorFunction]",lR="[object Proxy]";function sR(e){if(!s1(e))return!1;var t=Zi(e);return t==oR||t==aR||t==nR||t==lR}var uR=sR,cR=ae["__core-js_shared__"],hl=cR,gg=function(){var e=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dR(e){return!!gg&&gg in e}var pR=dR,gR=Function.prototype,fR=gR.toString;function yR(e){if(e!=null){try{return fR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=yR,mR=/[\\^$.*+?()[\]{}|]/g,bR=/^\[object .+?Constructor\]$/,hR=Function.prototype,vR=Object.prototype,wR=hR.toString,kR=vR.hasOwnProperty,xR=RegExp("^"+wR.call(kR).replace(mR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function IR(e){if(!s1(e)||pR(e))return!1;var t=uR(e)?xR:bR;return t.test(Be(e))}var CR=IR;function AR(e,t){return e?.[t]}var MR=AR;function jR(e,t){var r=MR(e,t);return CR(r)?r:void 0}var Xt=jR,SR=Xt(ae,"WeakMap"),Sl=SR;function $R(e,t){return e===t||e!==e&&t!==t}var ER=$R,_R=9007199254740991;function LR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_R}var TR=LR,bee=Object.prototype,OR="[object Arguments]";function NR(e){return zl(e)&&Zi(e)==OR}var fg=NR,u1=Object.prototype,DR=u1.hasOwnProperty,PR=u1.propertyIsEnumerable,hee=fg(function(){return arguments}())?fg:function(e){return zl(e)&&DR.call(e,"callee")&&!PR.call(e,"callee")},c1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yg=c1&&typeof module=="object"&&module&&!module.nodeType&&module,zR=yg&&yg.exports===c1,mg=zR?ae.Buffer:void 0,vee=mg?mg.isBuffer:void 0,UR="[object Arguments]",RR="[object Array]",FR="[object Boolean]",VR="[object Date]",BR="[object Error]",qR="[object Function]",GR="[object Map]",YR="[object Number]",HR="[object Object]",ZR="[object RegExp]",QR="[object Set]",WR="[object String]",KR="[object WeakMap]",JR="[object ArrayBuffer]",XR="[object DataView]",eF="[object Float32Array]",tF="[object Float64Array]",rF="[object Int8Array]",iF="[object Int16Array]",nF="[object Int32Array]",oF="[object Uint8Array]",aF="[object Uint8ClampedArray]",lF="[object Uint16Array]",sF="[object Uint32Array]",F={};F[eF]=F[tF]=F[rF]=F[iF]=F[nF]=F[oF]=F[aF]=F[lF]=F[sF]=!0;F[UR]=F[RR]=F[JR]=F[FR]=F[XR]=F[VR]=F[BR]=F[qR]=F[GR]=F[YR]=F[HR]=F[ZR]=F[QR]=F[WR]=F[KR]=!1;function uF(e){return zl(e)&&TR(e.length)&&!!F[Zi(e)]}var cF=uF;function dF(e){return function(t){return e(t)}}var pF=dF,d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=d1&&typeof module=="object"&&module&&!module.nodeType&&module,gF=Ui&&Ui.exports===d1,vl=gF&&a1.process,fF=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),bg=fF,hg=bg&&bg.isTypedArray,wee=hg?pF(hg):cF,yF=Object.prototype,kee=yF.hasOwnProperty;function mF(e,t){return function(r){return e(t(r))}}var bF=mF,xee=bF(Object.keys,Object),hF=Object.prototype,Iee=hF.hasOwnProperty,vF=Xt(Object,"create"),Vi=vF;function wF(){this.__data__=Vi?Vi(null):{},this.size=0}var kF=wF;function xF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IF=xF,CF="__lodash_hash_undefined__",AF=Object.prototype,MF=AF.hasOwnProperty;function jF(e){var t=this.__data__;if(Vi){var r=t[e];return r===CF?void 0:r}return MF.call(t,e)?t[e]:void 0}var SF=jF,$F=Object.prototype,EF=$F.hasOwnProperty;function _F(e){var t=this.__data__;return Vi?t[e]!==void 0:EF.call(t,e)}var LF=_F,TF="__lodash_hash_undefined__";function OF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Vi&&t===void 0?TF:t,this}var NF=OF;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=kF;er.prototype.delete=IF;er.prototype.get=SF;er.prototype.has=LF;er.prototype.set=NF;var vg=er;function DF(){this.__data__=[],this.size=0}var PF=DF;function zF(e,t){for(var r=e.length;r--;)if(ER(e[r][0],t))return r;return-1}var fo=zF,UF=Array.prototype,RF=UF.splice;function FF(e){var t=this.__data__,r=fo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RF.call(t,r,1),--this.size,!0}var VF=FF;function BF(e){var t=this.__data__,r=fo(t,e);return r<0?void 0:t[r][1]}var qF=BF;function GF(e){return fo(this.__data__,e)>-1}var YF=GF;function HF(e,t){var r=this.__data__,i=fo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ZF=HF;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=PF;tr.prototype.delete=VF;tr.prototype.get=qF;tr.prototype.has=YF;tr.prototype.set=ZF;var yo=tr,QF=Xt(ae,"Map"),Bi=QF;function WF(){this.size=0,this.__data__={hash:new vg,map:new(Bi||yo),string:new vg}}var KF=WF;function JF(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XF=JF;function eV(e,t){var r=e.__data__;return XF(t)?r[typeof t=="string"?"string":"hash"]:r.map}var mo=eV;function tV(e){var t=mo(this,e).delete(e);return this.size-=t?1:0,t}var rV=tV;function iV(e){return mo(this,e).get(e)}var nV=iV;function oV(e){return mo(this,e).has(e)}var aV=oV;function lV(e,t){var r=mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sV=lV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=KF;rr.prototype.delete=rV;rr.prototype.get=nV;rr.prototype.has=aV;rr.prototype.set=sV;var p1=rr;function uV(){this.__data__=new yo,this.size=0}var cV=uV;function dV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pV=dV;function gV(e){return this.__data__.get(e)}var fV=gV;function yV(e){return this.__data__.has(e)}var mV=yV,bV=200;function hV(e,t){var r=this.__data__;if(r instanceof yo){var i=r.__data__;if(!Bi||i.length<bV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new p1(i)}return r.set(e,t),this.size=r.size,this}var vV=hV;function Qi(e){var t=this.__data__=new yo(e);this.size=t.size}Qi.prototype.clear=cV;Qi.prototype.delete=pV;Qi.prototype.get=fV;Qi.prototype.has=mV;Qi.prototype.set=vV;var wV=Object.prototype,Cee=wV.propertyIsEnumerable,kV=Xt(ae,"DataView"),$l=kV,xV=Xt(ae,"Promise"),El=xV,IV=Xt(ae,"Set"),_l=IV,wg="[object Map]",CV="[object Object]",kg="[object Promise]",xg="[object Set]",Ig="[object WeakMap]",Cg="[object DataView]",AV=Be($l),MV=Be(Bi),jV=Be(El),SV=Be(_l),$V=Be(Sl),Gt=Zi;($l&&Gt(new $l(new ArrayBuffer(1)))!=Cg||Bi&&Gt(new Bi)!=wg||El&&Gt(El.resolve())!=kg||_l&&Gt(new _l)!=xg||Sl&&Gt(new Sl)!=Ig)&&(Gt=function(e){var t=Zi(e),r=t==CV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case AV:return Cg;case MV:return wg;case jV:return kg;case SV:return xg;case $V:return Ig}return t});var Aee=ae.Uint8Array,EV="__lodash_hash_undefined__";function _V(e){return this.__data__.set(e,EV),this}var LV=_V;function TV(e){return this.__data__.has(e)}var OV=TV;function Ll(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new p1;++t<r;)this.add(e[t])}Ll.prototype.add=Ll.prototype.push=LV;Ll.prototype.has=OV;var Ag=Zt?Zt.prototype:void 0,Mee=Ag?Ag.valueOf:void 0,NV=Object.prototype,jee=NV.hasOwnProperty,DV=Object.prototype,See=DV.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Eee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_ee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function PV(e){return e==null?[]:Array.isArray(e)?e:[e]}var zV=PV;function UV(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
|
|
439
|
+
`}var RV=UV,bo="improve",Mg=`ly.img.${bo}`,FV=`ly.img.plugin-ai-text-generation-web.quickAction.${bo}`,VV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${bo}`;function BV(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${bo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${VV}`]:"Improve Writing"}}),{id:Mg,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(`${Mg}.button`,{label:BV(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:RV(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"})}}})}}),GV=qV;function YV(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
|
|
469
|
+
`}var HV=YV,ho="fix",jg=`ly.img.${ho}`,ZV=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,QV=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function WV(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 KV=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${QV}`]:"Fix Spelling & Grammar"}}),{id:jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${ZV}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${jg}.button`,{label:WV(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:HV(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"})}}})}}),JV=KV;function XV(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
|
|
500
|
+
`}var eB=XV,vo="shorter",Sg=`ly.img.${vo}`,tB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,rB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function iB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var nB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${rB}`]:"Make Shorter"}}),{id:Sg,type:"quick",kind:"text",scopes:["text/edit"],label:`${tB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Sg}.button`,{label:iB(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:eB(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"})}}})}}),oB=nB;function aB(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
|
|
534
|
+
`}var lB=aB,wo="longer",$g=`ly.img.${wo}`,sB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,uB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function cB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${uB}`]:"Make Longer"}}),{id:$g,type:"quick",kind:"text",scopes:["text/edit"],label:`${sB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${$g}.button`,{label:cB(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:lB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),pB=dB;function gB(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
|
|
556
|
+
`}var fB=gB,ko="changeTone",Oi=`ly.img.${ko}`,yB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function Eg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var mB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],bB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Oi,type:"quick",kind:"text",scopes:["text/edit"],label:`${yB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Oi}.popover`,{label:Eg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Oi}.popover.section`,{children:()=>{a.builder.Menu(`${Oi}.popover.menu`,{children:()=>{mB.forEach(s=>{t.Button(`${Oi}.popover.menu.${s.id}`,{label:Eg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:fB(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"})}}})})}})}})}})}}),hB=bB,g1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},vB=Object.keys(g1);function wB(e,t){let r=g1[t]||t;return`
|
|
557
557
|
You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
|
|
558
558
|
|
|
559
559
|
1. Here is the source text to be translated:
|
|
@@ -569,7 +569,7 @@ ${r}
|
|
|
569
569
|
3. Translate the source text into the target language. Ensure that you maintain the original meaning, tone, and style as closely as possible while adapting to the linguistic and cultural norms of the target language.
|
|
570
570
|
|
|
571
571
|
4. Return only the translated text, without any additional comments, explanations, or metadata. Do not include the original text or any other information in your response.
|
|
572
|
-
`}var
|
|
572
|
+
`}var kB=wB,xo="translate",Ni=`ly.img.${xo}`,xB=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function _g(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var IB=vB.map(e=>({id:e})),CB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${xB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:_g(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{IB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:_g(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:kB(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"})}}})})}})}})}})}}),AB=CB;function MB(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 EB=_B,Io="changeTextTo",Ie=`ly.img.${Io}`,Lg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Tg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function wl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var LB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Tg}`]:"Change Text to...",[`${Tg}.prompt`]:"Change Text to...",[`${Lg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Lg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:wl(l,"prompt"),placeholder:wl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:EB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:wl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),TB=LB,f1="@imgly/plugin-ai-text-generation-web",OB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function NB(e){return{async initialize({cesdk:t}){if(t==null)return;pz(t,f1,"1.68.0-rc.1"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(XO,tN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),DB(e);let r=Ol.get();r.register(QV({cesdk:t})),r.register(rB({cesdk:t})),r.register(uB({cesdk:t})),r.register(mB({cesdk:t})),r.register(xB({cesdk:t})),r.register($B({cesdk:t})),r.register(TB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(VV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await wU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await qU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:OB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function DB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var PB=NB,zB=e=>({name:f1,version:"1.68.0-rc.1",...PB(e)}),y1=zB;var UB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var RB=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},FB=typeof global=="object"&&global&&global.Object===Object&&global,H1=FB,VB=typeof self=="object"&&self&&self.Object===Object&&self,BB=H1||VB||Function("return this")(),le=BB,qB=le.Symbol,ar=qB,Z1=Object.prototype,GB=Z1.hasOwnProperty,YB=Z1.toString,Wi=ar?ar.toStringTag:void 0;function HB(e){var t=GB.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=YB.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var ZB=HB,QB=Object.prototype,WB=QB.toString;function KB(e){return WB.call(e)}var JB=KB,XB="[object Null]",eq="[object Undefined]",m1=ar?ar.toStringTag:void 0;function tq(e){return e==null?e===void 0?eq:XB:m1&&m1 in Object(e)?ZB(e):JB(e)}var un=tq;function rq(e){return e!=null&&typeof e=="object"}var is=rq,Ree=Array.isArray;function iq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Q1=iq,nq="[object AsyncFunction]",oq="[object Function]",aq="[object GeneratorFunction]",lq="[object Proxy]";function sq(e){if(!Q1(e))return!1;var t=un(e);return t==oq||t==aq||t==nq||t==lq}var uq=sq,cq=le["__core-js_shared__"],Ul=cq,b1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dq(e){return!!b1&&b1 in e}var pq=dq,gq=Function.prototype,fq=gq.toString;function yq(e){if(e!=null){try{return fq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=yq,mq=/[\\^$.*+?()[\]{}|]/g,bq=/^\[object .+?Constructor\]$/,hq=Function.prototype,vq=Object.prototype,wq=hq.toString,kq=vq.hasOwnProperty,xq=RegExp("^"+wq.call(kq).replace(mq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Iq(e){if(!Q1(e)||pq(e))return!1;var t=uq(e)?xq:bq;return t.test(qe(e))}var Cq=Iq;function Aq(e,t){return e?.[t]}var Mq=Aq;function jq(e,t){var r=Mq(e,t);return Cq(r)?r:void 0}var sr=jq,Sq=sr(le,"WeakMap"),Yl=Sq;function $q(e,t){return e===t||e!==e&&t!==t}var _q=$q,Eq=9007199254740991;function Lq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Eq}var Tq=Lq,Fee=Object.prototype,Oq="[object Arguments]";function Nq(e){return is(e)&&un(e)==Oq}var h1=Nq,W1=Object.prototype,Dq=W1.hasOwnProperty,Pq=W1.propertyIsEnumerable,Vee=h1(function(){return arguments}())?h1:function(e){return is(e)&&Dq.call(e,"callee")&&!Pq.call(e,"callee")},K1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,v1=K1&&typeof module=="object"&&module&&!module.nodeType&&module,zq=v1&&v1.exports===K1,w1=zq?le.Buffer:void 0,Bee=w1?w1.isBuffer:void 0,Uq="[object Arguments]",Rq="[object Array]",Fq="[object Boolean]",Vq="[object Date]",Bq="[object Error]",qq="[object Function]",Gq="[object Map]",Yq="[object Number]",Hq="[object Object]",Zq="[object RegExp]",Qq="[object Set]",Wq="[object String]",Kq="[object WeakMap]",Jq="[object ArrayBuffer]",Xq="[object DataView]",eG="[object Float32Array]",tG="[object Float64Array]",rG="[object Int8Array]",iG="[object Int16Array]",nG="[object Int32Array]",oG="[object Uint8Array]",aG="[object Uint8ClampedArray]",lG="[object Uint16Array]",sG="[object Uint32Array]",V={};V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=V[oG]=V[aG]=V[lG]=V[sG]=!0;V[Uq]=V[Rq]=V[Jq]=V[Fq]=V[Xq]=V[Vq]=V[Bq]=V[qq]=V[Gq]=V[Yq]=V[Hq]=V[Zq]=V[Qq]=V[Wq]=V[Kq]=!1;function uG(e){return is(e)&&Tq(e.length)&&!!V[un(e)]}var cG=uG;function dG(e){return function(t){return e(t)}}var pG=dG,J1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=J1&&typeof module=="object"&&module&&!module.nodeType&&module,gG=rn&&rn.exports===J1,Rl=gG&&H1.process,fG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),k1=fG,x1=k1&&k1.isTypedArray,qee=x1?pG(x1):cG,yG=Object.prototype,Gee=yG.hasOwnProperty;function mG(e,t){return function(r){return e(t(r))}}var bG=mG,Yee=bG(Object.keys,Object),hG=Object.prototype,Hee=hG.hasOwnProperty,vG=sr(Object,"create"),on=vG;function wG(){this.__data__=on?on(null):{},this.size=0}var kG=wG;function xG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IG=xG,CG="__lodash_hash_undefined__",AG=Object.prototype,MG=AG.hasOwnProperty;function jG(e){var t=this.__data__;if(on){var r=t[e];return r===CG?void 0:r}return MG.call(t,e)?t[e]:void 0}var SG=jG,$G=Object.prototype,_G=$G.hasOwnProperty;function EG(e){var t=this.__data__;return on?t[e]!==void 0:_G.call(t,e)}var LG=EG,TG="__lodash_hash_undefined__";function OG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?TG:t,this}var NG=OG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=kG;ur.prototype.delete=IG;ur.prototype.get=SG;ur.prototype.has=LG;ur.prototype.set=NG;var I1=ur;function DG(){this.__data__=[],this.size=0}var PG=DG;function zG(e,t){for(var r=e.length;r--;)if(_q(e[r][0],t))return r;return-1}var Co=zG,UG=Array.prototype,RG=UG.splice;function FG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RG.call(t,r,1),--this.size,!0}var VG=FG;function BG(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var qG=BG;function GG(e){return Co(this.__data__,e)>-1}var YG=GG;function HG(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ZG=HG;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=PG;cr.prototype.delete=VG;cr.prototype.get=qG;cr.prototype.has=YG;cr.prototype.set=ZG;var Ao=cr,QG=sr(le,"Map"),an=QG;function WG(){this.size=0,this.__data__={hash:new I1,map:new(an||Ao),string:new I1}}var KG=WG;function JG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XG=JG;function eY(e,t){var r=e.__data__;return XG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=eY;function tY(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var rY=tY;function iY(e){return Mo(this,e).get(e)}var nY=iY;function oY(e){return Mo(this,e).has(e)}var aY=oY;function lY(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sY=lY;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=KG;dr.prototype.delete=rY;dr.prototype.get=nY;dr.prototype.has=aY;dr.prototype.set=sY;var X1=dr;function uY(){this.__data__=new Ao,this.size=0}var cY=uY;function dY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pY=dY;function gY(e){return this.__data__.get(e)}var fY=gY;function yY(e){return this.__data__.has(e)}var mY=yY,bY=200;function hY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<bY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new X1(i)}return r.set(e,t),this.size=r.size,this}var vY=hY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=cY;cn.prototype.delete=pY;cn.prototype.get=fY;cn.prototype.has=mY;cn.prototype.set=vY;var wY=Object.prototype,Zee=wY.propertyIsEnumerable,kY=sr(le,"DataView"),Hl=kY,xY=sr(le,"Promise"),Zl=xY,IY=sr(le,"Set"),Ql=IY,C1="[object Map]",CY="[object Object]",A1="[object Promise]",M1="[object Set]",j1="[object WeakMap]",S1="[object DataView]",AY=qe(Hl),MY=qe(an),jY=qe(Zl),SY=qe(Ql),$Y=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=S1||an&&ir(new an)!=C1||Zl&&ir(Zl.resolve())!=A1||Ql&&ir(new Ql)!=M1||Yl&&ir(new Yl)!=j1)&&(ir=function(e){var t=un(e),r=t==CY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case AY:return S1;case MY:return C1;case jY:return A1;case SY:return M1;case $Y:return j1}return t});var Qee=le.Uint8Array,_Y="__lodash_hash_undefined__";function EY(e){return this.__data__.set(e,_Y),this}var LY=EY;function TY(e){return this.__data__.has(e)}var OY=TY;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new X1;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=LY;Wl.prototype.has=OY;var $1=ar?ar.prototype:void 0,Wee=$1?$1.valueOf:void 0,NY=Object.prototype,Kee=NY.hasOwnProperty,DY=Object.prototype,Jee=DY.hasOwnProperty,Xee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ete=new RegExp(/[A-Fa-f0-9]{1}/,"g"),tte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ef(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function PY(e,t){let r=await ef(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function zY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ef(i,t)}function UY(e){return e!==void 0}var RY=UY;function ns(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function dn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var tf=class rf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},FY=class nf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new nf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function VY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function BY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var qY=BY,Fl="ly.img.ai.temp";async function GY(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function YY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function HY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function ZY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function os(e){return e instanceof Error&&e.name==="AbortError"}function QY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function WY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
586
|
+
`}var jB=MB,Io="changeTextTo",Ie=`ly.img.${Io}`,Lg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Tg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function wl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var SB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Tg}`]:"Change Text to...",[`${Tg}.prompt`]:"Change Text to...",[`${Lg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Lg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:wl(l,"prompt"),placeholder:wl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:jB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:wl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),$B=SB,f1="@imgly/plugin-ai-text-generation-web",EB=["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 _B(e){return{async initialize({cesdk:t}){if(t==null)return;uz(t,f1,"1.69.0-nightly.20260130"),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(KO,XO),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),LB(e);let r=Ol.get();r.register(GV({cesdk:t})),r.register(JV({cesdk:t})),r.register(oB({cesdk:t})),r.register(pB({cesdk:t})),r.register(hB({cesdk:t})),r.register(AB({cesdk:t})),r.register($B({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(zV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await bU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await RU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:EB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function LB(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 TB=_B,OB=e=>({name:f1,version:"1.69.0-nightly.20260130",...TB(e)}),y1=OB;var NB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var DB=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")}},PB=typeof global=="object"&&global&&global.Object===Object&&global,H1=PB,zB=typeof self=="object"&&self&&self.Object===Object&&self,UB=H1||zB||Function("return this")(),le=UB,RB=le.Symbol,ar=RB,Z1=Object.prototype,FB=Z1.hasOwnProperty,VB=Z1.toString,Wi=ar?ar.toStringTag:void 0;function BB(e){var t=FB.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=VB.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var qB=BB,GB=Object.prototype,YB=GB.toString;function HB(e){return YB.call(e)}var ZB=HB,QB="[object Null]",WB="[object Undefined]",m1=ar?ar.toStringTag:void 0;function KB(e){return e==null?e===void 0?WB:QB:m1&&m1 in Object(e)?qB(e):ZB(e)}var un=KB;function JB(e){return e!=null&&typeof e=="object"}var is=JB,Dee=Array.isArray;function XB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Q1=XB,eq="[object AsyncFunction]",tq="[object Function]",rq="[object GeneratorFunction]",iq="[object Proxy]";function nq(e){if(!Q1(e))return!1;var t=un(e);return t==tq||t==rq||t==eq||t==iq}var oq=nq,aq=le["__core-js_shared__"],Ul=aq,b1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function lq(e){return!!b1&&b1 in e}var sq=lq,uq=Function.prototype,cq=uq.toString;function dq(e){if(e!=null){try{return cq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=dq,pq=/[\\^$.*+?()[\]{}|]/g,gq=/^\[object .+?Constructor\]$/,fq=Function.prototype,yq=Object.prototype,mq=fq.toString,bq=yq.hasOwnProperty,hq=RegExp("^"+mq.call(bq).replace(pq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vq(e){if(!Q1(e)||sq(e))return!1;var t=oq(e)?hq:gq;return t.test(qe(e))}var wq=vq;function kq(e,t){return e?.[t]}var xq=kq;function Iq(e,t){var r=xq(e,t);return wq(r)?r:void 0}var sr=Iq,Cq=sr(le,"WeakMap"),Yl=Cq;function Aq(e,t){return e===t||e!==e&&t!==t}var Mq=Aq,jq=9007199254740991;function Sq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=jq}var $q=Sq,Pee=Object.prototype,Eq="[object Arguments]";function _q(e){return is(e)&&un(e)==Eq}var h1=_q,W1=Object.prototype,Lq=W1.hasOwnProperty,Tq=W1.propertyIsEnumerable,zee=h1(function(){return arguments}())?h1:function(e){return is(e)&&Lq.call(e,"callee")&&!Tq.call(e,"callee")},K1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,v1=K1&&typeof module=="object"&&module&&!module.nodeType&&module,Oq=v1&&v1.exports===K1,w1=Oq?le.Buffer:void 0,Uee=w1?w1.isBuffer:void 0,Nq="[object Arguments]",Dq="[object Array]",Pq="[object Boolean]",zq="[object Date]",Uq="[object Error]",Rq="[object Function]",Fq="[object Map]",Vq="[object Number]",Bq="[object Object]",qq="[object RegExp]",Gq="[object Set]",Yq="[object String]",Hq="[object WeakMap]",Zq="[object ArrayBuffer]",Qq="[object DataView]",Wq="[object Float32Array]",Kq="[object Float64Array]",Jq="[object Int8Array]",Xq="[object Int16Array]",eG="[object Int32Array]",tG="[object Uint8Array]",rG="[object Uint8ClampedArray]",iG="[object Uint16Array]",nG="[object Uint32Array]",V={};V[Wq]=V[Kq]=V[Jq]=V[Xq]=V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=!0;V[Nq]=V[Dq]=V[Zq]=V[Pq]=V[Qq]=V[zq]=V[Uq]=V[Rq]=V[Fq]=V[Vq]=V[Bq]=V[qq]=V[Gq]=V[Yq]=V[Hq]=!1;function oG(e){return is(e)&&$q(e.length)&&!!V[un(e)]}var aG=oG;function lG(e){return function(t){return e(t)}}var sG=lG,J1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=J1&&typeof module=="object"&&module&&!module.nodeType&&module,uG=rn&&rn.exports===J1,Rl=uG&&H1.process,cG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),k1=cG,x1=k1&&k1.isTypedArray,Ree=x1?sG(x1):aG,dG=Object.prototype,Fee=dG.hasOwnProperty;function pG(e,t){return function(r){return e(t(r))}}var gG=pG,Vee=gG(Object.keys,Object),fG=Object.prototype,Bee=fG.hasOwnProperty,yG=sr(Object,"create"),on=yG;function mG(){this.__data__=on?on(null):{},this.size=0}var bG=mG;function hG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var vG=hG,wG="__lodash_hash_undefined__",kG=Object.prototype,xG=kG.hasOwnProperty;function IG(e){var t=this.__data__;if(on){var r=t[e];return r===wG?void 0:r}return xG.call(t,e)?t[e]:void 0}var CG=IG,AG=Object.prototype,MG=AG.hasOwnProperty;function jG(e){var t=this.__data__;return on?t[e]!==void 0:MG.call(t,e)}var SG=jG,$G="__lodash_hash_undefined__";function EG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?$G:t,this}var _G=EG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=bG;ur.prototype.delete=vG;ur.prototype.get=CG;ur.prototype.has=SG;ur.prototype.set=_G;var I1=ur;function LG(){this.__data__=[],this.size=0}var TG=LG;function OG(e,t){for(var r=e.length;r--;)if(Mq(e[r][0],t))return r;return-1}var Co=OG,NG=Array.prototype,DG=NG.splice;function PG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():DG.call(t,r,1),--this.size,!0}var zG=PG;function UG(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var RG=UG;function FG(e){return Co(this.__data__,e)>-1}var VG=FG;function BG(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var qG=BG;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=TG;cr.prototype.delete=zG;cr.prototype.get=RG;cr.prototype.has=VG;cr.prototype.set=qG;var Ao=cr,GG=sr(le,"Map"),an=GG;function YG(){this.size=0,this.__data__={hash:new I1,map:new(an||Ao),string:new I1}}var HG=YG;function ZG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var QG=ZG;function WG(e,t){var r=e.__data__;return QG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=WG;function KG(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var JG=KG;function XG(e){return Mo(this,e).get(e)}var eY=XG;function tY(e){return Mo(this,e).has(e)}var rY=tY;function iY(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var nY=iY;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=HG;dr.prototype.delete=JG;dr.prototype.get=eY;dr.prototype.has=rY;dr.prototype.set=nY;var X1=dr;function oY(){this.__data__=new Ao,this.size=0}var aY=oY;function lY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var sY=lY;function uY(e){return this.__data__.get(e)}var cY=uY;function dY(e){return this.__data__.has(e)}var pY=dY,gY=200;function fY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<gY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new X1(i)}return r.set(e,t),this.size=r.size,this}var yY=fY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=aY;cn.prototype.delete=sY;cn.prototype.get=cY;cn.prototype.has=pY;cn.prototype.set=yY;var mY=Object.prototype,qee=mY.propertyIsEnumerable,bY=sr(le,"DataView"),Hl=bY,hY=sr(le,"Promise"),Zl=hY,vY=sr(le,"Set"),Ql=vY,C1="[object Map]",wY="[object Object]",A1="[object Promise]",M1="[object Set]",j1="[object WeakMap]",S1="[object DataView]",kY=qe(Hl),xY=qe(an),IY=qe(Zl),CY=qe(Ql),AY=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=S1||an&&ir(new an)!=C1||Zl&&ir(Zl.resolve())!=A1||Ql&&ir(new Ql)!=M1||Yl&&ir(new Yl)!=j1)&&(ir=function(e){var t=un(e),r=t==wY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case kY:return S1;case xY:return C1;case IY:return A1;case CY:return M1;case AY:return j1}return t});var Gee=le.Uint8Array,MY="__lodash_hash_undefined__";function jY(e){return this.__data__.set(e,MY),this}var SY=jY;function $Y(e){return this.__data__.has(e)}var EY=$Y;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new X1;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=SY;Wl.prototype.has=EY;var $1=ar?ar.prototype:void 0,Yee=$1?$1.valueOf:void 0,_Y=Object.prototype,Hee=_Y.hasOwnProperty,LY=Object.prototype,Zee=LY.hasOwnProperty,Qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Wee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Kee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ef(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function TY(e,t){let r=await ef(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function OY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ef(i,t)}function NY(e){return e!==void 0}var DY=NY;function ns(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function dn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var tf=class rf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new rf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},PY=class nf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new nf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function zY(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 UY({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 RY=UY,Fl="ly.img.ai.temp";async function FY(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function VY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function BY(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 qY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function os(e){return e instanceof Error&&e.name==="AbortError"}function GY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function YY(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 KY(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var JY=KY;function XY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),eH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:YY(e)}))}function eH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var _1=XY,tH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",as=tH;function rH(e,t,r){switch(t){case"image":return iH(e,r[t]);case"video":return nH(e,r[t]);case"sticker":return oH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function iH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function nH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:as,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function oH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var aH=rH;async function lH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return sH(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return uH(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return cH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return dH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function sH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function uH(e,t,r){let i=t.width,n=t.height,a=await HY(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function cH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function dH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var af=lH;function pH(e){switch(e.userFlow){case"placeholder":return fH(e);case"generation-only":return gH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function gH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(je(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(je(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(je(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=of(),c=await af(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function fH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(je(t,r))return{status:"aborted"};let s=of(),c=aH(s,a,o);if(i=await GY(t,c),je(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(je(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await af(s,a,o,l.output);if(je(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),je(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(os(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function je(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var yH=pH;function ls(e){return`${e}.generating`}function mH(e){return`${e}.abort`}function bH(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(mH(d),()=>{}),m=c.global(ls(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await yH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){_1(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;hH(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(os(y))return;_1(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function hH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var lf=bH;async function vH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ls(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return lf(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var wH=vH;function sf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=sf(e,t.$ref),n={...Xi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xi(e,t[n],r));return i}return t}function kH(e){return Xi(e,{...e})}function xH(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function IH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return CH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function CH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=AH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function AH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var uf=IH;function Se(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function cf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function df(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?MH(e,c,r,i,n,a,o,s):pf(e,c,r,i,n,a,o,s);case"boolean":return gf(e,c,r,i,n,a,o,s);case"number":case"integer":return ff(e,c,r,i,n,a,o,s);case"object":return Kl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return jH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Kl(e,t,r,i,n,a,o,s){let c=uf(t.schema??{},i).reduce((l,u)=>{let d=df(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function pf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=Se(t,r,o,"placeholder"),f=dn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=pn(d,h,f,t.schema.default,""),v=l(p,b),k=SH(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function MH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),{labels:m,icons:f}=cf(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Se(t,r,o,I),icon:f[I]})),b=dn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=pn(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function gf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=dn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!pn(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=dn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=pn(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function jH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=cf(t.schema),x=dn(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:pf,boolean:gf,integer:ff,object:Kl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Se(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Kl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=pn(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function SH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $H=df,_H={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function E1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function EH(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||E1(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||E1(g);n[a(l.id,g)]=m}})}});let c={..._H,...n};Object.keys(c).length>0&&ns(r.cesdk,{en:c})}async function LH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=kH(r.document),c=sf(s,r.inputReference);if(!xH(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=uf(l,r);return EH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=$H(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});lf(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var TH=LH;async function OH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return wH(e,t);case"schema":return TH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var NH=OH;function DH(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new UB(o,r)),o}return i}var PH=DH;function zH(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var UH=zH,Vl="@imgly/plugin-ai-generation",RH=`
|
|
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 HY(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 ZY=HY;function QY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),WY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:VY(e)}))}function WY(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 E1=QY,KY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",as=KY;function JY(e,t,r){switch(t){case"image":return XY(e,r[t]);case"video":return eH(e,r[t]);case"sticker":return tH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function XY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function eH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:as,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function tH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var rH=JY;async function iH(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 nH(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 oH(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 aH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return lH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nH(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 oH(e,t,r){let i=t.width,n=t.height,a=await BY(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 aH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function lH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var af=iH;function sH(e){switch(e.userFlow){case"placeholder":return cH(e);case"generation-only":return uH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function uH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(je(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(je(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(je(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=of(),c=await af(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function cH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(je(t,r))return{status:"aborted"};let s=of(),c=rH(s,a,o);if(i=await FY(t,c),je(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(je(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await af(s,a,o,l.output);if(je(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),je(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(os(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function je(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dH=sH;function ls(e){return`${e}.generating`}function pH(e){return`${e}.abort`}function gH(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(pH(d),()=>{}),m=c.global(ls(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await dH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){E1(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;fH(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(os(y))return;E1(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 fH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var lf=gH;async function yH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ls(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return lf(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var mH=yH;function sf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=sf(e,t.$ref),n={...Xi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xi(e,t[n],r));return i}return t}function bH(e){return Xi(e,{...e})}function hH(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 vH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return wH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function wH(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=kH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function kH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var uf=vH;function Se(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function cf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function df(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?xH(e,c,r,i,n,a,o,s):pf(e,c,r,i,n,a,o,s);case"boolean":return gf(e,c,r,i,n,a,o,s);case"number":case"integer":return ff(e,c,r,i,n,a,o,s);case"object":return Kl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return IH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Kl(e,t,r,i,n,a,o,s){let c=uf(t.schema??{},i).reduce((l,u)=>{let d=df(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function pf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=Se(t,r,o,"placeholder"),f=dn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=pn(d,h,f,t.schema.default,""),v=l(p,b),k=CH(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function xH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),{labels:m,icons:f}=cf(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Se(t,r,o,I),icon:f[I]})),b=dn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=pn(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function gf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=dn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!pn(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Se(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=dn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=pn(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function 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=Se(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=cf(t.schema),x=dn(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:pf,boolean:gf,integer:ff,object:Kl},M=(w,$)=>w.$ref?w.$ref.split("/").pop():$.split(".").pop()??$,A=(w,$)=>({id:w,label:Se(t,r,o,$),icon:k[$]??k[w]});m.forEach((w,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(w.$ref||w.title){let j=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Kl(e,{id:C,schema:{...w,title:v[j]||j}},r,i,n,a,o,s),f.push(A(C,j))}else if(w.type==="string"&&w.enum)w.enum.forEach(j=>{f.push(A(j,j))});else if(w.type&&I[w.type]){let j=I[w.type];h[C]=()=>j(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let _=pn(d,y,x,t.schema.default,null),S=_!=null?f.find(w=>w.id===_)??f[0]:f[0],E=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in h){let w=h[E.value.id]();b[E.value.id]=w}return()=>{let w=b[E.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function CH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var AH=df,MH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function _1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function jH(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]||_1(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]||_1(g);n[a(l.id,g)]=m}})}});let c={...MH,...n};Object.keys(c).length>0&&ns(r.cesdk,{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(`Provider: ${o} (schema-based)`);let s=bH(r.document),c=sf(s,r.inputReference);if(!hH(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=uf(l,r);return jH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=AH(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});lf(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var $H=SH;async function EH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return mH(e,t);case"schema":return $H(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var _H=EH;function LH(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 NB(o,r)),o}return i}var TH=LH;function OH(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 NH=OH,Vl="@imgly/plugin-ai-generation",DH=`
|
|
590
590
|
<svg>
|
|
591
591
|
<symbol
|
|
592
592
|
fill="none"
|
|
@@ -647,8 +647,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
647
647
|
|
|
648
648
|
</symbol>
|
|
649
649
|
</svg>
|
|
650
|
-
`,
|
|
651
|
-
`,"+")}`}}async function GH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function YH(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Ki(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ki(n,o)}else"customPrompt"in e?a=Ki(n,"custom"):a=Ki(n,"improved");else a=Ki(n,"generated");return HH(a,r.abortSignal)}async function*HH(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await yf(100)}return{kind:"text",text:e}}function Ki(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function ZH(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:QH(220,i),duration:i,thumbnailUrl:void 0}}function QH(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return WH(i,44100)}function WH(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function yf(e){return new Promise(t=>{setTimeout(t,e)})}var KH=VH,JH="USER_CANCEL";function XH(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=VY([...e.provider.output.middleware??[],...r?.middlewares??[],qY({enable:r?.debug}),KH({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ZY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return os(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===JH?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var eZ=XH;async function tZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=tf.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=PH(a),s=UH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=eZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await NH(a,c);QY(r.cesdk,"@imgly/plugin-ai-generation",FH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return FY.get().register(u),u}var Bl=tZ;function rZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new RB(n,r,i);return r.engine.asset.addSource(a),a.id}var iZ=rZ;function en(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function nZ(e,t,r,i){let{cesdk:n}=r;ns(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Bl(e,u,r,i)));o.push(...l),a=aZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Bl(e,d,r,i)));o.push(...u),a=oZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=iZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(RY)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function oZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:en(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:en(e,"fromText.label"),icon:f.value!=="fromText"&&L1(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:en(e,"fromImage.label"),icon:f.value!=="fromImage"&&L1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function aZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function L1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ls(r.id),!1).value)}var lZ=nZ,sZ="@imgly/plugin-ai-sticker-generation",uZ=`
|
|
650
|
+
`,PH=DH;function zH(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await yf(2e3),await UH(t,e,r)):i(t,r)}async function UH(e,t,r){switch(t.kind){case"image":return RH(e,t,r);case"video":return FH(e,t,r);case"text":return VH(e,t,r);case"audio":return qH(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function RH(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 OY(s,r),l=await TY(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 FH(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function VH(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Ki(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ki(n,o)}else"customPrompt"in e?a=Ki(n,"custom"):a=Ki(n,"improved");else a=Ki(n,"generated");return BH(a,r.abortSignal)}async function*BH(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await yf(100)}return{kind:"text",text:e}}function Ki(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function qH(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:GH(220,i),duration:i,thumbnailUrl:void 0}}function GH(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 YH(i,44100)}function YH(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function yf(e){return new Promise(t=>{setTimeout(t,e)})}var HH=zH,ZH="USER_CANCEL";function QH(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=zY([...e.provider.output.middleware??[],...r?.middlewares??[],RY({enable:r?.debug}),HH({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:qY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return os(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===ZH?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var WH=QH;async function KH(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=tf.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=TH(a),s=NH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=WH({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _H(a,c);GY(r.cesdk,"@imgly/plugin-ai-generation",PH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return PY.get().register(u),u}var Bl=KH;function JH(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 DB(n,r,i);return r.engine.asset.addSource(a),a.id}var XH=JH;function en(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function eZ(e,t,r,i){let{cesdk:n}=r;ns(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Bl(e,u,r,i)));o.push(...l),a=rZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Bl(e,d,r,i)));o.push(...u),a=tZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=XH({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(DY)}),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 tZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),v=i.map(({provider:C,panel:j})=>({id:C.id,label:C.name??C.id,builderRenderFunction:j?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,w=a&&E,$=h.length>1&&S;if((w||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:en(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:en(e,"fromText.label"),icon:f.value!=="fromText"&&L1(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:en(e,"fromImage.label"),icon:f.value!=="fromImage"&&L1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];M!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:C,value:A,setValue:j=>{M.setValue(j.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function rZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function L1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ls(r.id),!1).value)}var iZ=eZ,nZ="@imgly/plugin-ai-sticker-generation",oZ=`
|
|
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
|
-
`,cZ=uZ,dZ=typeof global=="object"&&global&&global.Object===Object&&global,mf=dZ,pZ=typeof self=="object"&&self&&self.Object===Object&&self,gZ=mf||pZ||Function("return this")(),se=gZ,fZ=se.Symbol,lr=fZ,bf=Object.prototype,yZ=bf.hasOwnProperty,mZ=bf.toString,Ji=lr?lr.toStringTag:void 0;function bZ(e){var t=yZ.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=mZ.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var hZ=bZ,vZ=Object.prototype,wZ=vZ.toString;function kZ(e){return wZ.call(e)}var xZ=kZ,IZ="[object Null]",CZ="[object Undefined]",T1=lr?lr.toStringTag:void 0;function AZ(e){return e==null?e===void 0?CZ:IZ:T1&&T1 in Object(e)?hZ(e):xZ(e)}var gn=AZ;function MZ(e){return e!=null&&typeof e=="object"}var ss=MZ,rte=Array.isArray;function jZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var hf=jZ,SZ="[object AsyncFunction]",$Z="[object Function]",_Z="[object GeneratorFunction]",EZ="[object Proxy]";function LZ(e){if(!hf(e))return!1;var t=gn(e);return t==$Z||t==_Z||t==SZ||t==EZ}var TZ=LZ,OZ=se["__core-js_shared__"],ql=OZ,O1=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NZ(e){return!!O1&&O1 in e}var DZ=NZ,PZ=Function.prototype,zZ=PZ.toString;function UZ(e){if(e!=null){try{return zZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=UZ,RZ=/[\\^$.*+?()[\]{}|]/g,FZ=/^\[object .+?Constructor\]$/,VZ=Function.prototype,BZ=Object.prototype,qZ=VZ.toString,GZ=BZ.hasOwnProperty,YZ=RegExp("^"+qZ.call(GZ).replace(RZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function HZ(e){if(!hf(e)||DZ(e))return!1;var t=TZ(e)?YZ:FZ;return t.test(Ge(e))}var ZZ=HZ;function QZ(e,t){return e?.[t]}var WZ=QZ;function KZ(e,t){var r=WZ(e,t);return ZZ(r)?r:void 0}var pr=KZ,JZ=pr(se,"WeakMap"),Jl=JZ;function XZ(e,t){return e===t||e!==e&&t!==t}var eQ=XZ,tQ=9007199254740991;function rQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tQ}var iQ=rQ,ite=Object.prototype,nQ="[object Arguments]";function oQ(e){return ss(e)&&gn(e)==nQ}var N1=oQ,vf=Object.prototype,aQ=vf.hasOwnProperty,lQ=vf.propertyIsEnumerable,nte=N1(function(){return arguments}())?N1:function(e){return ss(e)&&aQ.call(e,"callee")&&!lQ.call(e,"callee")},wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,D1=wf&&typeof module=="object"&&module&&!module.nodeType&&module,sQ=D1&&D1.exports===wf,P1=sQ?se.Buffer:void 0,ote=P1?P1.isBuffer:void 0,uQ="[object Arguments]",cQ="[object Array]",dQ="[object Boolean]",pQ="[object Date]",gQ="[object Error]",fQ="[object Function]",yQ="[object Map]",mQ="[object Number]",bQ="[object Object]",hQ="[object RegExp]",vQ="[object Set]",wQ="[object String]",kQ="[object WeakMap]",xQ="[object ArrayBuffer]",IQ="[object DataView]",CQ="[object Float32Array]",AQ="[object Float64Array]",MQ="[object Int8Array]",jQ="[object Int16Array]",SQ="[object Int32Array]",$Q="[object Uint8Array]",_Q="[object Uint8ClampedArray]",EQ="[object Uint16Array]",LQ="[object Uint32Array]",B={};B[CQ]=B[AQ]=B[MQ]=B[jQ]=B[SQ]=B[$Q]=B[_Q]=B[EQ]=B[LQ]=!0;B[uQ]=B[cQ]=B[xQ]=B[dQ]=B[IQ]=B[pQ]=B[gQ]=B[fQ]=B[yQ]=B[mQ]=B[bQ]=B[hQ]=B[vQ]=B[wQ]=B[kQ]=!1;function TQ(e){return ss(e)&&iQ(e.length)&&!!B[gn(e)]}var OQ=TQ;function NQ(e){return function(t){return e(t)}}var DQ=NQ,kf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=kf&&typeof module=="object"&&module&&!module.nodeType&&module,PQ=nn&&nn.exports===kf,Gl=PQ&&mf.process,zQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),z1=zQ,U1=z1&&z1.isTypedArray,ate=U1?DQ(U1):OQ,UQ=Object.prototype,lte=UQ.hasOwnProperty;function RQ(e,t){return function(r){return e(t(r))}}var FQ=RQ,ste=FQ(Object.keys,Object),VQ=Object.prototype,ute=VQ.hasOwnProperty,BQ=pr(Object,"create"),ln=BQ;function qQ(){this.__data__=ln?ln(null):{},this.size=0}var GQ=qQ;function YQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HQ=YQ,ZQ="__lodash_hash_undefined__",QQ=Object.prototype,WQ=QQ.hasOwnProperty;function KQ(e){var t=this.__data__;if(ln){var r=t[e];return r===ZQ?void 0:r}return WQ.call(t,e)?t[e]:void 0}var JQ=KQ,XQ=Object.prototype,eW=XQ.hasOwnProperty;function tW(e){var t=this.__data__;return ln?t[e]!==void 0:eW.call(t,e)}var rW=tW,iW="__lodash_hash_undefined__";function nW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?iW:t,this}var oW=nW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=GQ;gr.prototype.delete=HQ;gr.prototype.get=JQ;gr.prototype.has=rW;gr.prototype.set=oW;var R1=gr;function aW(){this.__data__=[],this.size=0}var lW=aW;function sW(e,t){for(var r=e.length;r--;)if(eQ(e[r][0],t))return r;return-1}var jo=sW,uW=Array.prototype,cW=uW.splice;function dW(e){var t=this.__data__,r=jo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():cW.call(t,r,1),--this.size,!0}var pW=dW;function gW(e){var t=this.__data__,r=jo(t,e);return r<0?void 0:t[r][1]}var fW=gW;function yW(e){return jo(this.__data__,e)>-1}var mW=yW;function bW(e,t){var r=this.__data__,i=jo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var hW=bW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=lW;fr.prototype.delete=pW;fr.prototype.get=fW;fr.prototype.has=mW;fr.prototype.set=hW;var So=fr,vW=pr(se,"Map"),sn=vW;function wW(){this.size=0,this.__data__={hash:new R1,map:new(sn||So),string:new R1}}var kW=wW;function xW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var IW=xW;function CW(e,t){var r=e.__data__;return IW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=CW;function AW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var MW=AW;function jW(e){return $o(this,e).get(e)}var SW=jW;function $W(e){return $o(this,e).has(e)}var _W=$W;function EW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LW=EW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=kW;yr.prototype.delete=MW;yr.prototype.get=SW;yr.prototype.has=_W;yr.prototype.set=LW;var xf=yr;function TW(){this.__data__=new So,this.size=0}var OW=TW;function NW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var DW=NW;function PW(e){return this.__data__.get(e)}var zW=PW;function UW(e){return this.__data__.has(e)}var RW=UW,FW=200;function VW(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!sn||i.length<FW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new xf(i)}return r.set(e,t),this.size=r.size,this}var BW=VW;function fn(e){var t=this.__data__=new So(e);this.size=t.size}fn.prototype.clear=OW;fn.prototype.delete=DW;fn.prototype.get=zW;fn.prototype.has=RW;fn.prototype.set=BW;var qW=Object.prototype,cte=qW.propertyIsEnumerable,GW=pr(se,"DataView"),Xl=GW,YW=pr(se,"Promise"),es=YW,HW=pr(se,"Set"),ts=HW,F1="[object Map]",ZW="[object Object]",V1="[object Promise]",B1="[object Set]",q1="[object WeakMap]",G1="[object DataView]",QW=Ge(Xl),WW=Ge(sn),KW=Ge(es),JW=Ge(ts),XW=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=G1||sn&&nr(new sn)!=F1||es&&nr(es.resolve())!=V1||ts&&nr(new ts)!=B1||Jl&&nr(new Jl)!=q1)&&(nr=function(e){var t=gn(e),r=t==ZW?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case QW:return G1;case WW:return F1;case KW:return V1;case JW:return B1;case XW:return q1}return t});var dte=se.Uint8Array,eK="__lodash_hash_undefined__";function tK(e){return this.__data__.set(e,eK),this}var rK=tK;function iK(e){return this.__data__.has(e)}var nK=iK;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new xf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=rK;rs.prototype.has=nK;var Y1=lr?lr.prototype:void 0,pte=Y1?Y1.valueOf:void 0,oK=Object.prototype,gte=oK.hasOwnProperty,aK=Object.prototype,fte=aK.hasOwnProperty,yte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),bte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lK(e){return e==null?[]:Array.isArray(e)?e:[e]}var sK=lK;function uK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function cK(e){return typeof e?.translate=="function"}function dK(e,t,r){return e&&uK(e)&&cK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Me="ly.img.ai.sticker-generation";function pK(e){return{async initialize({cesdk:t}){if(t==null)return;WY(t,tn,"1.68.0-rc.1"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=tf.get(),i=`${tn}.action.label`;t.ui.addIconSet(sZ,cZ),ns(t,{en:{[`panel.${Me}`]:"Sticker Generation",[`${Me}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:dK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Me},execute:()=>{t.ui.isPanelOpen(Me)?t.ui.closePanel(Me):t.ui.openPanel(Me)}}),a=e.providers?.text2sticker,o=await Promise.all(sK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await lZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Me,s.panel.builderRenderFunction),JY({cesdk:t,panelId:Me})):n()}}}var gK=pK,fK=e=>({name:tn,version:"1.68.0-rc.1",...gK(e)}),If=fK;var us=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=yK(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Cf(e,t,r=[]){return new us(e,t,r)}function yK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var yn="ly.img.ai.apps";var Y=tu("apps"),mK=512,bK=128,Af=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"1.68.0-rc.1");let{providers:r}=e;await t.addPlugin(y1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Cc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Dd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Hp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(If({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),xK(t),hK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function hK(e,t){kK(e);let r=vK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{xn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?xn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function vK(e,t){let r=xn.get(),i=Cf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?wK(t.baseURL,o):void 0,width:mK,height:bK}}).filter(Es)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function wK(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function kK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(x=>{let y=v(e.version.startsWith("1.51.")?x:{sourceId:x});return y===u||y==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),m=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function xK(e){Xs(e,iu)}var IK=e=>({name:yn,version:"1.68.0-rc.1",...Af(e)}),Dte=IK;export{Dte as default};
|
|
665
|
+
`,aZ=oZ,lZ=typeof global=="object"&&global&&global.Object===Object&&global,mf=lZ,sZ=typeof self=="object"&&self&&self.Object===Object&&self,uZ=mf||sZ||Function("return this")(),se=uZ,cZ=se.Symbol,lr=cZ,bf=Object.prototype,dZ=bf.hasOwnProperty,pZ=bf.toString,Ji=lr?lr.toStringTag:void 0;function gZ(e){var t=dZ.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=pZ.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var fZ=gZ,yZ=Object.prototype,mZ=yZ.toString;function bZ(e){return mZ.call(e)}var hZ=bZ,vZ="[object Null]",wZ="[object Undefined]",T1=lr?lr.toStringTag:void 0;function kZ(e){return e==null?e===void 0?wZ:vZ:T1&&T1 in Object(e)?fZ(e):hZ(e)}var gn=kZ;function xZ(e){return e!=null&&typeof e=="object"}var ss=xZ,Jee=Array.isArray;function IZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var hf=IZ,CZ="[object AsyncFunction]",AZ="[object Function]",MZ="[object GeneratorFunction]",jZ="[object Proxy]";function SZ(e){if(!hf(e))return!1;var t=gn(e);return t==AZ||t==MZ||t==CZ||t==jZ}var $Z=SZ,EZ=se["__core-js_shared__"],ql=EZ,O1=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function _Z(e){return!!O1&&O1 in e}var LZ=_Z,TZ=Function.prototype,OZ=TZ.toString;function NZ(e){if(e!=null){try{return OZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=NZ,DZ=/[\\^$.*+?()[\]{}|]/g,PZ=/^\[object .+?Constructor\]$/,zZ=Function.prototype,UZ=Object.prototype,RZ=zZ.toString,FZ=UZ.hasOwnProperty,VZ=RegExp("^"+RZ.call(FZ).replace(DZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function BZ(e){if(!hf(e)||LZ(e))return!1;var t=$Z(e)?VZ:PZ;return t.test(Ge(e))}var qZ=BZ;function GZ(e,t){return e?.[t]}var YZ=GZ;function HZ(e,t){var r=YZ(e,t);return qZ(r)?r:void 0}var pr=HZ,ZZ=pr(se,"WeakMap"),Jl=ZZ;function QZ(e,t){return e===t||e!==e&&t!==t}var WZ=QZ,KZ=9007199254740991;function JZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=KZ}var XZ=JZ,Xee=Object.prototype,eQ="[object Arguments]";function tQ(e){return ss(e)&&gn(e)==eQ}var N1=tQ,vf=Object.prototype,rQ=vf.hasOwnProperty,iQ=vf.propertyIsEnumerable,ete=N1(function(){return arguments}())?N1:function(e){return ss(e)&&rQ.call(e,"callee")&&!iQ.call(e,"callee")},wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,D1=wf&&typeof module=="object"&&module&&!module.nodeType&&module,nQ=D1&&D1.exports===wf,P1=nQ?se.Buffer:void 0,tte=P1?P1.isBuffer:void 0,oQ="[object Arguments]",aQ="[object Array]",lQ="[object Boolean]",sQ="[object Date]",uQ="[object Error]",cQ="[object Function]",dQ="[object Map]",pQ="[object Number]",gQ="[object Object]",fQ="[object RegExp]",yQ="[object Set]",mQ="[object String]",bQ="[object WeakMap]",hQ="[object ArrayBuffer]",vQ="[object DataView]",wQ="[object Float32Array]",kQ="[object Float64Array]",xQ="[object Int8Array]",IQ="[object Int16Array]",CQ="[object Int32Array]",AQ="[object Uint8Array]",MQ="[object Uint8ClampedArray]",jQ="[object Uint16Array]",SQ="[object Uint32Array]",B={};B[wQ]=B[kQ]=B[xQ]=B[IQ]=B[CQ]=B[AQ]=B[MQ]=B[jQ]=B[SQ]=!0;B[oQ]=B[aQ]=B[hQ]=B[lQ]=B[vQ]=B[sQ]=B[uQ]=B[cQ]=B[dQ]=B[pQ]=B[gQ]=B[fQ]=B[yQ]=B[mQ]=B[bQ]=!1;function $Q(e){return ss(e)&&XZ(e.length)&&!!B[gn(e)]}var EQ=$Q;function _Q(e){return function(t){return e(t)}}var LQ=_Q,kf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=kf&&typeof module=="object"&&module&&!module.nodeType&&module,TQ=nn&&nn.exports===kf,Gl=TQ&&mf.process,OQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),z1=OQ,U1=z1&&z1.isTypedArray,rte=U1?LQ(U1):EQ,NQ=Object.prototype,ite=NQ.hasOwnProperty;function DQ(e,t){return function(r){return e(t(r))}}var PQ=DQ,nte=PQ(Object.keys,Object),zQ=Object.prototype,ote=zQ.hasOwnProperty,UQ=pr(Object,"create"),ln=UQ;function RQ(){this.__data__=ln?ln(null):{},this.size=0}var FQ=RQ;function VQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var BQ=VQ,qQ="__lodash_hash_undefined__",GQ=Object.prototype,YQ=GQ.hasOwnProperty;function HQ(e){var t=this.__data__;if(ln){var r=t[e];return r===qQ?void 0:r}return YQ.call(t,e)?t[e]:void 0}var ZQ=HQ,QQ=Object.prototype,WQ=QQ.hasOwnProperty;function KQ(e){var t=this.__data__;return ln?t[e]!==void 0:WQ.call(t,e)}var JQ=KQ,XQ="__lodash_hash_undefined__";function eW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?XQ:t,this}var tW=eW;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=FQ;gr.prototype.delete=BQ;gr.prototype.get=ZQ;gr.prototype.has=JQ;gr.prototype.set=tW;var R1=gr;function rW(){this.__data__=[],this.size=0}var iW=rW;function nW(e,t){for(var r=e.length;r--;)if(WZ(e[r][0],t))return r;return-1}var jo=nW,oW=Array.prototype,aW=oW.splice;function lW(e){var t=this.__data__,r=jo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():aW.call(t,r,1),--this.size,!0}var sW=lW;function uW(e){var t=this.__data__,r=jo(t,e);return r<0?void 0:t[r][1]}var cW=uW;function dW(e){return jo(this.__data__,e)>-1}var pW=dW;function gW(e,t){var r=this.__data__,i=jo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var fW=gW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=iW;fr.prototype.delete=sW;fr.prototype.get=cW;fr.prototype.has=pW;fr.prototype.set=fW;var So=fr,yW=pr(se,"Map"),sn=yW;function mW(){this.size=0,this.__data__={hash:new R1,map:new(sn||So),string:new R1}}var bW=mW;function hW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var vW=hW;function wW(e,t){var r=e.__data__;return vW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=wW;function kW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var xW=kW;function IW(e){return $o(this,e).get(e)}var CW=IW;function AW(e){return $o(this,e).has(e)}var MW=AW;function jW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var SW=jW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=bW;yr.prototype.delete=xW;yr.prototype.get=CW;yr.prototype.has=MW;yr.prototype.set=SW;var xf=yr;function $W(){this.__data__=new So,this.size=0}var EW=$W;function _W(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LW=_W;function TW(e){return this.__data__.get(e)}var OW=TW;function NW(e){return this.__data__.has(e)}var DW=NW,PW=200;function zW(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!sn||i.length<PW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new xf(i)}return r.set(e,t),this.size=r.size,this}var UW=zW;function fn(e){var t=this.__data__=new So(e);this.size=t.size}fn.prototype.clear=EW;fn.prototype.delete=LW;fn.prototype.get=OW;fn.prototype.has=DW;fn.prototype.set=UW;var RW=Object.prototype,ate=RW.propertyIsEnumerable,FW=pr(se,"DataView"),Xl=FW,VW=pr(se,"Promise"),es=VW,BW=pr(se,"Set"),ts=BW,F1="[object Map]",qW="[object Object]",V1="[object Promise]",B1="[object Set]",q1="[object WeakMap]",G1="[object DataView]",GW=Ge(Xl),YW=Ge(sn),HW=Ge(es),ZW=Ge(ts),QW=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=G1||sn&&nr(new sn)!=F1||es&&nr(es.resolve())!=V1||ts&&nr(new ts)!=B1||Jl&&nr(new Jl)!=q1)&&(nr=function(e){var t=gn(e),r=t==qW?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case GW:return G1;case YW:return F1;case HW:return V1;case ZW:return B1;case QW:return q1}return t});var lte=se.Uint8Array,WW="__lodash_hash_undefined__";function KW(e){return this.__data__.set(e,WW),this}var JW=KW;function XW(e){return this.__data__.has(e)}var eK=XW;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new xf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=JW;rs.prototype.has=eK;var Y1=lr?lr.prototype:void 0,ste=Y1?Y1.valueOf:void 0,tK=Object.prototype,ute=tK.hasOwnProperty,rK=Object.prototype,cte=rK.hasOwnProperty,dte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function iK(e){return e==null?[]:Array.isArray(e)?e:[e]}var nK=iK;function oK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function aK(e){return typeof e?.translate=="function"}function lK(e,t,r){return e&&oK(e)&&aK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Me="ly.img.ai.sticker-generation";function sK(e){return{async initialize({cesdk:t}){if(t==null)return;YY(t,tn,"1.69.0-nightly.20260130"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=tf.get(),i=`${tn}.action.label`;t.ui.addIconSet(nZ,aZ),ns(t,{en:{[`panel.${Me}`]:"Sticker Generation",[`${Me}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:lK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Me},execute:()=>{t.ui.isPanelOpen(Me)?t.ui.closePanel(Me):t.ui.openPanel(Me)}}),a=e.providers?.text2sticker,o=await Promise.all(nK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await iZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Me,s.panel.builderRenderFunction),ZY({cesdk:t,panelId:Me})):n()}}}var uK=sK,cK=e=>({name:tn,version:"1.69.0-nightly.20260130",...uK(e)}),If=cK;var us=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=dK(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Cf(e,t,r=[]){return new us(e,t,r)}function dK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var yn="ly.img.ai.apps";var Y=tu("apps"),pK=512,gK=128,Af=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"1.69.0-nightly.20260130");let{providers:r}=e;await t.addPlugin(y1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Cc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Dd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Hp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(If({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),hK(t),fK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function fK(e,t){bK(e);let r=yK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{xn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?xn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function yK(e,t){let r=xn.get(),i=Cf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?mK(t.baseURL,o):void 0,width:pK,height:gK}}).filter(_s)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function mK(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 bK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(x=>{let y=v(e.version.startsWith("1.51.")?x:{sourceId:x});return y===u||y==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),m=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function hK(e){Xs(e,iu)}var vK=e=>({name:yn,version:"1.69.0-nightly.20260130",...Af(e)}),Lte=vK;export{Lte as default};
|
|
666
666
|
/*! Bundled license information:
|
|
667
667
|
|
|
668
668
|
lodash-es/lodash.js:
|