@imgly/plugin-ai-apps-web 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="object"&&global&&global.Object===Object&&global,qn=Vl,Bl=typeof self=="object"&&self&&self.Object===Object&&self,Gl=qn||Bl||Function("return this")(),P=Gl,Fl=P.Symbol,J=Fl,Qn=Object.prototype,Rl=Qn.hasOwnProperty,ql=Qn.toString,Be=J?J.toStringTag:void 0;function Ql(e){var t=Rl.call(e,Be),n=e[Be];try{e[Be]=void 0;var r=!0}catch{}var a=ql.call(e);return r&&(t?e[Be]=n:delete e[Be]),a}var Hl=Ql,Yl=Object.prototype,Zl=Yl.toString;function Wl(e){return Zl.call(e)}var Kl=Wl,Jl="[object Null]",Xl="[object Undefined]",Tn=J?J.toStringTag:void 0;function es(e){return e==null?e===void 0?Xl:Jl:Tn&&Tn in Object(e)?Hl(e):Kl(e)}var qe=es;function ts(e){return e!=null&&typeof e=="object"}var hr=ts,wk=Array.isArray;function rs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Hn=rs,ns="[object AsyncFunction]",is="[object Function]",os="[object GeneratorFunction]",as="[object Proxy]";function ls(e){if(!Hn(e))return!1;var t=qe(e);return t==is||t==os||t==ns||t==as}var ss=ls,us=P["__core-js_shared__"],cr=us,Nn=function(){var e=/[^.]+$/.exec(cr&&cr.keys&&cr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cs(e){return!!Nn&&Nn in e}var ds=cs,gs=Function.prototype,ps=gs.toString;function fs(e){if(e!=null){try{return ps.call(e)}catch{}try{return e+""}catch{}}return""}var R=fs,ms=/[\\^$.*+?()[\]{}|]/g,ys=/^\[object .+?Constructor\]$/,bs=Function.prototype,hs=Object.prototype,vs=bs.toString,ws=hs.hasOwnProperty,ks=RegExp("^"+vs.call(ws).replace(ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Cs(e){if(!Hn(e)||ds(e))return!1;var t=ss(e)?ks:ys;return t.test(R(e))}var Ms=Cs;function xs(e,t){return e?.[t]}var Is=xs;function As(e,t){var n=Is(e,t);return Ms(n)?n:void 0}var X=As,Es=X(P,"WeakMap"),pr=Es;function Ss(e,t){return e===t||e!==e&&t!==t}var js=Ss,Ls=9007199254740991;function Ts(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ls}var Ns=Ts,kk=Object.prototype,$s="[object Arguments]";function Os(e){return hr(e)&&qe(e)==$s}var $n=Os,Yn=Object.prototype,Ds=Yn.hasOwnProperty,_s=Yn.propertyIsEnumerable,Ck=$n(function(){return arguments}())?$n:function(e){return hr(e)&&Ds.call(e,"callee")&&!_s.call(e,"callee")},Zn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,On=Zn&&typeof module=="object"&&module&&!module.nodeType&&module,zs=On&&On.exports===Zn,Dn=zs?P.Buffer:void 0,Mk=Dn?Dn.isBuffer:void 0,Ps="[object Arguments]",Us="[object Array]",Vs="[object Boolean]",Bs="[object Date]",Gs="[object Error]",Fs="[object Function]",Rs="[object Map]",qs="[object Number]",Qs="[object Object]",Hs="[object RegExp]",Ys="[object Set]",Zs="[object String]",Ws="[object WeakMap]",Ks="[object ArrayBuffer]",Js="[object DataView]",Xs="[object Float32Array]",eu="[object Float64Array]",tu="[object Int8Array]",ru="[object Int16Array]",nu="[object Int32Array]",iu="[object Uint8Array]",ou="[object Uint8ClampedArray]",au="[object Uint16Array]",lu="[object Uint32Array]",A={};A[Xs]=A[eu]=A[tu]=A[ru]=A[nu]=A[iu]=A[ou]=A[au]=A[lu]=!0;A[Ps]=A[Us]=A[Ks]=A[Vs]=A[Js]=A[Bs]=A[Gs]=A[Fs]=A[Rs]=A[qs]=A[Qs]=A[Hs]=A[Ys]=A[Zs]=A[Ws]=!1;function su(e){return hr(e)&&Ns(e.length)&&!!A[qe(e)]}var uu=su;function cu(e){return function(t){return e(t)}}var du=cu,Wn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ge=Wn&&typeof module=="object"&&module&&!module.nodeType&&module,gu=Ge&&Ge.exports===Wn,dr=gu&&qn.process,pu=function(){try{var e=Ge&&Ge.require&&Ge.require("util").types;return e||dr&&dr.binding&&dr.binding("util")}catch{}}(),_n=pu,zn=_n&&_n.isTypedArray,xk=zn?du(zn):uu,fu=Object.prototype,Ik=fu.hasOwnProperty;function mu(e,t){return function(n){return e(t(n))}}var yu=mu,Ak=yu(Object.keys,Object),bu=Object.prototype,Ek=bu.hasOwnProperty,hu=X(Object,"create"),Fe=hu;function vu(){this.__data__=Fe?Fe(null):{},this.size=0}var wu=vu;function ku(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Cu=ku,Mu="__lodash_hash_undefined__",xu=Object.prototype,Iu=xu.hasOwnProperty;function Au(e){var t=this.__data__;if(Fe){var n=t[e];return n===Mu?void 0:n}return Iu.call(t,e)?t[e]:void 0}var Eu=Au,Su=Object.prototype,ju=Su.hasOwnProperty;function Lu(e){var t=this.__data__;return Fe?t[e]!==void 0:ju.call(t,e)}var Tu=Lu,Nu="__lodash_hash_undefined__";function $u(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Fe&&t===void 0?Nu:t,this}var Ou=$u;function ee(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ee.prototype.clear=wu;ee.prototype.delete=Cu;ee.prototype.get=Eu;ee.prototype.has=Tu;ee.prototype.set=Ou;var Pn=ee;function Du(){this.__data__=[],this.size=0}var _u=Du;function zu(e,t){for(var n=e.length;n--;)if(js(e[n][0],t))return n;return-1}var zt=zu,Pu=Array.prototype,Uu=Pu.splice;function Vu(e){var t=this.__data__,n=zt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Uu.call(t,n,1),--this.size,!0}var Bu=Vu;function Gu(e){var t=this.__data__,n=zt(t,e);return n<0?void 0:t[n][1]}var Fu=Gu;function Ru(e){return zt(this.__data__,e)>-1}var qu=Ru;function Qu(e,t){var n=this.__data__,r=zt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Hu=Qu;function te(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}te.prototype.clear=_u;te.prototype.delete=Bu;te.prototype.get=Fu;te.prototype.has=qu;te.prototype.set=Hu;var Pt=te,Yu=X(P,"Map"),Re=Yu;function Zu(){this.size=0,this.__data__={hash:new Pn,map:new(Re||Pt),string:new Pn}}var Wu=Zu;function Ku(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ju=Ku;function Xu(e,t){var n=e.__data__;return Ju(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Ut=Xu;function ec(e){var t=Ut(this,e).delete(e);return this.size-=t?1:0,t}var tc=ec;function rc(e){return Ut(this,e).get(e)}var nc=rc;function ic(e){return Ut(this,e).has(e)}var oc=ic;function ac(e,t){var n=Ut(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var lc=ac;function re(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}re.prototype.clear=Wu;re.prototype.delete=tc;re.prototype.get=nc;re.prototype.has=oc;re.prototype.set=lc;var Kn=re;function sc(){this.__data__=new Pt,this.size=0}var uc=sc;function cc(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var dc=cc;function gc(e){return this.__data__.get(e)}var pc=gc;function fc(e){return this.__data__.has(e)}var mc=fc,yc=200;function bc(e,t){var n=this.__data__;if(n instanceof Pt){var r=n.__data__;if(!Re||r.length<yc-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Kn(r)}return n.set(e,t),this.size=n.size,this}var hc=bc;function Qe(e){var t=this.__data__=new Pt(e);this.size=t.size}Qe.prototype.clear=uc;Qe.prototype.delete=dc;Qe.prototype.get=pc;Qe.prototype.has=mc;Qe.prototype.set=hc;var vc=Object.prototype,Sk=vc.propertyIsEnumerable,wc=X(P,"DataView"),fr=wc,kc=X(P,"Promise"),mr=kc,Cc=X(P,"Set"),yr=Cc,Un="[object Map]",Mc="[object Object]",Vn="[object Promise]",Bn="[object Set]",Gn="[object WeakMap]",Fn="[object DataView]",xc=R(fr),Ic=R(Re),Ac=R(mr),Ec=R(yr),Sc=R(pr),K=qe;(fr&&K(new fr(new ArrayBuffer(1)))!=Fn||Re&&K(new Re)!=Un||mr&&K(mr.resolve())!=Vn||yr&&K(new yr)!=Bn||pr&&K(new pr)!=Gn)&&(K=function(e){var t=qe(e),n=t==Mc?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case xc:return Fn;case Ic:return Un;case Ac:return Vn;case Ec:return Bn;case Sc:return Gn}return t});var jk=P.Uint8Array,jc="__lodash_hash_undefined__";function Lc(e){return this.__data__.set(e,jc),this}var Tc=Lc;function Nc(e){return this.__data__.has(e)}var $c=Nc;function br(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Kn;++t<n;)this.add(e[t])}br.prototype.add=br.prototype.push=Tc;br.prototype.has=$c;var Rn=J?J.prototype:void 0,Lk=Rn?Rn.valueOf:void 0,Oc=Object.prototype,Tk=Oc.hasOwnProperty,Dc=Object.prototype,Nk=Dc.hasOwnProperty,$k=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ok=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Dk=new RegExp(/[A-Fa-f0-9]{2}/,"g");var gr="@imgly/plugin-ai-generation",_k=`
1
+ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="object"&&global&&global.Object===Object&&global,qr=Vl,Bl=typeof self=="object"&&self&&self.Object===Object&&self,Fl=qr||Bl||Function("return this")(),P=Fl,Gl=P.Symbol,J=Gl,Qr=Object.prototype,Rl=Qr.hasOwnProperty,ql=Qr.toString,Be=J?J.toStringTag:void 0;function Ql(e){var t=Rl.call(e,Be),r=e[Be];try{e[Be]=void 0;var n=!0}catch{}var a=ql.call(e);return n&&(t?e[Be]=r:delete e[Be]),a}var Hl=Ql,Yl=Object.prototype,Zl=Yl.toString;function Wl(e){return Zl.call(e)}var Kl=Wl,Jl="[object Null]",Xl="[object Undefined]",Tr=J?J.toStringTag:void 0;function es(e){return e==null?e===void 0?Xl:Jl:Tr&&Tr in Object(e)?Hl(e):Kl(e)}var qe=es;function ts(e){return e!=null&&typeof e=="object"}var vn=ts,wk=Array.isArray;function ns(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Hr=ns,rs="[object AsyncFunction]",is="[object Function]",os="[object GeneratorFunction]",as="[object Proxy]";function ls(e){if(!Hr(e))return!1;var t=qe(e);return t==is||t==os||t==rs||t==as}var ss=ls,us=P["__core-js_shared__"],dn=us,$r=function(){var e=/[^.]+$/.exec(dn&&dn.keys&&dn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cs(e){return!!$r&&$r in e}var ds=cs,gs=Function.prototype,ps=gs.toString;function fs(e){if(e!=null){try{return ps.call(e)}catch{}try{return e+""}catch{}}return""}var R=fs,ms=/[\\^$.*+?()[\]{}|]/g,ys=/^\[object .+?Constructor\]$/,bs=Function.prototype,hs=Object.prototype,vs=bs.toString,ws=hs.hasOwnProperty,ks=RegExp("^"+vs.call(ws).replace(ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Cs(e){if(!Hr(e)||ds(e))return!1;var t=ss(e)?ks:ys;return t.test(R(e))}var Ms=Cs;function xs(e,t){return e?.[t]}var Is=xs;function As(e,t){var r=Is(e,t);return Ms(r)?r:void 0}var X=As,Es=X(P,"WeakMap"),fn=Es;function Ss(e,t){return e===t||e!==e&&t!==t}var js=Ss,Ls=9007199254740991;function Ts(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ls}var $s=Ts,kk=Object.prototype,Ns="[object Arguments]";function Os(e){return vn(e)&&qe(e)==Ns}var Nr=Os,Yr=Object.prototype,Ds=Yr.hasOwnProperty,_s=Yr.propertyIsEnumerable,Ck=Nr(function(){return arguments}())?Nr:function(e){return vn(e)&&Ds.call(e,"callee")&&!_s.call(e,"callee")},Zr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Or=Zr&&typeof module=="object"&&module&&!module.nodeType&&module,zs=Or&&Or.exports===Zr,Dr=zs?P.Buffer:void 0,Mk=Dr?Dr.isBuffer:void 0,Ps="[object Arguments]",Us="[object Array]",Vs="[object Boolean]",Bs="[object Date]",Fs="[object Error]",Gs="[object Function]",Rs="[object Map]",qs="[object Number]",Qs="[object Object]",Hs="[object RegExp]",Ys="[object Set]",Zs="[object String]",Ws="[object WeakMap]",Ks="[object ArrayBuffer]",Js="[object DataView]",Xs="[object Float32Array]",eu="[object Float64Array]",tu="[object Int8Array]",nu="[object Int16Array]",ru="[object Int32Array]",iu="[object Uint8Array]",ou="[object Uint8ClampedArray]",au="[object Uint16Array]",lu="[object Uint32Array]",A={};A[Xs]=A[eu]=A[tu]=A[nu]=A[ru]=A[iu]=A[ou]=A[au]=A[lu]=!0;A[Ps]=A[Us]=A[Ks]=A[Vs]=A[Js]=A[Bs]=A[Fs]=A[Gs]=A[Rs]=A[qs]=A[Qs]=A[Hs]=A[Ys]=A[Zs]=A[Ws]=!1;function su(e){return vn(e)&&$s(e.length)&&!!A[qe(e)]}var uu=su;function cu(e){return function(t){return e(t)}}var du=cu,Wr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fe=Wr&&typeof module=="object"&&module&&!module.nodeType&&module,gu=Fe&&Fe.exports===Wr,gn=gu&&qr.process,pu=function(){try{var e=Fe&&Fe.require&&Fe.require("util").types;return e||gn&&gn.binding&&gn.binding("util")}catch{}}(),_r=pu,zr=_r&&_r.isTypedArray,xk=zr?du(zr):uu,fu=Object.prototype,Ik=fu.hasOwnProperty;function mu(e,t){return function(r){return e(t(r))}}var yu=mu,Ak=yu(Object.keys,Object),bu=Object.prototype,Ek=bu.hasOwnProperty,hu=X(Object,"create"),Ge=hu;function vu(){this.__data__=Ge?Ge(null):{},this.size=0}var wu=vu;function ku(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Cu=ku,Mu="__lodash_hash_undefined__",xu=Object.prototype,Iu=xu.hasOwnProperty;function Au(e){var t=this.__data__;if(Ge){var r=t[e];return r===Mu?void 0:r}return Iu.call(t,e)?t[e]:void 0}var Eu=Au,Su=Object.prototype,ju=Su.hasOwnProperty;function Lu(e){var t=this.__data__;return Ge?t[e]!==void 0:ju.call(t,e)}var Tu=Lu,$u="__lodash_hash_undefined__";function Nu(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ge&&t===void 0?$u:t,this}var Ou=Nu;function ee(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ee.prototype.clear=wu;ee.prototype.delete=Cu;ee.prototype.get=Eu;ee.prototype.has=Tu;ee.prototype.set=Ou;var Pr=ee;function Du(){this.__data__=[],this.size=0}var _u=Du;function zu(e,t){for(var r=e.length;r--;)if(js(e[r][0],t))return r;return-1}var zt=zu,Pu=Array.prototype,Uu=Pu.splice;function Vu(e){var t=this.__data__,r=zt(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Uu.call(t,r,1),--this.size,!0}var Bu=Vu;function Fu(e){var t=this.__data__,r=zt(t,e);return r<0?void 0:t[r][1]}var Gu=Fu;function Ru(e){return zt(this.__data__,e)>-1}var qu=Ru;function Qu(e,t){var r=this.__data__,n=zt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Hu=Qu;function te(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}te.prototype.clear=_u;te.prototype.delete=Bu;te.prototype.get=Gu;te.prototype.has=qu;te.prototype.set=Hu;var Pt=te,Yu=X(P,"Map"),Re=Yu;function Zu(){this.size=0,this.__data__={hash:new Pr,map:new(Re||Pt),string:new Pr}}var Wu=Zu;function Ku(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ju=Ku;function Xu(e,t){var r=e.__data__;return Ju(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ut=Xu;function ec(e){var t=Ut(this,e).delete(e);return this.size-=t?1:0,t}var tc=ec;function nc(e){return Ut(this,e).get(e)}var rc=nc;function ic(e){return Ut(this,e).has(e)}var oc=ic;function ac(e,t){var r=Ut(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var lc=ac;function ne(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ne.prototype.clear=Wu;ne.prototype.delete=tc;ne.prototype.get=rc;ne.prototype.has=oc;ne.prototype.set=lc;var Kr=ne;function sc(){this.__data__=new Pt,this.size=0}var uc=sc;function cc(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dc=cc;function gc(e){return this.__data__.get(e)}var pc=gc;function fc(e){return this.__data__.has(e)}var mc=fc,yc=200;function bc(e,t){var r=this.__data__;if(r instanceof Pt){var n=r.__data__;if(!Re||n.length<yc-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kr(n)}return r.set(e,t),this.size=r.size,this}var hc=bc;function Qe(e){var t=this.__data__=new Pt(e);this.size=t.size}Qe.prototype.clear=uc;Qe.prototype.delete=dc;Qe.prototype.get=pc;Qe.prototype.has=mc;Qe.prototype.set=hc;var vc=Object.prototype,Sk=vc.propertyIsEnumerable,wc=X(P,"DataView"),mn=wc,kc=X(P,"Promise"),yn=kc,Cc=X(P,"Set"),bn=Cc,Ur="[object Map]",Mc="[object Object]",Vr="[object Promise]",Br="[object Set]",Fr="[object WeakMap]",Gr="[object DataView]",xc=R(mn),Ic=R(Re),Ac=R(yn),Ec=R(bn),Sc=R(fn),K=qe;(mn&&K(new mn(new ArrayBuffer(1)))!=Gr||Re&&K(new Re)!=Ur||yn&&K(yn.resolve())!=Vr||bn&&K(new bn)!=Br||fn&&K(new fn)!=Fr)&&(K=function(e){var t=qe(e),r=t==Mc?e.constructor:void 0,n=r?R(r):"";if(n)switch(n){case xc:return Gr;case Ic:return Ur;case Ac:return Vr;case Ec:return Br;case Sc:return Fr}return t});var jk=P.Uint8Array,jc="__lodash_hash_undefined__";function Lc(e){return this.__data__.set(e,jc),this}var Tc=Lc;function $c(e){return this.__data__.has(e)}var Nc=$c;function hn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kr;++t<r;)this.add(e[t])}hn.prototype.add=hn.prototype.push=Tc;hn.prototype.has=Nc;var Rr=J?J.prototype:void 0,Lk=Rr?Rr.valueOf:void 0,Oc=Object.prototype,Tk=Oc.hasOwnProperty,Dc=Object.prototype,$k=Dc.hasOwnProperty,Nk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ok=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Dk=new RegExp(/[A-Fa-f0-9]{2}/,"g");var pn="@imgly/plugin-ai-generation",_k=`
2
2
  <svg>
3
3
  <symbol
4
4
  fill="none"
@@ -16,7 +16,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
16
16
  fill="none"
17
17
  xmlns="http://www.w3.org/2000/svg"
18
18
  viewBox="0 0 24 24"
19
- id="${gr}/image"
19
+ id="${pn}/image"
20
20
  >
21
21
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
22
22
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -28,7 +28,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
28
28
  fill="none"
29
29
  xmlns="http://www.w3.org/2000/svg"
30
30
  viewBox="0 0 24 24"
31
- id="${gr}/video"
31
+ id="${pn}/video"
32
32
  >
33
33
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
34
34
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -39,7 +39,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
39
39
  fill="none"
40
40
  xmlns="http://www.w3.org/2000/svg"
41
41
  viewBox="0 0 24 24"
42
- id="${gr}/audio"
42
+ id="${pn}/audio"
43
43
  >
44
44
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
45
45
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -59,8 +59,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
59
59
 
60
60
  </symbol>
61
61
  </svg>
62
- `;function yi(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function Ze(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=yi(e,t.$ref),a={...Ze(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Ze(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>Ze(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Ze(e,t[a],n));return r}return t}function _c(e){return Ze(e,{...e})}function zc(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return n(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return n(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return n(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return n(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return n(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function Pc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Uc(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Uc(e,t){if(t.orderExtensionKeyword==null)return;let n=[];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,a=r.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var bi=Pc,Vc="ly.img.ai",vr="ly.img.ai/temp";async function Bc(e,t){return e.engine.asset.findAllSources().includes(vr)||e.engine.asset.addLocalSource(vr),e.engine.asset.apply(vr,t)}function hi(e){return`${Vc}/${e}`}function Gc(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function Fc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Rc(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function vi(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function Tr(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 oe(e){return e instanceof Error&&e.name==="AbortError"}function wi(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?qc(e,t,n,r,a,o):Ci(e,t,n,r,a,o);case"boolean":return Mi(e,t,n,r,a,o);case"number":case"integer":return xi(e,t,n,r,a,o);case"object":return ki(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Qc(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ki(e,t,n,r,a,o){let i=bi(t.schema??{},r).reduce((l,u)=>{let s=wi(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ci(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=Hc(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function qc(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??vi(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Mi(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function xi(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Qc(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??vi(M),icon:C[M]})}):(f[y]=()=>Ci(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Mi(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>xi(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>ki(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function Hc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Yc=wi,Zc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ii=Zc;function Wc(e,t,n){switch(t){case"image":return Kc(e,n[t]);case"video":return Jc(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Kc(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Ii,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Jc(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Ii,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Xc=Wc;async function e1(e,t,n,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return t1(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return r1(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return n1(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function t1(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function r1(e,t,n){let r=t.width,a=t.height,o=await Rc(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function n1(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var Jn=e1;function Ai(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,r,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function i1(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var Ei=i1,o1=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:l,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;ie(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{ie(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return ie(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ie(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ie(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=ie(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=ie(a,t,o)}return e}var a1=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)}},Si=a1,l1=typeof global=="object"&&global&&global.Object===Object&&global,ji=l1,s1=typeof self=="object"&&self&&self.Object===Object&&self,u1=ji||s1||Function("return this")(),U=u1,c1=U.Symbol,ae=c1,Li=Object.prototype,d1=Li.hasOwnProperty,g1=Li.toString,He=ae?ae.toStringTag:void 0;function p1(e){var t=d1.call(e,He),n=e[He];try{e[He]=void 0;var r=!0}catch{}var a=g1.call(e);return r&&(t?e[He]=n:delete e[He]),a}var f1=p1,m1=Object.prototype,y1=m1.toString;function b1(e){return y1.call(e)}var h1=b1,v1="[object Null]",w1="[object Undefined]",Xn=ae?ae.toStringTag:void 0;function k1(e){return e==null?e===void 0?w1:v1:Xn&&Xn in Object(e)?f1(e):h1(e)}var et=k1;function C1(e){return e!=null&&typeof e=="object"}var Nr=C1,Pk=Array.isArray;function M1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ti=M1,x1="[object AsyncFunction]",I1="[object Function]",A1="[object GeneratorFunction]",E1="[object Proxy]";function S1(e){if(!Ti(e))return!1;var t=et(e);return t==I1||t==A1||t==x1||t==E1}var j1=S1,L1=U["__core-js_shared__"],wr=L1,ei=function(){var e=/[^.]+$/.exec(wr&&wr.keys&&wr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function T1(e){return!!ei&&ei in e}var N1=T1,$1=Function.prototype,O1=$1.toString;function D1(e){if(e!=null){try{return O1.call(e)}catch{}try{return e+""}catch{}}return""}var q=D1,_1=/[\\^$.*+?()[\]{}|]/g,z1=/^\[object .+?Constructor\]$/,P1=Function.prototype,U1=Object.prototype,V1=P1.toString,B1=U1.hasOwnProperty,G1=RegExp("^"+V1.call(B1).replace(_1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function F1(e){if(!Ti(e)||N1(e))return!1;var t=j1(e)?G1:z1;return t.test(q(e))}var R1=F1;function q1(e,t){return e?.[t]}var Q1=q1;function H1(e,t){var n=Q1(e,t);return R1(n)?n:void 0}var le=H1,Y1=le(U,"WeakMap"),Ir=Y1;function Z1(e,t){return e===t||e!==e&&t!==t}var W1=Z1,K1=9007199254740991;function J1(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=K1}var X1=J1,Uk=Object.prototype,ed="[object Arguments]";function td(e){return Nr(e)&&et(e)==ed}var ti=td,Ni=Object.prototype,rd=Ni.hasOwnProperty,nd=Ni.propertyIsEnumerable,Vk=ti(function(){return arguments}())?ti:function(e){return Nr(e)&&rd.call(e,"callee")&&!nd.call(e,"callee")},$i=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=$i&&typeof module=="object"&&module&&!module.nodeType&&module,id=ri&&ri.exports===$i,ni=id?U.Buffer:void 0,Bk=ni?ni.isBuffer:void 0,od="[object Arguments]",ad="[object Array]",ld="[object Boolean]",sd="[object Date]",ud="[object Error]",cd="[object Function]",dd="[object Map]",gd="[object Number]",pd="[object Object]",fd="[object RegExp]",md="[object Set]",yd="[object String]",bd="[object WeakMap]",hd="[object ArrayBuffer]",vd="[object DataView]",wd="[object Float32Array]",kd="[object Float64Array]",Cd="[object Int8Array]",Md="[object Int16Array]",xd="[object Int32Array]",Id="[object Uint8Array]",Ad="[object Uint8ClampedArray]",Ed="[object Uint16Array]",Sd="[object Uint32Array]",E={};E[wd]=E[kd]=E[Cd]=E[Md]=E[xd]=E[Id]=E[Ad]=E[Ed]=E[Sd]=!0;E[od]=E[ad]=E[hd]=E[ld]=E[vd]=E[sd]=E[ud]=E[cd]=E[dd]=E[gd]=E[pd]=E[fd]=E[md]=E[yd]=E[bd]=!1;function jd(e){return Nr(e)&&X1(e.length)&&!!E[et(e)]}var Ld=jd;function Td(e){return function(t){return e(t)}}var Nd=Td,Oi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ke=Oi&&typeof module=="object"&&module&&!module.nodeType&&module,$d=Ke&&Ke.exports===Oi,kr=$d&&ji.process,Od=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||kr&&kr.binding&&kr.binding("util")}catch{}}(),ii=Od,oi=ii&&ii.isTypedArray,Gk=oi?Nd(oi):Ld,Dd=Object.prototype,Fk=Dd.hasOwnProperty;function _d(e,t){return function(n){return e(t(n))}}var zd=_d,Rk=zd(Object.keys,Object),Pd=Object.prototype,qk=Pd.hasOwnProperty,Ud=le(Object,"create"),Je=Ud;function Vd(){this.__data__=Je?Je(null):{},this.size=0}var Bd=Vd;function Gd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Fd=Gd,Rd="__lodash_hash_undefined__",qd=Object.prototype,Qd=qd.hasOwnProperty;function Hd(e){var t=this.__data__;if(Je){var n=t[e];return n===Rd?void 0:n}return Qd.call(t,e)?t[e]:void 0}var Yd=Hd,Zd=Object.prototype,Wd=Zd.hasOwnProperty;function Kd(e){var t=this.__data__;return Je?t[e]!==void 0:Wd.call(t,e)}var Jd=Kd,Xd="__lodash_hash_undefined__";function eg(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Je&&t===void 0?Xd:t,this}var tg=eg;function se(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=Bd;se.prototype.delete=Fd;se.prototype.get=Yd;se.prototype.has=Jd;se.prototype.set=tg;var ai=se;function rg(){this.__data__=[],this.size=0}var ng=rg;function ig(e,t){for(var n=e.length;n--;)if(W1(e[n][0],t))return n;return-1}var Gt=ig,og=Array.prototype,ag=og.splice;function lg(e){var t=this.__data__,n=Gt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():ag.call(t,n,1),--this.size,!0}var sg=lg;function ug(e){var t=this.__data__,n=Gt(t,e);return n<0?void 0:t[n][1]}var cg=ug;function dg(e){return Gt(this.__data__,e)>-1}var gg=dg;function pg(e,t){var n=this.__data__,r=Gt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var fg=pg;function ue(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ue.prototype.clear=ng;ue.prototype.delete=sg;ue.prototype.get=cg;ue.prototype.has=gg;ue.prototype.set=fg;var Ft=ue,mg=le(U,"Map"),Xe=mg;function yg(){this.size=0,this.__data__={hash:new ai,map:new(Xe||Ft),string:new ai}}var bg=yg;function hg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var vg=hg;function wg(e,t){var n=e.__data__;return vg(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Rt=wg;function kg(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t}var Cg=kg;function Mg(e){return Rt(this,e).get(e)}var xg=Mg;function Ig(e){return Rt(this,e).has(e)}var Ag=Ig;function Eg(e,t){var n=Rt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Sg=Eg;function ce(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=bg;ce.prototype.delete=Cg;ce.prototype.get=xg;ce.prototype.has=Ag;ce.prototype.set=Sg;var Di=ce;function jg(){this.__data__=new Ft,this.size=0}var Lg=jg;function Tg(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Ng=Tg;function $g(e){return this.__data__.get(e)}var Og=$g;function Dg(e){return this.__data__.has(e)}var _g=Dg,zg=200;function Pg(e,t){var n=this.__data__;if(n instanceof Ft){var r=n.__data__;if(!Xe||r.length<zg-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Di(r)}return n.set(e,t),this.size=n.size,this}var Ug=Pg;function tt(e){var t=this.__data__=new Ft(e);this.size=t.size}tt.prototype.clear=Lg;tt.prototype.delete=Ng;tt.prototype.get=Og;tt.prototype.has=_g;tt.prototype.set=Ug;var Vg=Object.prototype,Qk=Vg.propertyIsEnumerable,Bg=le(U,"DataView"),Ar=Bg,Gg=le(U,"Promise"),Er=Gg,Fg=le(U,"Set"),Sr=Fg,li="[object Map]",Rg="[object Object]",si="[object Promise]",ui="[object Set]",ci="[object WeakMap]",di="[object DataView]",qg=q(Ar),Qg=q(Xe),Hg=q(Er),Yg=q(Sr),Zg=q(Ir),ne=et;(Ar&&ne(new Ar(new ArrayBuffer(1)))!=di||Xe&&ne(new Xe)!=li||Er&&ne(Er.resolve())!=si||Sr&&ne(new Sr)!=ui||Ir&&ne(new Ir)!=ci)&&(ne=function(e){var t=et(e),n=t==Rg?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case qg:return di;case Qg:return li;case Hg:return si;case Yg:return ui;case Zg:return ci}return t});var Hk=U.Uint8Array,Wg="__lodash_hash_undefined__";function Kg(e){return this.__data__.set(e,Wg),this}var Jg=Kg;function Xg(e){return this.__data__.has(e)}var ep=Xg;function jr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Di;++t<n;)this.add(e[t])}jr.prototype.add=jr.prototype.push=Jg;jr.prototype.has=ep;var gi=ae?ae.prototype:void 0,Yk=gi?gi.valueOf:void 0,tp=Object.prototype,Zk=tp.hasOwnProperty,rp=Object.prototype,Wk=rp.hasOwnProperty,Kk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Jk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Xk=new RegExp(/[A-Fa-f0-9]{2}/,"g");function np(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function _i(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function Lr(e,t){let n=await _i(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function ip(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return _i(r,t)}function op(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await up(2e3),await ap(t,e,n))}async function ap(e,t,n){switch(t.kind){case"image":return lp(e,t,n);case"video":return sp(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function lp(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await ip(l,n),s=await Lr(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
63
- `,"+")}`}}async function sp(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function up(e){return new Promise(t=>{setTimeout(t,e)})}var zi=op;async function cp(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Fc(),v;if(u){if(v=Xc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Bc(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Vt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=Ai([...r.output.middleware??[],o.debug?Ei():void 0,o.dryRun?zi({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(Tr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Vt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Jn(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Vt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Jn(f,e,g,h),Vt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(oe(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Vt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var dp=cp;function gp(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),pp(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Gc(e)}))}function pp(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var We=gp;function Bt(e){return`${e}.generating`}function fp(e){return`${e}.abort`}function mp(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(fp(c),()=>{}),f=l.global(Bt(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await dp(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;yp(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(oe(w))return;We(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function yp(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var Pi=mp;async function bp(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=_c(t.document),l=yi(i,t.inputReference);if(!zc(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=bi(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Yc(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});Pi(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(hi(o),c),c}var hp=bp;async function vp(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Bt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Pi(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(hi(o),l),l}var wp=vp,Cr="@imgly/plugin-ai-generation",kp=`
62
+ `;function yi(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function Ze(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=yi(e,t.$ref),a={...Ze(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Ze(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>Ze(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=Ze(e,t[a],r));return n}return t}function _c(e){return Ze(e,{...e})}function zc(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function Pc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return Uc(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function Uc(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var bi=Pc,Vc="ly.img.ai",wn="ly.img.ai/temp";async function Bc(e,t){return e.engine.asset.findAllSources().includes(wn)||e.engine.asset.addLocalSource(wn),e.engine.asset.apply(wn,t)}function hi(e){return`${Vc}/${e}`}function Fc(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Gc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Rc(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function vi(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function $n(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 oe(e){return e instanceof Error&&e.name==="AbortError"}function wi(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?qc(e,t,r,n,a,o):Ci(e,t,r,n,a,o);case"boolean":return Mi(e,t,r,n,a,o);case"number":case"integer":return xi(e,t,r,n,a,o);case"object":return ki(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Qc(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ki(e,t,r,n,a,o){let i=bi(t.schema??{},n).reduce((l,u)=>{let s=wi(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ci(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=Hc(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function qc(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??vi(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Mi(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function xi(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Qc(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??vi(M),icon:C[M]})}):(f[y]=()=>Ci(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Mi(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>xi(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>ki(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function Hc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Yc=wi,Zc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ii=Zc;function Wc(e,t,r){switch(t){case"image":return Kc(e,r[t]);case"video":return Jc(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Kc(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:Ii,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function Jc(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:Ii,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var Xc=Wc;async function e1(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return t1(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return n1(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return r1(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function t1(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function n1(e,t,r){let n=t.width,a=t.height,o=await Rc(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function r1(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()}}}var Jr=e1;function Ai(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function i1(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Ei=i1,o1=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=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,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 n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},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),n=new Set;ie(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),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=()=>{ie(t,n=>{this.removeBlob(n)}),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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.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 n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),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 ie(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),ie(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ie(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=ie(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=ie(a,t,o)}return e}var a1=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)}},Si=a1,l1=typeof global=="object"&&global&&global.Object===Object&&global,ji=l1,s1=typeof self=="object"&&self&&self.Object===Object&&self,u1=ji||s1||Function("return this")(),U=u1,c1=U.Symbol,ae=c1,Li=Object.prototype,d1=Li.hasOwnProperty,g1=Li.toString,He=ae?ae.toStringTag:void 0;function p1(e){var t=d1.call(e,He),r=e[He];try{e[He]=void 0;var n=!0}catch{}var a=g1.call(e);return n&&(t?e[He]=r:delete e[He]),a}var f1=p1,m1=Object.prototype,y1=m1.toString;function b1(e){return y1.call(e)}var h1=b1,v1="[object Null]",w1="[object Undefined]",Xr=ae?ae.toStringTag:void 0;function k1(e){return e==null?e===void 0?w1:v1:Xr&&Xr in Object(e)?f1(e):h1(e)}var et=k1;function C1(e){return e!=null&&typeof e=="object"}var Nn=C1,Pk=Array.isArray;function M1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ti=M1,x1="[object AsyncFunction]",I1="[object Function]",A1="[object GeneratorFunction]",E1="[object Proxy]";function S1(e){if(!Ti(e))return!1;var t=et(e);return t==I1||t==A1||t==x1||t==E1}var j1=S1,L1=U["__core-js_shared__"],kn=L1,ei=function(){var e=/[^.]+$/.exec(kn&&kn.keys&&kn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function T1(e){return!!ei&&ei in e}var $1=T1,N1=Function.prototype,O1=N1.toString;function D1(e){if(e!=null){try{return O1.call(e)}catch{}try{return e+""}catch{}}return""}var q=D1,_1=/[\\^$.*+?()[\]{}|]/g,z1=/^\[object .+?Constructor\]$/,P1=Function.prototype,U1=Object.prototype,V1=P1.toString,B1=U1.hasOwnProperty,F1=RegExp("^"+V1.call(B1).replace(_1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function G1(e){if(!Ti(e)||$1(e))return!1;var t=j1(e)?F1:z1;return t.test(q(e))}var R1=G1;function q1(e,t){return e?.[t]}var Q1=q1;function H1(e,t){var r=Q1(e,t);return R1(r)?r:void 0}var le=H1,Y1=le(U,"WeakMap"),An=Y1;function Z1(e,t){return e===t||e!==e&&t!==t}var W1=Z1,K1=9007199254740991;function J1(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=K1}var X1=J1,Uk=Object.prototype,ed="[object Arguments]";function td(e){return Nn(e)&&et(e)==ed}var ti=td,$i=Object.prototype,nd=$i.hasOwnProperty,rd=$i.propertyIsEnumerable,Vk=ti(function(){return arguments}())?ti:function(e){return Nn(e)&&nd.call(e,"callee")&&!rd.call(e,"callee")},Ni=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ni=Ni&&typeof module=="object"&&module&&!module.nodeType&&module,id=ni&&ni.exports===Ni,ri=id?U.Buffer:void 0,Bk=ri?ri.isBuffer:void 0,od="[object Arguments]",ad="[object Array]",ld="[object Boolean]",sd="[object Date]",ud="[object Error]",cd="[object Function]",dd="[object Map]",gd="[object Number]",pd="[object Object]",fd="[object RegExp]",md="[object Set]",yd="[object String]",bd="[object WeakMap]",hd="[object ArrayBuffer]",vd="[object DataView]",wd="[object Float32Array]",kd="[object Float64Array]",Cd="[object Int8Array]",Md="[object Int16Array]",xd="[object Int32Array]",Id="[object Uint8Array]",Ad="[object Uint8ClampedArray]",Ed="[object Uint16Array]",Sd="[object Uint32Array]",E={};E[wd]=E[kd]=E[Cd]=E[Md]=E[xd]=E[Id]=E[Ad]=E[Ed]=E[Sd]=!0;E[od]=E[ad]=E[hd]=E[ld]=E[vd]=E[sd]=E[ud]=E[cd]=E[dd]=E[gd]=E[pd]=E[fd]=E[md]=E[yd]=E[bd]=!1;function jd(e){return Nn(e)&&X1(e.length)&&!!E[et(e)]}var Ld=jd;function Td(e){return function(t){return e(t)}}var $d=Td,Oi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ke=Oi&&typeof module=="object"&&module&&!module.nodeType&&module,Nd=Ke&&Ke.exports===Oi,Cn=Nd&&ji.process,Od=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||Cn&&Cn.binding&&Cn.binding("util")}catch{}}(),ii=Od,oi=ii&&ii.isTypedArray,Fk=oi?$d(oi):Ld,Dd=Object.prototype,Gk=Dd.hasOwnProperty;function _d(e,t){return function(r){return e(t(r))}}var zd=_d,Rk=zd(Object.keys,Object),Pd=Object.prototype,qk=Pd.hasOwnProperty,Ud=le(Object,"create"),Je=Ud;function Vd(){this.__data__=Je?Je(null):{},this.size=0}var Bd=Vd;function Fd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Gd=Fd,Rd="__lodash_hash_undefined__",qd=Object.prototype,Qd=qd.hasOwnProperty;function Hd(e){var t=this.__data__;if(Je){var r=t[e];return r===Rd?void 0:r}return Qd.call(t,e)?t[e]:void 0}var Yd=Hd,Zd=Object.prototype,Wd=Zd.hasOwnProperty;function Kd(e){var t=this.__data__;return Je?t[e]!==void 0:Wd.call(t,e)}var Jd=Kd,Xd="__lodash_hash_undefined__";function eg(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Je&&t===void 0?Xd:t,this}var tg=eg;function se(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}se.prototype.clear=Bd;se.prototype.delete=Gd;se.prototype.get=Yd;se.prototype.has=Jd;se.prototype.set=tg;var ai=se;function ng(){this.__data__=[],this.size=0}var rg=ng;function ig(e,t){for(var r=e.length;r--;)if(W1(e[r][0],t))return r;return-1}var Ft=ig,og=Array.prototype,ag=og.splice;function lg(e){var t=this.__data__,r=Ft(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ag.call(t,r,1),--this.size,!0}var sg=lg;function ug(e){var t=this.__data__,r=Ft(t,e);return r<0?void 0:t[r][1]}var cg=ug;function dg(e){return Ft(this.__data__,e)>-1}var gg=dg;function pg(e,t){var r=this.__data__,n=Ft(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var fg=pg;function ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ue.prototype.clear=rg;ue.prototype.delete=sg;ue.prototype.get=cg;ue.prototype.has=gg;ue.prototype.set=fg;var Gt=ue,mg=le(U,"Map"),Xe=mg;function yg(){this.size=0,this.__data__={hash:new ai,map:new(Xe||Gt),string:new ai}}var bg=yg;function hg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var vg=hg;function wg(e,t){var r=e.__data__;return vg(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rt=wg;function kg(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t}var Cg=kg;function Mg(e){return Rt(this,e).get(e)}var xg=Mg;function Ig(e){return Rt(this,e).has(e)}var Ag=Ig;function Eg(e,t){var r=Rt(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var Sg=Eg;function ce(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ce.prototype.clear=bg;ce.prototype.delete=Cg;ce.prototype.get=xg;ce.prototype.has=Ag;ce.prototype.set=Sg;var Di=ce;function jg(){this.__data__=new Gt,this.size=0}var Lg=jg;function Tg(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $g=Tg;function Ng(e){return this.__data__.get(e)}var Og=Ng;function Dg(e){return this.__data__.has(e)}var _g=Dg,zg=200;function Pg(e,t){var r=this.__data__;if(r instanceof Gt){var n=r.__data__;if(!Xe||n.length<zg-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Di(n)}return r.set(e,t),this.size=r.size,this}var Ug=Pg;function tt(e){var t=this.__data__=new Gt(e);this.size=t.size}tt.prototype.clear=Lg;tt.prototype.delete=$g;tt.prototype.get=Og;tt.prototype.has=_g;tt.prototype.set=Ug;var Vg=Object.prototype,Qk=Vg.propertyIsEnumerable,Bg=le(U,"DataView"),En=Bg,Fg=le(U,"Promise"),Sn=Fg,Gg=le(U,"Set"),jn=Gg,li="[object Map]",Rg="[object Object]",si="[object Promise]",ui="[object Set]",ci="[object WeakMap]",di="[object DataView]",qg=q(En),Qg=q(Xe),Hg=q(Sn),Yg=q(jn),Zg=q(An),re=et;(En&&re(new En(new ArrayBuffer(1)))!=di||Xe&&re(new Xe)!=li||Sn&&re(Sn.resolve())!=si||jn&&re(new jn)!=ui||An&&re(new An)!=ci)&&(re=function(e){var t=et(e),r=t==Rg?e.constructor:void 0,n=r?q(r):"";if(n)switch(n){case qg:return di;case Qg:return li;case Hg:return si;case Yg:return ui;case Zg:return ci}return t});var Hk=U.Uint8Array,Wg="__lodash_hash_undefined__";function Kg(e){return this.__data__.set(e,Wg),this}var Jg=Kg;function Xg(e){return this.__data__.has(e)}var ep=Xg;function Ln(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Di;++t<r;)this.add(e[t])}Ln.prototype.add=Ln.prototype.push=Jg;Ln.prototype.has=ep;var gi=ae?ae.prototype:void 0,Yk=gi?gi.valueOf:void 0,tp=Object.prototype,Zk=tp.hasOwnProperty,np=Object.prototype,Wk=np.hasOwnProperty,Kk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Jk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Xk=new RegExp(/[A-Fa-f0-9]{2}/,"g");function rp(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function _i(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Tn(e,t){let r=await _i(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function ip(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return _i(n,t)}function op(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await up(2e3),await ap(t,e,r))}async function ap(e,t,r){switch(t.kind){case"image":return lp(e,t,r);case"video":return sp(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function lp(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await ip(l,r),s=await Tn(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
63
+ `,"+")}`}}async function sp(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function up(e){return new Promise(t=>{setTimeout(t,e)})}var zi=op;async function cp(e,t,r,n,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await r(d.input),f=Gc(),v;if(u){if(v=Xc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Bc(l,v),c!=null&&n.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Vt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=Ai([...n.output.middleware??[],o.debug?Ei():void 0,o.dryRun?zi({kind:n.kind,blockInputs:g}):void 0]),{result:h}=await k(n.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if($n(h))throw new Error("Streaming generation is not supported yet from a panel");if(Vt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Jr(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Vt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Jr(f,e,g,h),Vt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(oe(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Vt(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dp=cp;function gp(e,t,r){let{cesdk:n,provider:a,getInput:o}=t;r.onError!=null&&typeof r.onError=="function"?r.onError(e):(console.error("Generation failed:",e),pp(n,a.output.notification,()=>({input:o?.().input,error:e}))||n.ui.showNotification({type:"error",message:Fc(e)}))}function pp(e,t,r){let n=t?.error;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.failed",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var We=gp;function Bt(e){return`${e}.generating`}function fp(e){return`${e}.abort`}function mp(e,t,r,n,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(fp(c),()=>{}),f=l.global(Bt(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=r();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await dp(t.kind,r,n,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;yp(u,C,()=>({input:r().input,output:w.output}))}catch(w){if(oe(w))return;We(w,{cesdk:u,provider:t,getInput:r},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function yp(e,t,r){let n=t?.success;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.success",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:n.duration}),!0}var Pi=mp;async function bp(e,t,r,n){let{cesdk:a}=r,{id:o}=e;n.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=_c(t.document),l=yi(i,t.inputReference);if(!zc(l,n.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=bi(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Yc(d,p,e,t,r,n);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});Pi(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...r,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},n)};return a.ui.registerPanel(hi(o),c),c}var hp=bp;async function vp(e,t,r,n){let{cesdk:a}=r,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Bt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Pi(u,e,d,g,{...r,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},n),d};return a.ui.registerPanel(hi(o),l),l}var wp=vp,Mn="@imgly/plugin-ai-generation",kp=`
64
64
  <svg>
65
65
  <symbol
66
66
  fill="none"
@@ -78,7 +78,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
78
78
  fill="none"
79
79
  xmlns="http://www.w3.org/2000/svg"
80
80
  viewBox="0 0 24 24"
81
- id="${Cr}/image"
81
+ id="${Mn}/image"
82
82
  >
83
83
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
84
84
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -90,7 +90,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
90
90
  fill="none"
91
91
  xmlns="http://www.w3.org/2000/svg"
92
92
  viewBox="0 0 24 24"
93
- id="${Cr}/video"
93
+ id="${Mn}/video"
94
94
  >
95
95
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
96
96
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -101,7 +101,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
101
101
  fill="none"
102
102
  xmlns="http://www.w3.org/2000/svg"
103
103
  viewBox="0 0 24 24"
104
- id="${Cr}/audio"
104
+ id="${Mn}/audio"
105
105
  >
106
106
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
107
107
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -121,7 +121,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
121
121
 
122
122
  </symbol>
123
123
  </svg>
124
- `,Cp=kp,pi="ly.img.ai.quickAction.order",Ye="ly.img.ai.quickAction.actions";function Mp(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${pi}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${pi}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ye}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{})[n]}}var xp=Mp,Mr="ly.img.ai.inference.editMode",Ui="ly.img.ai.inference.metadata";function Vi(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Ip(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function Ap({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var Ep=Ap;function Sp({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var jp=Sp;function Lp({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=Tp(r.engine,o,e),await a(n,r)}catch(l){throw oe(l)&&i(),l}finally{t&&i()}}}function Tp(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Np=Lp;function $p(e,t){switch(t.kind){case"text":return Op(e,t);case"image":return Dp(e,t);case"video":return _p(e,t);case"audio":return zp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Op(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(Tr(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Dp(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await Lr(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(Tr(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),w=await Pp(n,m,y),C=await Lr(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function _p(e,t){throw new Error("Function not implemented.")}async function zp(e,t){throw new Error("Function not implemented.")}async function Pp(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${np(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Up=$p;function Vp({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Bp(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw oe(u)&&l(),u}finally{t&&l()}}}function Bp(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Gp=Vp;async function Fp(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:Mr});let s=new Si(n.engine,Ui);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ai([...o.output.middleware??[],t.debug?Ei():void 0,jp({}),...i.confirmation?[i.lockDuringConfirmation?Np({editMode:Mr}):Gp({editMode:Mr}),i.confirmation&&Ep({})]:[],t.dryRun?zi({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await Up(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var fi=Fp;function Rp(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new Si(n.engine,Ui),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(Vi({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=Ip(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{We(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await fi({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw oe(M)||We(M,{cesdk:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{We(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await fi({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw oe(C)||We(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var qp=Rp;async function Qp(e,t,n){await e.initialize?.(t);let r=await Yp(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Hp(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Cp),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Zp(e,o,n)}}function Hp(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Yp(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new o1(r,e)),r}return n}}async function Zp(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Wp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Kp(e,e.input.quickActions,t,n)),r}async function Wp(e,t,n,r){switch(t.type){case"custom":return wp(e,t,n,r);case"schema":return hp(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Kp(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=xp(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Vi({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=qp({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var mi=Qp;function Jp(e){let{cesdk:t,panelId:n}=e;n.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${n}" was provided.`);let r=`${n}.dock`;t.ui.registerComponent(r,({builder:a})=>{let o=t.ui.isPanelOpen(n);a.Button(`${n}.dock.button`,{label:`${n}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(n):t.ui.openPanel(n)}})})}var Xp=Jp,e2="@imgly/plugin-ai-image-generation",t2=`
124
+ `,Cp=kp,pi="ly.img.ai.quickAction.order",Ye="ly.img.ai.quickAction.actions";function Mp(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${pi}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${pi}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ye}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ye}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${Ye}.${t}`,{})[r]}}var xp=Mp,xn="ly.img.ai.inference.editMode",Ui="ly.img.ai.inference.metadata";function Vi(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Ip(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,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function Ap({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var Ep=Ap;function Sp({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var jp=Sp;function Lp({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=Tp(n.engine,o,e),await a(r,n)}catch(l){throw oe(l)&&i(),l}finally{t&&i()}}}function Tp(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var $p=Lp;function Np(e,t){switch(t.kind){case"text":return Op(e,t);case"image":return Dp(e,t);case"video":return _p(e,t);case"audio":return zp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Op(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if($n(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Dp(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await Tn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),k=r.engine.block.getCropTranslationX(o),h=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),b=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,k),r.engine.block.setCropTranslationY(o,h),r.engine.block.setCropRotation(o,p)};if($n(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),w=await Pp(r,m,y),C=await Tn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,N=w;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",N):r.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?r.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if(N==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",N)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function _p(e,t){throw new Error("Function not implemented.")}async function zp(e,t){throw new Error("Function not implemented.")}async function Pp(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${rp(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Up=Np;function Vp({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Bp(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw oe(u)&&l(),u}finally{t&&l()}}}function Bp(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Fp=Vp;async function Gp(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:xn});let s=new Si(r.engine,Ui);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=Ai([...o.output.middleware??[],t.debug?Ei():void 0,jp({}),...i.confirmation?[i.lockDuringConfirmation?$p({editMode:xn}):Fp({editMode:xn}),i.confirmation&&Ep({})]:[],t.dryRun?zi({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:k}=await Up(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var fi=Gp;function Rp(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new Si(r.engine,Ui),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=n.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=n.getQuickAction(b);if(m==null||!r.feature.isEnabled(Vi({quickActionId:b,quickActionMenuId:n.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=Ip(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=n.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{We(w,{cesdk:r,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await fi({input:w,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw oe(M)||We(M,{cesdk:r,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{We(y,{cesdk:r,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await fi({input:y,quickAction:m,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw oe(C)||We(C,{cesdk:r,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var qp=Rp;async function Qp(e,t,r){await e.initialize?.(t);let n=await Yp(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Hp(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Cp),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Zp(e,o,r)}}function Hp(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Yp(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new o1(n,e)),n}return r}}async function Zp(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Wp(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Kp(e,e.input.quickActions,t,r)),n}async function Wp(e,t,r,n){switch(t.type){case"custom":return wp(e,t,r,n);case"schema":return hp(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Kp(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=xp(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Vi({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=qp({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var mi=Qp;function Jp(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 n=`${r}.dock`;t.ui.registerComponent(n,({builder:a})=>{let o=t.ui.isPanelOpen(r);a.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Xp=Jp,e2="@imgly/plugin-ai-image-generation",t2=`
125
125
  <svg>
126
126
  <symbol
127
127
  fill="none"
@@ -135,8 +135,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
135
135
 
136
136
  </symbol>
137
137
  </svg>
138
- `,r2=t2,n2="@imgly/plugin-ai-image-generation-web",_="ly.img.ai/image-generation",xr="ly.img.ai.image-generation.fromType";function i2(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.ui.addIconSet(e2,r2),t.setTranslations({en:{[`panel.${_}`]:"Image Generation","ly.img.ai.image-generation.success":"Image Generation Successful","ly.img.ai.image-generation.success.action":"Show"}});let r=e?.text2image,a=e?.image2image,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(_),g=t.ui.experimental.getGlobalStateValue(xr,"fromText")===c;return!d||!g},message:"ly.img.ai.image-generation.success",action:{label:"ly.img.ai.image-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(xr,c),t.ui.openPanel(_)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await mi(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await mi(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(_,c=>{let{builder:d,experimental:g}=c,f=g.global(xr,"fromText");switch(d.Section(`${_}.fromType.section`,{children:()=>{d.ButtonGroup(`${_}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${_}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Bt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${_}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Bt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(_,c),t.i18n.setTranslations({en:{[`${_}.dock.label`]:"AI Image"}}),Xp({cesdk:t,panelId:_})}}}}var o2=i2,a2=e=>({name:n2,version:"0.1.4",...o2(e)}),Bi=a2;function ao(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function it(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=ao(e,t.$ref),a={...it(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=it(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>it(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=it(e,t[a],n));return r}return t}function l2(e){return it(e,{...e})}function s2(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return n(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return n(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return n(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return n(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return n(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function u2(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return c2(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function c2(e,t){if(t.orderExtensionKeyword==null)return;let n=[];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,a=r.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var lo=u2,d2="ly.img.ai",$r="ly.img.ai/temp";async function g2(e,t){return e.engine.asset.findAllSources().includes($r)||e.engine.asset.addLocalSource($r),e.engine.asset.apply($r,t)}function so(e){return`${d2}/${e}`}function p2(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function f2(){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 m2(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function uo(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function qr(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 pe(e){return e instanceof Error&&e.name==="AbortError"}function co(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?y2(e,t,n,r,a,o):po(e,t,n,r,a,o);case"boolean":return fo(e,t,n,r,a,o);case"number":case"integer":return mo(e,t,n,r,a,o);case"object":return go(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return b2(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function go(e,t,n,r,a,o){let i=lo(t.schema??{},r).reduce((l,u)=>{let s=co(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function po(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=h2(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function y2(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??uo(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function fo(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function mo(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function b2(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??uo(M),icon:C[M]})}):(f[y]=()=>po(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>fo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>mo(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>go(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function h2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var v2=co,w2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yo=w2;function k2(e,t,n){switch(t){case"image":return C2(e,n[t]);case"video":return M2(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function C2(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:yo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function M2(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:yo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var x2=k2;async function I2(e,t,n,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return A2(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return E2(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return S2(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function A2(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function E2(e,t,n){let r=t.width,a=t.height,o=await m2(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function S2(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var Gi=I2;function bo(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,r,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function j2(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var ho=j2,L2=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:l,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;ge(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{ge(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return ge(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ge(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ge(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=ge(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=ge(a,t,o)}return e}var T2=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)}},vo=T2,N2=typeof global=="object"&&global&&global.Object===Object&&global,wo=N2,$2=typeof self=="object"&&self&&self.Object===Object&&self,O2=wo||$2||Function("return this")(),V=O2,D2=V.Symbol,fe=D2,ko=Object.prototype,_2=ko.hasOwnProperty,z2=ko.toString,rt=fe?fe.toStringTag:void 0;function P2(e){var t=_2.call(e,rt),n=e[rt];try{e[rt]=void 0;var r=!0}catch{}var a=z2.call(e);return r&&(t?e[rt]=n:delete e[rt]),a}var U2=P2,V2=Object.prototype,B2=V2.toString;function G2(e){return B2.call(e)}var F2=G2,R2="[object Null]",q2="[object Undefined]",Fi=fe?fe.toStringTag:void 0;function Q2(e){return e==null?e===void 0?q2:R2:Fi&&Fi in Object(e)?U2(e):F2(e)}var ut=Q2;function H2(e){return e!=null&&typeof e=="object"}var Qr=H2,nC=Array.isArray;function Y2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Co=Y2,Z2="[object AsyncFunction]",W2="[object Function]",K2="[object GeneratorFunction]",J2="[object Proxy]";function X2(e){if(!Co(e))return!1;var t=ut(e);return t==W2||t==K2||t==Z2||t==J2}var ef=X2,tf=V["__core-js_shared__"],Or=tf,Ri=function(){var e=/[^.]+$/.exec(Or&&Or.keys&&Or.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rf(e){return!!Ri&&Ri in e}var nf=rf,of=Function.prototype,af=of.toString;function lf(e){if(e!=null){try{return af.call(e)}catch{}try{return e+""}catch{}}return""}var Q=lf,sf=/[\\^$.*+?()[\]{}|]/g,uf=/^\[object .+?Constructor\]$/,cf=Function.prototype,df=Object.prototype,gf=cf.toString,pf=df.hasOwnProperty,ff=RegExp("^"+gf.call(pf).replace(sf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mf(e){if(!Co(e)||nf(e))return!1;var t=ef(e)?ff:uf;return t.test(Q(e))}var yf=mf;function bf(e,t){return e?.[t]}var hf=bf;function vf(e,t){var n=hf(e,t);return yf(n)?n:void 0}var me=vf,wf=me(V,"WeakMap"),Ur=wf;function kf(e,t){return e===t||e!==e&&t!==t}var Cf=kf,Mf=9007199254740991;function xf(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Mf}var If=xf,iC=Object.prototype,Af="[object Arguments]";function Ef(e){return Qr(e)&&ut(e)==Af}var qi=Ef,Mo=Object.prototype,Sf=Mo.hasOwnProperty,jf=Mo.propertyIsEnumerable,oC=qi(function(){return arguments}())?qi:function(e){return Qr(e)&&Sf.call(e,"callee")&&!jf.call(e,"callee")},xo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qi=xo&&typeof module=="object"&&module&&!module.nodeType&&module,Lf=Qi&&Qi.exports===xo,Hi=Lf?V.Buffer:void 0,aC=Hi?Hi.isBuffer:void 0,Tf="[object Arguments]",Nf="[object Array]",$f="[object Boolean]",Of="[object Date]",Df="[object Error]",_f="[object Function]",zf="[object Map]",Pf="[object Number]",Uf="[object Object]",Vf="[object RegExp]",Bf="[object Set]",Gf="[object String]",Ff="[object WeakMap]",Rf="[object ArrayBuffer]",qf="[object DataView]",Qf="[object Float32Array]",Hf="[object Float64Array]",Yf="[object Int8Array]",Zf="[object Int16Array]",Wf="[object Int32Array]",Kf="[object Uint8Array]",Jf="[object Uint8ClampedArray]",Xf="[object Uint16Array]",em="[object Uint32Array]",S={};S[Qf]=S[Hf]=S[Yf]=S[Zf]=S[Wf]=S[Kf]=S[Jf]=S[Xf]=S[em]=!0;S[Tf]=S[Nf]=S[Rf]=S[$f]=S[qf]=S[Of]=S[Df]=S[_f]=S[zf]=S[Pf]=S[Uf]=S[Vf]=S[Bf]=S[Gf]=S[Ff]=!1;function tm(e){return Qr(e)&&If(e.length)&&!!S[ut(e)]}var rm=tm;function nm(e){return function(t){return e(t)}}var im=nm,Io=typeof exports=="object"&&exports&&!exports.nodeType&&exports,at=Io&&typeof module=="object"&&module&&!module.nodeType&&module,om=at&&at.exports===Io,Dr=om&&wo.process,am=function(){try{var e=at&&at.require&&at.require("util").types;return e||Dr&&Dr.binding&&Dr.binding("util")}catch{}}(),Yi=am,Zi=Yi&&Yi.isTypedArray,lC=Zi?im(Zi):rm,lm=Object.prototype,sC=lm.hasOwnProperty;function sm(e,t){return function(n){return e(t(n))}}var um=sm,uC=um(Object.keys,Object),cm=Object.prototype,cC=cm.hasOwnProperty,dm=me(Object,"create"),lt=dm;function gm(){this.__data__=lt?lt(null):{},this.size=0}var pm=gm;function fm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mm=fm,ym="__lodash_hash_undefined__",bm=Object.prototype,hm=bm.hasOwnProperty;function vm(e){var t=this.__data__;if(lt){var n=t[e];return n===ym?void 0:n}return hm.call(t,e)?t[e]:void 0}var wm=vm,km=Object.prototype,Cm=km.hasOwnProperty;function Mm(e){var t=this.__data__;return lt?t[e]!==void 0:Cm.call(t,e)}var xm=Mm,Im="__lodash_hash_undefined__";function Am(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=lt&&t===void 0?Im:t,this}var Em=Am;function ye(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ye.prototype.clear=pm;ye.prototype.delete=mm;ye.prototype.get=wm;ye.prototype.has=xm;ye.prototype.set=Em;var Wi=ye;function Sm(){this.__data__=[],this.size=0}var jm=Sm;function Lm(e,t){for(var n=e.length;n--;)if(Cf(e[n][0],t))return n;return-1}var Ht=Lm,Tm=Array.prototype,Nm=Tm.splice;function $m(e){var t=this.__data__,n=Ht(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Nm.call(t,n,1),--this.size,!0}var Om=$m;function Dm(e){var t=this.__data__,n=Ht(t,e);return n<0?void 0:t[n][1]}var _m=Dm;function zm(e){return Ht(this.__data__,e)>-1}var Pm=zm;function Um(e,t){var n=this.__data__,r=Ht(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Vm=Um;function be(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}be.prototype.clear=jm;be.prototype.delete=Om;be.prototype.get=_m;be.prototype.has=Pm;be.prototype.set=Vm;var Yt=be,Bm=me(V,"Map"),st=Bm;function Gm(){this.size=0,this.__data__={hash:new Wi,map:new(st||Yt),string:new Wi}}var Fm=Gm;function Rm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qm=Rm;function Qm(e,t){var n=e.__data__;return qm(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Zt=Qm;function Hm(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Ym=Hm;function Zm(e){return Zt(this,e).get(e)}var Wm=Zm;function Km(e){return Zt(this,e).has(e)}var Jm=Km;function Xm(e,t){var n=Zt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var e0=Xm;function he(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}he.prototype.clear=Fm;he.prototype.delete=Ym;he.prototype.get=Wm;he.prototype.has=Jm;he.prototype.set=e0;var Ao=he;function t0(){this.__data__=new Yt,this.size=0}var r0=t0;function n0(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var i0=n0;function o0(e){return this.__data__.get(e)}var a0=o0;function l0(e){return this.__data__.has(e)}var s0=l0,u0=200;function c0(e,t){var n=this.__data__;if(n instanceof Yt){var r=n.__data__;if(!st||r.length<u0-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ao(r)}return n.set(e,t),this.size=n.size,this}var d0=c0;function ct(e){var t=this.__data__=new Yt(e);this.size=t.size}ct.prototype.clear=r0;ct.prototype.delete=i0;ct.prototype.get=a0;ct.prototype.has=s0;ct.prototype.set=d0;var g0=Object.prototype,dC=g0.propertyIsEnumerable,p0=me(V,"DataView"),Vr=p0,f0=me(V,"Promise"),Br=f0,m0=me(V,"Set"),Gr=m0,Ki="[object Map]",y0="[object Object]",Ji="[object Promise]",Xi="[object Set]",eo="[object WeakMap]",to="[object DataView]",b0=Q(Vr),h0=Q(st),v0=Q(Br),w0=Q(Gr),k0=Q(Ur),de=ut;(Vr&&de(new Vr(new ArrayBuffer(1)))!=to||st&&de(new st)!=Ki||Br&&de(Br.resolve())!=Ji||Gr&&de(new Gr)!=Xi||Ur&&de(new Ur)!=eo)&&(de=function(e){var t=ut(e),n=t==y0?e.constructor:void 0,r=n?Q(n):"";if(r)switch(r){case b0:return to;case h0:return Ki;case v0:return Ji;case w0:return Xi;case k0:return eo}return t});var gC=V.Uint8Array,C0="__lodash_hash_undefined__";function M0(e){return this.__data__.set(e,C0),this}var x0=M0;function I0(e){return this.__data__.has(e)}var A0=I0;function Fr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Ao;++t<n;)this.add(e[t])}Fr.prototype.add=Fr.prototype.push=x0;Fr.prototype.has=A0;var ro=fe?fe.prototype:void 0,pC=ro?ro.valueOf:void 0,E0=Object.prototype,fC=E0.hasOwnProperty,S0=Object.prototype,mC=S0.hasOwnProperty,yC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function j0(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Eo(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function Rr(e,t){let n=await Eo(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function L0(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Eo(r,t)}function T0(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await D0(2e3),await N0(t,e,n))}async function N0(e,t,n){switch(t.kind){case"image":return $0(e,t,n);case"video":return O0(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function $0(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await L0(l,n),s=await Rr(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
139
- `,"+")}`}}async function O0(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function D0(e){return new Promise(t=>{setTimeout(t,e)})}var So=T0;async function _0(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=f2(),v;if(u){if(v=x2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await g2(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(qt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=bo([...r.output.middleware??[],o.debug?ho():void 0,o.dryRun?So({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(qr(h))throw new Error("Streaming generation is not supported yet from a panel");if(qt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Gi(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),qt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Gi(f,e,g,h),qt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(pe(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function qt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var z0=_0;function P0(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),U0(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:p2(e)}))}function U0(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var ot=P0;function Qt(e){return`${e}.generating`}function V0(e){return`${e}.abort`}function B0(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(V0(c),()=>{}),f=l.global(Qt(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await z0(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;G0(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(pe(w))return;ot(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function G0(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var jo=B0;async function F0(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=l2(t.document),l=ao(i,t.inputReference);if(!s2(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=lo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=v2(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});jo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(so(o),c),c}var R0=F0;async function q0(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Qt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return jo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(so(o),l),l}var Q0=q0,_r="@imgly/plugin-ai-generation",H0=`
138
+ `,n2=t2,r2="@imgly/plugin-ai-image-generation-web",_="ly.img.ai/image-generation",In="ly.img.ai.image-generation.fromType";function i2(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.ui.addIconSet(e2,n2),t.setTranslations({en:{[`panel.${_}`]:"Image Generation","ly.img.ai.image-generation.success":"Image Generation Successful","ly.img.ai.image-generation.success.action":"Show"}});let n=e?.text2image,a=e?.image2image,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(_),g=t.ui.experimental.getGlobalStateValue(In,"fromText")===c;return!d||!g},message:"ly.img.ai.image-generation.success",action:{label:"ly.img.ai.image-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(In,c),t.ui.openPanel(_)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await mi(o,{cesdk:t,engine:t.engine},r):void 0,s=i!=null?await mi(i,{cesdk:t,engine:t.engine},r):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){r.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(_,c=>{let{builder:d,experimental:g}=c,f=g.global(In,"fromText");switch(d.Section(`${_}.fromType.section`,{children:()=>{d.ButtonGroup(`${_}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${_}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Bt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${_}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Bt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(_,c),t.i18n.setTranslations({en:{[`${_}.dock.label`]:"AI Image"}}),Xp({cesdk:t,panelId:_})}}}}var o2=i2,a2=e=>({name:r2,version:"0.1.5",...o2(e)}),Bi=a2;function ao(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function it(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=ao(e,t.$ref),a={...it(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=it(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>it(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=it(e,t[a],r));return n}return t}function l2(e){return it(e,{...e})}function s2(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function u2(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return c2(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function c2(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var lo=u2,d2="ly.img.ai",On="ly.img.ai/temp";async function g2(e,t){return e.engine.asset.findAllSources().includes(On)||e.engine.asset.addLocalSource(On),e.engine.asset.apply(On,t)}function so(e){return`${d2}/${e}`}function p2(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 f2(){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 m2(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function uo(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function Qn(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 pe(e){return e instanceof Error&&e.name==="AbortError"}function co(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?y2(e,t,r,n,a,o):po(e,t,r,n,a,o);case"boolean":return fo(e,t,r,n,a,o);case"number":case"integer":return mo(e,t,r,n,a,o);case"object":return go(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return b2(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function go(e,t,r,n,a,o){let i=lo(t.schema??{},n).reduce((l,u)=>{let s=co(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function po(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=h2(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function y2(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??uo(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function fo(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function mo(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function b2(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??uo(M),icon:C[M]})}):(f[y]=()=>po(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>fo(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>mo(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>go(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function h2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var v2=co,w2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yo=w2;function k2(e,t,r){switch(t){case"image":return C2(e,r[t]);case"video":return M2(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function C2(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:yo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function M2(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:yo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var x2=k2;async function I2(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return A2(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return E2(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return S2(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function A2(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function E2(e,t,r){let n=t.width,a=t.height,o=await m2(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function S2(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()}}}var Fi=I2;function bo(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function j2(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var ho=j2,L2=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=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,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 n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},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),n=new Set;ge(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),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=()=>{ge(t,n=>{this.removeBlob(n)}),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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.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 n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),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 ge(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),ge(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function ge(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=ge(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=ge(a,t,o)}return e}var T2=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)}},vo=T2,$2=typeof global=="object"&&global&&global.Object===Object&&global,wo=$2,N2=typeof self=="object"&&self&&self.Object===Object&&self,O2=wo||N2||Function("return this")(),V=O2,D2=V.Symbol,fe=D2,ko=Object.prototype,_2=ko.hasOwnProperty,z2=ko.toString,nt=fe?fe.toStringTag:void 0;function P2(e){var t=_2.call(e,nt),r=e[nt];try{e[nt]=void 0;var n=!0}catch{}var a=z2.call(e);return n&&(t?e[nt]=r:delete e[nt]),a}var U2=P2,V2=Object.prototype,B2=V2.toString;function F2(e){return B2.call(e)}var G2=F2,R2="[object Null]",q2="[object Undefined]",Gi=fe?fe.toStringTag:void 0;function Q2(e){return e==null?e===void 0?q2:R2:Gi&&Gi in Object(e)?U2(e):G2(e)}var ut=Q2;function H2(e){return e!=null&&typeof e=="object"}var Hn=H2,rC=Array.isArray;function Y2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Co=Y2,Z2="[object AsyncFunction]",W2="[object Function]",K2="[object GeneratorFunction]",J2="[object Proxy]";function X2(e){if(!Co(e))return!1;var t=ut(e);return t==W2||t==K2||t==Z2||t==J2}var ef=X2,tf=V["__core-js_shared__"],Dn=tf,Ri=function(){var e=/[^.]+$/.exec(Dn&&Dn.keys&&Dn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nf(e){return!!Ri&&Ri in e}var rf=nf,of=Function.prototype,af=of.toString;function lf(e){if(e!=null){try{return af.call(e)}catch{}try{return e+""}catch{}}return""}var Q=lf,sf=/[\\^$.*+?()[\]{}|]/g,uf=/^\[object .+?Constructor\]$/,cf=Function.prototype,df=Object.prototype,gf=cf.toString,pf=df.hasOwnProperty,ff=RegExp("^"+gf.call(pf).replace(sf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mf(e){if(!Co(e)||rf(e))return!1;var t=ef(e)?ff:uf;return t.test(Q(e))}var yf=mf;function bf(e,t){return e?.[t]}var hf=bf;function vf(e,t){var r=hf(e,t);return yf(r)?r:void 0}var me=vf,wf=me(V,"WeakMap"),Vn=wf;function kf(e,t){return e===t||e!==e&&t!==t}var Cf=kf,Mf=9007199254740991;function xf(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Mf}var If=xf,iC=Object.prototype,Af="[object Arguments]";function Ef(e){return Hn(e)&&ut(e)==Af}var qi=Ef,Mo=Object.prototype,Sf=Mo.hasOwnProperty,jf=Mo.propertyIsEnumerable,oC=qi(function(){return arguments}())?qi:function(e){return Hn(e)&&Sf.call(e,"callee")&&!jf.call(e,"callee")},xo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qi=xo&&typeof module=="object"&&module&&!module.nodeType&&module,Lf=Qi&&Qi.exports===xo,Hi=Lf?V.Buffer:void 0,aC=Hi?Hi.isBuffer:void 0,Tf="[object Arguments]",$f="[object Array]",Nf="[object Boolean]",Of="[object Date]",Df="[object Error]",_f="[object Function]",zf="[object Map]",Pf="[object Number]",Uf="[object Object]",Vf="[object RegExp]",Bf="[object Set]",Ff="[object String]",Gf="[object WeakMap]",Rf="[object ArrayBuffer]",qf="[object DataView]",Qf="[object Float32Array]",Hf="[object Float64Array]",Yf="[object Int8Array]",Zf="[object Int16Array]",Wf="[object Int32Array]",Kf="[object Uint8Array]",Jf="[object Uint8ClampedArray]",Xf="[object Uint16Array]",em="[object Uint32Array]",S={};S[Qf]=S[Hf]=S[Yf]=S[Zf]=S[Wf]=S[Kf]=S[Jf]=S[Xf]=S[em]=!0;S[Tf]=S[$f]=S[Rf]=S[Nf]=S[qf]=S[Of]=S[Df]=S[_f]=S[zf]=S[Pf]=S[Uf]=S[Vf]=S[Bf]=S[Ff]=S[Gf]=!1;function tm(e){return Hn(e)&&If(e.length)&&!!S[ut(e)]}var nm=tm;function rm(e){return function(t){return e(t)}}var im=rm,Io=typeof exports=="object"&&exports&&!exports.nodeType&&exports,at=Io&&typeof module=="object"&&module&&!module.nodeType&&module,om=at&&at.exports===Io,_n=om&&wo.process,am=function(){try{var e=at&&at.require&&at.require("util").types;return e||_n&&_n.binding&&_n.binding("util")}catch{}}(),Yi=am,Zi=Yi&&Yi.isTypedArray,lC=Zi?im(Zi):nm,lm=Object.prototype,sC=lm.hasOwnProperty;function sm(e,t){return function(r){return e(t(r))}}var um=sm,uC=um(Object.keys,Object),cm=Object.prototype,cC=cm.hasOwnProperty,dm=me(Object,"create"),lt=dm;function gm(){this.__data__=lt?lt(null):{},this.size=0}var pm=gm;function fm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mm=fm,ym="__lodash_hash_undefined__",bm=Object.prototype,hm=bm.hasOwnProperty;function vm(e){var t=this.__data__;if(lt){var r=t[e];return r===ym?void 0:r}return hm.call(t,e)?t[e]:void 0}var wm=vm,km=Object.prototype,Cm=km.hasOwnProperty;function Mm(e){var t=this.__data__;return lt?t[e]!==void 0:Cm.call(t,e)}var xm=Mm,Im="__lodash_hash_undefined__";function Am(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=lt&&t===void 0?Im:t,this}var Em=Am;function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=pm;ye.prototype.delete=mm;ye.prototype.get=wm;ye.prototype.has=xm;ye.prototype.set=Em;var Wi=ye;function Sm(){this.__data__=[],this.size=0}var jm=Sm;function Lm(e,t){for(var r=e.length;r--;)if(Cf(e[r][0],t))return r;return-1}var Ht=Lm,Tm=Array.prototype,$m=Tm.splice;function Nm(e){var t=this.__data__,r=Ht(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():$m.call(t,r,1),--this.size,!0}var Om=Nm;function Dm(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var _m=Dm;function zm(e){return Ht(this.__data__,e)>-1}var Pm=zm;function Um(e,t){var r=this.__data__,n=Ht(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Vm=Um;function be(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}be.prototype.clear=jm;be.prototype.delete=Om;be.prototype.get=_m;be.prototype.has=Pm;be.prototype.set=Vm;var Yt=be,Bm=me(V,"Map"),st=Bm;function Fm(){this.size=0,this.__data__={hash:new Wi,map:new(st||Yt),string:new Wi}}var Gm=Fm;function Rm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qm=Rm;function Qm(e,t){var r=e.__data__;return qm(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=Qm;function Hm(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Ym=Hm;function Zm(e){return Zt(this,e).get(e)}var Wm=Zm;function Km(e){return Zt(this,e).has(e)}var Jm=Km;function Xm(e,t){var r=Zt(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var e0=Xm;function he(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}he.prototype.clear=Gm;he.prototype.delete=Ym;he.prototype.get=Wm;he.prototype.has=Jm;he.prototype.set=e0;var Ao=he;function t0(){this.__data__=new Yt,this.size=0}var n0=t0;function r0(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var i0=r0;function o0(e){return this.__data__.get(e)}var a0=o0;function l0(e){return this.__data__.has(e)}var s0=l0,u0=200;function c0(e,t){var r=this.__data__;if(r instanceof Yt){var n=r.__data__;if(!st||n.length<u0-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ao(n)}return r.set(e,t),this.size=r.size,this}var d0=c0;function ct(e){var t=this.__data__=new Yt(e);this.size=t.size}ct.prototype.clear=n0;ct.prototype.delete=i0;ct.prototype.get=a0;ct.prototype.has=s0;ct.prototype.set=d0;var g0=Object.prototype,dC=g0.propertyIsEnumerable,p0=me(V,"DataView"),Bn=p0,f0=me(V,"Promise"),Fn=f0,m0=me(V,"Set"),Gn=m0,Ki="[object Map]",y0="[object Object]",Ji="[object Promise]",Xi="[object Set]",eo="[object WeakMap]",to="[object DataView]",b0=Q(Bn),h0=Q(st),v0=Q(Fn),w0=Q(Gn),k0=Q(Vn),de=ut;(Bn&&de(new Bn(new ArrayBuffer(1)))!=to||st&&de(new st)!=Ki||Fn&&de(Fn.resolve())!=Ji||Gn&&de(new Gn)!=Xi||Vn&&de(new Vn)!=eo)&&(de=function(e){var t=ut(e),r=t==y0?e.constructor:void 0,n=r?Q(r):"";if(n)switch(n){case b0:return to;case h0:return Ki;case v0:return Ji;case w0:return Xi;case k0:return eo}return t});var gC=V.Uint8Array,C0="__lodash_hash_undefined__";function M0(e){return this.__data__.set(e,C0),this}var x0=M0;function I0(e){return this.__data__.has(e)}var A0=I0;function Rn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ao;++t<r;)this.add(e[t])}Rn.prototype.add=Rn.prototype.push=x0;Rn.prototype.has=A0;var no=fe?fe.prototype:void 0,pC=no?no.valueOf:void 0,E0=Object.prototype,fC=E0.hasOwnProperty,S0=Object.prototype,mC=S0.hasOwnProperty,yC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function j0(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Eo(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function qn(e,t){let r=await Eo(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function L0(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return Eo(n,t)}function T0(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await D0(2e3),await $0(t,e,r))}async function $0(e,t,r){switch(t.kind){case"image":return N0(e,t,r);case"video":return O0(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function N0(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await L0(l,r),s=await qn(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
139
+ `,"+")}`}}async function O0(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function D0(e){return new Promise(t=>{setTimeout(t,e)})}var So=T0;async function _0(e,t,r,n,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await r(d.input),f=f2(),v;if(u){if(v=x2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await g2(l,v),c!=null&&n.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(qt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=bo([...n.output.middleware??[],o.debug?ho():void 0,o.dryRun?So({kind:n.kind,blockInputs:g}):void 0]),{result:h}=await k(n.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(Qn(h))throw new Error("Streaming generation is not supported yet from a panel");if(qt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Fi(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),qt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Fi(f,e,g,h),qt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(pe(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function qt(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var z0=_0;function P0(e,t,r){let{cesdk:n,provider:a,getInput:o}=t;r.onError!=null&&typeof r.onError=="function"?r.onError(e):(console.error("Generation failed:",e),U0(n,a.output.notification,()=>({input:o?.().input,error:e}))||n.ui.showNotification({type:"error",message:p2(e)}))}function U0(e,t,r){let n=t?.error;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.failed",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var ot=P0;function Qt(e){return`${e}.generating`}function V0(e){return`${e}.abort`}function B0(e,t,r,n,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(V0(c),()=>{}),f=l.global(Qt(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=r();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await z0(t.kind,r,n,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;F0(u,C,()=>({input:r().input,output:w.output}))}catch(w){if(pe(w))return;ot(w,{cesdk:u,provider:t,getInput:r},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function F0(e,t,r){let n=t?.success;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.success",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:n.duration}),!0}var jo=B0;async function G0(e,t,r,n){let{cesdk:a}=r,{id:o}=e;n.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=l2(t.document),l=ao(i,t.inputReference);if(!s2(l,n.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=lo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=v2(d,p,e,t,r,n);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});jo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...r,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},n)};return a.ui.registerPanel(so(o),c),c}var R0=G0;async function q0(e,t,r,n){let{cesdk:a}=r,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Qt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return jo(u,e,d,g,{...r,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},n),d};return a.ui.registerPanel(so(o),l),l}var Q0=q0,zn="@imgly/plugin-ai-generation",H0=`
140
140
  <svg>
141
141
  <symbol
142
142
  fill="none"
@@ -154,7 +154,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
154
154
  fill="none"
155
155
  xmlns="http://www.w3.org/2000/svg"
156
156
  viewBox="0 0 24 24"
157
- id="${_r}/image"
157
+ id="${zn}/image"
158
158
  >
159
159
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
160
160
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -166,7 +166,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
166
166
  fill="none"
167
167
  xmlns="http://www.w3.org/2000/svg"
168
168
  viewBox="0 0 24 24"
169
- id="${_r}/video"
169
+ id="${zn}/video"
170
170
  >
171
171
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
172
172
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -177,7 +177,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
177
177
  fill="none"
178
178
  xmlns="http://www.w3.org/2000/svg"
179
179
  viewBox="0 0 24 24"
180
- id="${_r}/audio"
180
+ id="${zn}/audio"
181
181
  >
182
182
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
183
183
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -197,8 +197,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
197
197
 
198
198
  </symbol>
199
199
  </svg>
200
- `,Y0=H0,no="ly.img.ai.quickAction.order",nt="ly.img.ai.quickAction.actions";function Z0(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${no}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${no}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${nt}.${t}`))e.ui.experimental.setGlobalStateValue(`${nt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${nt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${nt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${nt}.${t}`,{})[n]}}var W0=Z0,zr="ly.img.ai.inference.editMode",Lo="ly.img.ai.inference.metadata";function To(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function K0(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function J0({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var X0=J0;function ey({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var ty=ey;function ry({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=ny(r.engine,o,e),await a(n,r)}catch(l){throw pe(l)&&i(),l}finally{t&&i()}}}function ny(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var iy=ry;function oy(e,t){switch(t.kind){case"text":return ay(e,t);case"image":return ly(e,t);case"video":return sy(e,t);case"audio":return uy(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ay(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(qr(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function ly(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await Rr(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(qr(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),w=await cy(n,m,y),C=await Rr(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function sy(e,t){throw new Error("Function not implemented.")}async function uy(e,t){throw new Error("Function not implemented.")}async function cy(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${j0(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var dy=oy;function gy({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=py(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw pe(u)&&l(),u}finally{t&&l()}}}function py(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var fy=gy;async function my(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:zr});let s=new vo(n.engine,Lo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=bo([...o.output.middleware??[],t.debug?ho():void 0,ty({}),...i.confirmation?[i.lockDuringConfirmation?iy({editMode:zr}):fy({editMode:zr}),i.confirmation&&X0({})]:[],t.dryRun?So({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await dy(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var io=my;function yy(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new vo(n.engine,Lo),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(To({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=K0(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{ot(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await io({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw pe(M)||ot(M,{cesdk:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{ot(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await io({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw pe(C)||ot(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var by=yy;async function hy(e,t,n){await e.initialize?.(t);let r=await wy(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:vy(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Y0),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await ky(e,o,n)}}function vy(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function wy(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new L2(r,e)),r}return n}}async function ky(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Cy(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),My(e,e.input.quickActions,t,n)),r}async function Cy(e,t,n,r){switch(t.type){case"custom":return Q0(e,t,n,r);case"schema":return R0(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function My(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=W0(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(To({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=by({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var oo=hy;function xy(e){let{cesdk:t,panelId:n}=e;n.startsWith("ly.img.ai/")&&console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai/" \u2013 "${n}" was provided.`);let r=`${n}.dock`;t.ui.registerComponent(r,({builder:a})=>{let o=t.ui.isPanelOpen(n);a.Button(`${n}.dock.button`,{label:`${n}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(n):t.ui.openPanel(n)}})})}var Iy=xy,Ay="@imgly/plugin-ai-video-generation-web",z="ly.img.ai/video-generation",Pr="ly.img.ai.video-generation.fromType";function Ey(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${z}`]:"Video Generation","ly.img.ai.video-generation.success":"Video Generation Successful","ly.img.ai.video-generation.success.action":"Show"}});let r=e?.text2video,a=e?.image2video,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(z),g=t.ui.experimental.getGlobalStateValue(Pr)===c;return!d||!g},message:"ly.img.ai.video-generation.success",action:{label:"ly.img.ai.video-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(Pr,c),t.ui.openPanel(z)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await oo(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await oo(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(z,c=>{let{builder:d,experimental:g}=c,f=g.global(Pr,"fromText");switch(d.Section(`${z}.fromType.section`,{children:()=>{d.ButtonGroup(`${z}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${z}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Qt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${z}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Qt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(z,c),t.i18n.setTranslations({en:{[`${z}.dock.label`]:"AI Video"}}),Iy({cesdk:t,panelId:z})}}}}var Sy=Ey,jy=e=>({name:Ay,version:"0.1.4",...Sy(e)}),No=jy;function Ko(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function ft(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=Ko(e,t.$ref),a={...ft(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=ft(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>ft(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=ft(e,t[a],n));return r}return t}function Ly(e){return ft(e,{...e})}function Ty(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return n(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return n(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return n(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return n(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return n(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function Ny(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return $y(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function $y(e,t){if(t.orderExtensionKeyword==null)return;let n=[];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,a=r.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Jo=Ny,Oy="ly.img.ai",Hr="ly.img.ai/temp";async function Dy(e,t){return e.engine.asset.findAllSources().includes(Hr)||e.engine.asset.addLocalSource(Hr),e.engine.asset.apply(Hr,t)}function Xo(e){return`${Oy}/${e}`}function _y(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function zy(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Py(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function ea(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function on(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 ke(e){return e instanceof Error&&e.name==="AbortError"}function ta(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Uy(e,t,n,r,a,o):na(e,t,n,r,a,o);case"boolean":return ia(e,t,n,r,a,o);case"number":case"integer":return oa(e,t,n,r,a,o);case"object":return ra(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Vy(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ra(e,t,n,r,a,o){let i=Jo(t.schema??{},r).reduce((l,u)=>{let s=ta(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function na(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=By(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Uy(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??ea(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function ia(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function oa(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Vy(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??ea(M),icon:C[M]})}):(f[y]=()=>na(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>ia(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>oa(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>ra(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function By(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Gy=ta,Fy="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",aa=Fy;function Ry(e,t,n){switch(t){case"image":return qy(e,n[t]);case"video":return Qy(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qy(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:aa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Qy(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:aa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Hy=Ry;async function Yy(e,t,n,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return Zy(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return Wy(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return Ky(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Zy(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function Wy(e,t,n){let r=t.width,a=t.height,o=await Py(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function Ky(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var $o=Yy;function la(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,r,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function Jy(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var sa=Jy,Xy=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:l,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;we(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{we(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return we(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),we(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function we(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=we(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=we(a,t,o)}return e}var e4=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)}},ua=e4,t4=typeof global=="object"&&global&&global.Object===Object&&global,ca=t4,r4=typeof self=="object"&&self&&self.Object===Object&&self,n4=ca||r4||Function("return this")(),B=n4,i4=B.Symbol,Ce=i4,da=Object.prototype,o4=da.hasOwnProperty,a4=da.toString,dt=Ce?Ce.toStringTag:void 0;function l4(e){var t=o4.call(e,dt),n=e[dt];try{e[dt]=void 0;var r=!0}catch{}var a=a4.call(e);return r&&(t?e[dt]=n:delete e[dt]),a}var s4=l4,u4=Object.prototype,c4=u4.toString;function d4(e){return c4.call(e)}var g4=d4,p4="[object Null]",f4="[object Undefined]",Oo=Ce?Ce.toStringTag:void 0;function m4(e){return e==null?e===void 0?f4:p4:Oo&&Oo in Object(e)?s4(e):g4(e)}var vt=m4;function y4(e){return e!=null&&typeof e=="object"}var an=y4,CC=Array.isArray;function b4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ga=b4,h4="[object AsyncFunction]",v4="[object Function]",w4="[object GeneratorFunction]",k4="[object Proxy]";function C4(e){if(!ga(e))return!1;var t=vt(e);return t==v4||t==w4||t==h4||t==k4}var M4=C4,x4=B["__core-js_shared__"],Yr=x4,Do=function(){var e=/[^.]+$/.exec(Yr&&Yr.keys&&Yr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function I4(e){return!!Do&&Do in e}var A4=I4,E4=Function.prototype,S4=E4.toString;function j4(e){if(e!=null){try{return S4.call(e)}catch{}try{return e+""}catch{}}return""}var H=j4,L4=/[\\^$.*+?()[\]{}|]/g,T4=/^\[object .+?Constructor\]$/,N4=Function.prototype,$4=Object.prototype,O4=N4.toString,D4=$4.hasOwnProperty,_4=RegExp("^"+O4.call(D4).replace(L4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z4(e){if(!ga(e)||A4(e))return!1;var t=M4(e)?_4:T4;return t.test(H(e))}var P4=z4;function U4(e,t){return e?.[t]}var V4=U4;function B4(e,t){var n=V4(e,t);return P4(n)?n:void 0}var Me=B4,G4=Me(B,"WeakMap"),Jr=G4;function F4(e,t){return e===t||e!==e&&t!==t}var R4=F4,q4=9007199254740991;function Q4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q4}var H4=Q4,MC=Object.prototype,Y4="[object Arguments]";function Z4(e){return an(e)&&vt(e)==Y4}var _o=Z4,pa=Object.prototype,W4=pa.hasOwnProperty,K4=pa.propertyIsEnumerable,xC=_o(function(){return arguments}())?_o:function(e){return an(e)&&W4.call(e,"callee")&&!K4.call(e,"callee")},fa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=fa&&typeof module=="object"&&module&&!module.nodeType&&module,J4=zo&&zo.exports===fa,Po=J4?B.Buffer:void 0,IC=Po?Po.isBuffer:void 0,X4="[object Arguments]",eb="[object Array]",tb="[object Boolean]",rb="[object Date]",nb="[object Error]",ib="[object Function]",ob="[object Map]",ab="[object Number]",lb="[object Object]",sb="[object RegExp]",ub="[object Set]",cb="[object String]",db="[object WeakMap]",gb="[object ArrayBuffer]",pb="[object DataView]",fb="[object Float32Array]",mb="[object Float64Array]",yb="[object Int8Array]",bb="[object Int16Array]",hb="[object Int32Array]",vb="[object Uint8Array]",wb="[object Uint8ClampedArray]",kb="[object Uint16Array]",Cb="[object Uint32Array]",j={};j[fb]=j[mb]=j[yb]=j[bb]=j[hb]=j[vb]=j[wb]=j[kb]=j[Cb]=!0;j[X4]=j[eb]=j[gb]=j[tb]=j[pb]=j[rb]=j[nb]=j[ib]=j[ob]=j[ab]=j[lb]=j[sb]=j[ub]=j[cb]=j[db]=!1;function Mb(e){return an(e)&&H4(e.length)&&!!j[vt(e)]}var xb=Mb;function Ib(e){return function(t){return e(t)}}var Ab=Ib,ma=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=ma&&typeof module=="object"&&module&&!module.nodeType&&module,Eb=yt&&yt.exports===ma,Zr=Eb&&ca.process,Sb=function(){try{var e=yt&&yt.require&&yt.require("util").types;return e||Zr&&Zr.binding&&Zr.binding("util")}catch{}}(),Uo=Sb,Vo=Uo&&Uo.isTypedArray,AC=Vo?Ab(Vo):xb,jb=Object.prototype,EC=jb.hasOwnProperty;function Lb(e,t){return function(n){return e(t(n))}}var Tb=Lb,SC=Tb(Object.keys,Object),Nb=Object.prototype,jC=Nb.hasOwnProperty,$b=Me(Object,"create"),bt=$b;function Ob(){this.__data__=bt?bt(null):{},this.size=0}var Db=Ob;function _b(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zb=_b,Pb="__lodash_hash_undefined__",Ub=Object.prototype,Vb=Ub.hasOwnProperty;function Bb(e){var t=this.__data__;if(bt){var n=t[e];return n===Pb?void 0:n}return Vb.call(t,e)?t[e]:void 0}var Gb=Bb,Fb=Object.prototype,Rb=Fb.hasOwnProperty;function qb(e){var t=this.__data__;return bt?t[e]!==void 0:Rb.call(t,e)}var Qb=qb,Hb="__lodash_hash_undefined__";function Yb(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bt&&t===void 0?Hb:t,this}var Zb=Yb;function xe(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xe.prototype.clear=Db;xe.prototype.delete=zb;xe.prototype.get=Gb;xe.prototype.has=Qb;xe.prototype.set=Zb;var Bo=xe;function Wb(){this.__data__=[],this.size=0}var Kb=Wb;function Jb(e,t){for(var n=e.length;n--;)if(R4(e[n][0],t))return n;return-1}var Jt=Jb,Xb=Array.prototype,e5=Xb.splice;function t5(e){var t=this.__data__,n=Jt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():e5.call(t,n,1),--this.size,!0}var r5=t5;function n5(e){var t=this.__data__,n=Jt(t,e);return n<0?void 0:t[n][1]}var i5=n5;function o5(e){return Jt(this.__data__,e)>-1}var a5=o5;function l5(e,t){var n=this.__data__,r=Jt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var s5=l5;function Ie(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ie.prototype.clear=Kb;Ie.prototype.delete=r5;Ie.prototype.get=i5;Ie.prototype.has=a5;Ie.prototype.set=s5;var Xt=Ie,u5=Me(B,"Map"),ht=u5;function c5(){this.size=0,this.__data__={hash:new Bo,map:new(ht||Xt),string:new Bo}}var d5=c5;function g5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p5=g5;function f5(e,t){var n=e.__data__;return p5(t)?n[typeof t=="string"?"string":"hash"]:n.map}var er=f5;function m5(e){var t=er(this,e).delete(e);return this.size-=t?1:0,t}var y5=m5;function b5(e){return er(this,e).get(e)}var h5=b5;function v5(e){return er(this,e).has(e)}var w5=v5;function k5(e,t){var n=er(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var C5=k5;function Ae(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ae.prototype.clear=d5;Ae.prototype.delete=y5;Ae.prototype.get=h5;Ae.prototype.has=w5;Ae.prototype.set=C5;var ya=Ae;function M5(){this.__data__=new Xt,this.size=0}var x5=M5;function I5(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var A5=I5;function E5(e){return this.__data__.get(e)}var S5=E5;function j5(e){return this.__data__.has(e)}var L5=j5,T5=200;function N5(e,t){var n=this.__data__;if(n instanceof Xt){var r=n.__data__;if(!ht||r.length<T5-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ya(r)}return n.set(e,t),this.size=n.size,this}var $5=N5;function wt(e){var t=this.__data__=new Xt(e);this.size=t.size}wt.prototype.clear=x5;wt.prototype.delete=A5;wt.prototype.get=S5;wt.prototype.has=L5;wt.prototype.set=$5;var O5=Object.prototype,LC=O5.propertyIsEnumerable,D5=Me(B,"DataView"),Xr=D5,_5=Me(B,"Promise"),en=_5,z5=Me(B,"Set"),tn=z5,Go="[object Map]",P5="[object Object]",Fo="[object Promise]",Ro="[object Set]",qo="[object WeakMap]",Qo="[object DataView]",U5=H(Xr),V5=H(ht),B5=H(en),G5=H(tn),F5=H(Jr),ve=vt;(Xr&&ve(new Xr(new ArrayBuffer(1)))!=Qo||ht&&ve(new ht)!=Go||en&&ve(en.resolve())!=Fo||tn&&ve(new tn)!=Ro||Jr&&ve(new Jr)!=qo)&&(ve=function(e){var t=vt(e),n=t==P5?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case U5:return Qo;case V5:return Go;case B5:return Fo;case G5:return Ro;case F5:return qo}return t});var TC=B.Uint8Array,R5="__lodash_hash_undefined__";function q5(e){return this.__data__.set(e,R5),this}var Q5=q5;function H5(e){return this.__data__.has(e)}var Y5=H5;function rn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ya;++t<n;)this.add(e[t])}rn.prototype.add=rn.prototype.push=Q5;rn.prototype.has=Y5;var Ho=Ce?Ce.prototype:void 0,NC=Ho?Ho.valueOf:void 0,Z5=Object.prototype,$C=Z5.hasOwnProperty,W5=Object.prototype,OC=W5.hasOwnProperty,DC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function K5(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ba(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function nn(e,t){let n=await ba(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function J5(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return ba(r,t)}function X5(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await nh(2e3),await eh(t,e,n))}async function eh(e,t,n){switch(t.kind){case"image":return th(e,t,n);case"video":return rh(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function th(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await J5(l,n),s=await nn(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
201
- `,"+")}`}}async function rh(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nh(e){return new Promise(t=>{setTimeout(t,e)})}var ha=X5;async function ih(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=zy(),v;if(u){if(v=Hy(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Dy(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Wt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=la([...r.output.middleware??[],o.debug?sa():void 0,o.dryRun?ha({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(on(h))throw new Error("Streaming generation is not supported yet from a panel");if(Wt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await $o(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Wt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await $o(f,e,g,h),Wt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(ke(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Wt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var oh=ih;function ah(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),lh(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:_y(e)}))}function lh(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var mt=ah;function va(e){return`${e}.generating`}function sh(e){return`${e}.abort`}function uh(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(sh(c),()=>{}),f=l.global(va(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await oh(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;ch(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(ke(w))return;mt(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ch(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var wa=uh;async function dh(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=Ly(t.document),l=Ko(i,t.inputReference);if(!Ty(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Jo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Gy(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});wa(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xo(o),c),c}var gh=dh;async function ph(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(va(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return wa(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xo(o),l),l}var fh=ph,Wr="@imgly/plugin-ai-generation",mh=`
200
+ `,Y0=H0,ro="ly.img.ai.quickAction.order",rt="ly.img.ai.quickAction.actions";function Z0(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${ro}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ro}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${rt}.${t}`))e.ui.experimental.setGlobalStateValue(`${rt}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${rt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${rt}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${rt}.${t}`,{})[r]}}var W0=Z0,Pn="ly.img.ai.inference.editMode",Lo="ly.img.ai.inference.metadata";function To(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function K0(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,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function J0({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var X0=J0;function ey({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var ty=ey;function ny({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=ry(n.engine,o,e),await a(r,n)}catch(l){throw pe(l)&&i(),l}finally{t&&i()}}}function ry(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var iy=ny;function oy(e,t){switch(t.kind){case"text":return ay(e,t);case"image":return ly(e,t);case"video":return sy(e,t);case"audio":return uy(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ay(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(Qn(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function ly(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await qn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),k=r.engine.block.getCropTranslationX(o),h=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),b=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,k),r.engine.block.setCropTranslationY(o,h),r.engine.block.setCropRotation(o,p)};if(Qn(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),w=await cy(r,m,y),C=await qn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,N=w;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",N):r.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?r.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if(N==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",N)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function sy(e,t){throw new Error("Function not implemented.")}async function uy(e,t){throw new Error("Function not implemented.")}async function cy(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${j0(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var dy=oy;function gy({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=py(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw pe(u)&&l(),u}finally{t&&l()}}}function py(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var fy=gy;async function my(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:Pn});let s=new vo(r.engine,Lo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=bo([...o.output.middleware??[],t.debug?ho():void 0,ty({}),...i.confirmation?[i.lockDuringConfirmation?iy({editMode:Pn}):fy({editMode:Pn}),i.confirmation&&X0({})]:[],t.dryRun?So({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:k}=await dy(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var io=my;function yy(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new vo(r.engine,Lo),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=n.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=n.getQuickAction(b);if(m==null||!r.feature.isEnabled(To({quickActionId:b,quickActionMenuId:n.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=K0(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=n.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{ot(w,{cesdk:r,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await io({input:w,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw pe(M)||ot(M,{cesdk:r,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{ot(y,{cesdk:r,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await io({input:y,quickAction:m,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw pe(C)||ot(C,{cesdk:r,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var by=yy;async function hy(e,t,r){await e.initialize?.(t);let n=await wy(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:vy(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Y0),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await ky(e,o,r)}}function vy(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function wy(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new L2(n,e)),n}return r}}async function ky(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Cy(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),My(e,e.input.quickActions,t,r)),n}async function Cy(e,t,r,n){switch(t.type){case"custom":return Q0(e,t,r,n);case"schema":return R0(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function My(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=W0(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(To({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=by({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var oo=hy;function xy(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 n=`${r}.dock`;t.ui.registerComponent(n,({builder:a})=>{let o=t.ui.isPanelOpen(r);a.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(i=>{i.startsWith("ly.img.ai/")&&t.ui.closePanel(i),!o&&i==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(i)}),o?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Iy=xy,Ay="@imgly/plugin-ai-video-generation-web",z="ly.img.ai/video-generation",Un="ly.img.ai.video-generation.fromType";function Ey(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${z}`]:"Video Generation","ly.img.ai.video-generation.success":"Video Generation Successful","ly.img.ai.video-generation.success.action":"Show"}});let n=e?.text2video,a=e?.image2video,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});function l(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(z),g=t.ui.experimental.getGlobalStateValue(Un)===c;return!d||!g},message:"ly.img.ai.video-generation.success",action:{label:"ly.img.ai.video-generation.success.action",onClick:()=>{t.ui.experimental.setGlobalStateValue(Un,c),t.ui.openPanel(z)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await oo(o,{cesdk:t,engine:t.engine},r):void 0,s=i!=null?await oo(i,{cesdk:t,engine:t.engine},r):void 0;if(u?.renderBuilderFunctions?.panel==null&&s?.renderBuilderFunctions?.panel==null){r.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&s?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(z,c=>{let{builder:d,experimental:g}=c,f=g.global(Un,"fromText");switch(d.Section(`${z}.fromType.section`,{children:()=>{d.ButtonGroup(`${z}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${z}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Qt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${z}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Qt(i.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}})}}),f.value){case"fromText":{u?.renderBuilderFunctions?.panel?.(c);break}case"fromImage":{s?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??s?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(z,c),t.i18n.setTranslations({en:{[`${z}.dock.label`]:"AI Video"}}),Iy({cesdk:t,panelId:z})}}}}var Sy=Ey,jy=e=>({name:Ay,version:"0.1.5",...Sy(e)}),$o=jy;function Ko(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function ft(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=Ko(e,t.$ref),a={...ft(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=ft(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>ft(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=ft(e,t[a],r));return n}return t}function Ly(e){return ft(e,{...e})}function Ty(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function $y(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return Ny(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function Ny(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var Jo=$y,Oy="ly.img.ai",Yn="ly.img.ai/temp";async function Dy(e,t){return e.engine.asset.findAllSources().includes(Yn)||e.engine.asset.addLocalSource(Yn),e.engine.asset.apply(Yn,t)}function Xo(e){return`${Oy}/${e}`}function _y(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 zy(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Py(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function ea(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function or(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 ke(e){return e instanceof Error&&e.name==="AbortError"}function ta(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?Uy(e,t,r,n,a,o):ra(e,t,r,n,a,o);case"boolean":return ia(e,t,r,n,a,o);case"number":case"integer":return oa(e,t,r,n,a,o);case"object":return na(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Vy(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function na(e,t,r,n,a,o){let i=Jo(t.schema??{},n).reduce((l,u)=>{let s=ta(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function ra(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=By(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Uy(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??ea(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function ia(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function oa(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Vy(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??ea(M),icon:C[M]})}):(f[y]=()=>ra(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>ia(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>oa(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>na(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function By(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Fy=ta,Gy="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",aa=Gy;function Ry(e,t,r){switch(t){case"image":return qy(e,r[t]);case"video":return Qy(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qy(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:aa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function Qy(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:aa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var Hy=Ry;async function Yy(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return Zy(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return Wy(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return Ky(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Zy(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function Wy(e,t,r){let n=t.width,a=t.height,o=await Py(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function Ky(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()}}}var No=Yy;function la(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function Jy(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var sa=Jy,Xy=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=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,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 n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},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),n=new Set;we(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),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=()=>{we(t,n=>{this.removeBlob(n)}),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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.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 n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),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 we(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),we(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function we(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=we(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=we(a,t,o)}return e}var eb=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)}},ua=eb,tb=typeof global=="object"&&global&&global.Object===Object&&global,ca=tb,nb=typeof self=="object"&&self&&self.Object===Object&&self,rb=ca||nb||Function("return this")(),B=rb,ib=B.Symbol,Ce=ib,da=Object.prototype,ob=da.hasOwnProperty,ab=da.toString,dt=Ce?Ce.toStringTag:void 0;function lb(e){var t=ob.call(e,dt),r=e[dt];try{e[dt]=void 0;var n=!0}catch{}var a=ab.call(e);return n&&(t?e[dt]=r:delete e[dt]),a}var sb=lb,ub=Object.prototype,cb=ub.toString;function db(e){return cb.call(e)}var gb=db,pb="[object Null]",fb="[object Undefined]",Oo=Ce?Ce.toStringTag:void 0;function mb(e){return e==null?e===void 0?fb:pb:Oo&&Oo in Object(e)?sb(e):gb(e)}var vt=mb;function yb(e){return e!=null&&typeof e=="object"}var ar=yb,CC=Array.isArray;function bb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ga=bb,hb="[object AsyncFunction]",vb="[object Function]",wb="[object GeneratorFunction]",kb="[object Proxy]";function Cb(e){if(!ga(e))return!1;var t=vt(e);return t==vb||t==wb||t==hb||t==kb}var Mb=Cb,xb=B["__core-js_shared__"],Zn=xb,Do=function(){var e=/[^.]+$/.exec(Zn&&Zn.keys&&Zn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ib(e){return!!Do&&Do in e}var Ab=Ib,Eb=Function.prototype,Sb=Eb.toString;function jb(e){if(e!=null){try{return Sb.call(e)}catch{}try{return e+""}catch{}}return""}var H=jb,Lb=/[\\^$.*+?()[\]{}|]/g,Tb=/^\[object .+?Constructor\]$/,$b=Function.prototype,Nb=Object.prototype,Ob=$b.toString,Db=Nb.hasOwnProperty,_b=RegExp("^"+Ob.call(Db).replace(Lb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zb(e){if(!ga(e)||Ab(e))return!1;var t=Mb(e)?_b:Tb;return t.test(H(e))}var Pb=zb;function Ub(e,t){return e?.[t]}var Vb=Ub;function Bb(e,t){var r=Vb(e,t);return Pb(r)?r:void 0}var Me=Bb,Fb=Me(B,"WeakMap"),Xn=Fb;function Gb(e,t){return e===t||e!==e&&t!==t}var Rb=Gb,qb=9007199254740991;function Qb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qb}var Hb=Qb,MC=Object.prototype,Yb="[object Arguments]";function Zb(e){return ar(e)&&vt(e)==Yb}var _o=Zb,pa=Object.prototype,Wb=pa.hasOwnProperty,Kb=pa.propertyIsEnumerable,xC=_o(function(){return arguments}())?_o:function(e){return ar(e)&&Wb.call(e,"callee")&&!Kb.call(e,"callee")},fa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=fa&&typeof module=="object"&&module&&!module.nodeType&&module,Jb=zo&&zo.exports===fa,Po=Jb?B.Buffer:void 0,IC=Po?Po.isBuffer:void 0,Xb="[object Arguments]",e4="[object Array]",t4="[object Boolean]",n4="[object Date]",r4="[object Error]",i4="[object Function]",o4="[object Map]",a4="[object Number]",l4="[object Object]",s4="[object RegExp]",u4="[object Set]",c4="[object String]",d4="[object WeakMap]",g4="[object ArrayBuffer]",p4="[object DataView]",f4="[object Float32Array]",m4="[object Float64Array]",y4="[object Int8Array]",b4="[object Int16Array]",h4="[object Int32Array]",v4="[object Uint8Array]",w4="[object Uint8ClampedArray]",k4="[object Uint16Array]",C4="[object Uint32Array]",j={};j[f4]=j[m4]=j[y4]=j[b4]=j[h4]=j[v4]=j[w4]=j[k4]=j[C4]=!0;j[Xb]=j[e4]=j[g4]=j[t4]=j[p4]=j[n4]=j[r4]=j[i4]=j[o4]=j[a4]=j[l4]=j[s4]=j[u4]=j[c4]=j[d4]=!1;function M4(e){return ar(e)&&Hb(e.length)&&!!j[vt(e)]}var x4=M4;function I4(e){return function(t){return e(t)}}var A4=I4,ma=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=ma&&typeof module=="object"&&module&&!module.nodeType&&module,E4=yt&&yt.exports===ma,Wn=E4&&ca.process,S4=function(){try{var e=yt&&yt.require&&yt.require("util").types;return e||Wn&&Wn.binding&&Wn.binding("util")}catch{}}(),Uo=S4,Vo=Uo&&Uo.isTypedArray,AC=Vo?A4(Vo):x4,j4=Object.prototype,EC=j4.hasOwnProperty;function L4(e,t){return function(r){return e(t(r))}}var T4=L4,SC=T4(Object.keys,Object),$4=Object.prototype,jC=$4.hasOwnProperty,N4=Me(Object,"create"),bt=N4;function O4(){this.__data__=bt?bt(null):{},this.size=0}var D4=O4;function _4(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var z4=_4,P4="__lodash_hash_undefined__",U4=Object.prototype,V4=U4.hasOwnProperty;function B4(e){var t=this.__data__;if(bt){var r=t[e];return r===P4?void 0:r}return V4.call(t,e)?t[e]:void 0}var F4=B4,G4=Object.prototype,R4=G4.hasOwnProperty;function q4(e){var t=this.__data__;return bt?t[e]!==void 0:R4.call(t,e)}var Q4=q4,H4="__lodash_hash_undefined__";function Y4(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=bt&&t===void 0?H4:t,this}var Z4=Y4;function xe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}xe.prototype.clear=D4;xe.prototype.delete=z4;xe.prototype.get=F4;xe.prototype.has=Q4;xe.prototype.set=Z4;var Bo=xe;function W4(){this.__data__=[],this.size=0}var K4=W4;function J4(e,t){for(var r=e.length;r--;)if(Rb(e[r][0],t))return r;return-1}var Jt=J4,X4=Array.prototype,e5=X4.splice;function t5(e){var t=this.__data__,r=Jt(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():e5.call(t,r,1),--this.size,!0}var n5=t5;function r5(e){var t=this.__data__,r=Jt(t,e);return r<0?void 0:t[r][1]}var i5=r5;function o5(e){return Jt(this.__data__,e)>-1}var a5=o5;function l5(e,t){var r=this.__data__,n=Jt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var s5=l5;function Ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ie.prototype.clear=K4;Ie.prototype.delete=n5;Ie.prototype.get=i5;Ie.prototype.has=a5;Ie.prototype.set=s5;var Xt=Ie,u5=Me(B,"Map"),ht=u5;function c5(){this.size=0,this.__data__={hash:new Bo,map:new(ht||Xt),string:new Bo}}var d5=c5;function g5(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p5=g5;function f5(e,t){var r=e.__data__;return p5(t)?r[typeof t=="string"?"string":"hash"]:r.map}var en=f5;function m5(e){var t=en(this,e).delete(e);return this.size-=t?1:0,t}var y5=m5;function b5(e){return en(this,e).get(e)}var h5=b5;function v5(e){return en(this,e).has(e)}var w5=v5;function k5(e,t){var r=en(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var C5=k5;function Ae(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ae.prototype.clear=d5;Ae.prototype.delete=y5;Ae.prototype.get=h5;Ae.prototype.has=w5;Ae.prototype.set=C5;var ya=Ae;function M5(){this.__data__=new Xt,this.size=0}var x5=M5;function I5(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var A5=I5;function E5(e){return this.__data__.get(e)}var S5=E5;function j5(e){return this.__data__.has(e)}var L5=j5,T5=200;function $5(e,t){var r=this.__data__;if(r instanceof Xt){var n=r.__data__;if(!ht||n.length<T5-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ya(n)}return r.set(e,t),this.size=r.size,this}var N5=$5;function wt(e){var t=this.__data__=new Xt(e);this.size=t.size}wt.prototype.clear=x5;wt.prototype.delete=A5;wt.prototype.get=S5;wt.prototype.has=L5;wt.prototype.set=N5;var O5=Object.prototype,LC=O5.propertyIsEnumerable,D5=Me(B,"DataView"),er=D5,_5=Me(B,"Promise"),tr=_5,z5=Me(B,"Set"),nr=z5,Fo="[object Map]",P5="[object Object]",Go="[object Promise]",Ro="[object Set]",qo="[object WeakMap]",Qo="[object DataView]",U5=H(er),V5=H(ht),B5=H(tr),F5=H(nr),G5=H(Xn),ve=vt;(er&&ve(new er(new ArrayBuffer(1)))!=Qo||ht&&ve(new ht)!=Fo||tr&&ve(tr.resolve())!=Go||nr&&ve(new nr)!=Ro||Xn&&ve(new Xn)!=qo)&&(ve=function(e){var t=vt(e),r=t==P5?e.constructor:void 0,n=r?H(r):"";if(n)switch(n){case U5:return Qo;case V5:return Fo;case B5:return Go;case F5:return Ro;case G5:return qo}return t});var TC=B.Uint8Array,R5="__lodash_hash_undefined__";function q5(e){return this.__data__.set(e,R5),this}var Q5=q5;function H5(e){return this.__data__.has(e)}var Y5=H5;function rr(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ya;++t<r;)this.add(e[t])}rr.prototype.add=rr.prototype.push=Q5;rr.prototype.has=Y5;var Ho=Ce?Ce.prototype:void 0,$C=Ho?Ho.valueOf:void 0,Z5=Object.prototype,NC=Z5.hasOwnProperty,W5=Object.prototype,OC=W5.hasOwnProperty,DC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function K5(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ba(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ir(e,t){let r=await ba(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function J5(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return ba(n,t)}function X5(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await rh(2e3),await eh(t,e,r))}async function eh(e,t,r){switch(t.kind){case"image":return th(e,t,r);case"video":return nh(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function th(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await J5(l,r),s=await ir(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
201
+ `,"+")}`}}async function nh(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function rh(e){return new Promise(t=>{setTimeout(t,e)})}var ha=X5;async function ih(e,t,r,n,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await r(d.input),f=zy(),v;if(u){if(v=Hy(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Dy(l,v),c!=null&&n.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(Wt(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=la([...n.output.middleware??[],o.debug?sa():void 0,o.dryRun?ha({kind:n.kind,blockInputs:g}):void 0]),{result:h}=await k(n.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(or(h))throw new Error("Streaming generation is not supported yet from a panel");if(Wt(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await No(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),Wt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await No(f,e,g,h),Wt(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(ke(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Wt(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oh=ih;function ah(e,t,r){let{cesdk:n,provider:a,getInput:o}=t;r.onError!=null&&typeof r.onError=="function"?r.onError(e):(console.error("Generation failed:",e),lh(n,a.output.notification,()=>({input:o?.().input,error:e}))||n.ui.showNotification({type:"error",message:_y(e)}))}function lh(e,t,r){let n=t?.error;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.failed",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var mt=ah;function va(e){return`${e}.generating`}function sh(e){return`${e}.abort`}function uh(e,t,r,n,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(sh(c),()=>{}),f=l.global(va(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=r();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await oh(t.kind,r,n,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;ch(u,C,()=>({input:r().input,output:w.output}))}catch(w){if(ke(w))return;mt(w,{cesdk:u,provider:t,getInput:r},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ch(e,t,r){let n=t?.success;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.success",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:n.duration}),!0}var wa=uh;async function dh(e,t,r,n){let{cesdk:a}=r,{id:o}=e;n.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=Ly(t.document),l=Ko(i,t.inputReference);if(!Ty(l,n.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Jo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Fy(d,p,e,t,r,n);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});wa(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...r,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},n)};return a.ui.registerPanel(Xo(o),c),c}var gh=dh;async function ph(e,t,r,n){let{cesdk:a}=r,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(va(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return wa(u,e,d,g,{...r,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},n),d};return a.ui.registerPanel(Xo(o),l),l}var fh=ph,Kn="@imgly/plugin-ai-generation",mh=`
202
202
  <svg>
203
203
  <symbol
204
204
  fill="none"
@@ -216,7 +216,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
216
216
  fill="none"
217
217
  xmlns="http://www.w3.org/2000/svg"
218
218
  viewBox="0 0 24 24"
219
- id="${Wr}/image"
219
+ id="${Kn}/image"
220
220
  >
221
221
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
222
222
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -228,7 +228,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
228
228
  fill="none"
229
229
  xmlns="http://www.w3.org/2000/svg"
230
230
  viewBox="0 0 24 24"
231
- id="${Wr}/video"
231
+ id="${Kn}/video"
232
232
  >
233
233
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
234
234
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -239,7 +239,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
239
239
  fill="none"
240
240
  xmlns="http://www.w3.org/2000/svg"
241
241
  viewBox="0 0 24 24"
242
- id="${Wr}/audio"
242
+ id="${Kn}/audio"
243
243
  >
244
244
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
245
245
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -259,7 +259,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
259
259
 
260
260
  </symbol>
261
261
  </svg>
262
- `,yh=mh,Yo="ly.img.ai.quickAction.order",gt="ly.img.ai.quickAction.actions";function bh(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Yo}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yo}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${gt}.${t}`))e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{})[n]}}var ka=bh,Kr="ly.img.ai.inference.editMode",Ca="ly.img.ai.inference.metadata";function Ma(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function hh(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function vh({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var wh=vh;function kh({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var Ch=kh;function Mh({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=xh(r.engine,o,e),await a(n,r)}catch(l){throw ke(l)&&i(),l}finally{t&&i()}}}function xh(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Ih=Mh;function Ah(e,t){switch(t.kind){case"text":return Eh(e,t);case"image":return Sh(e,t);case"video":return jh(e,t);case"audio":return Lh(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Eh(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(on(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Sh(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await nn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(on(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),w=await Th(n,m,y),C=await nn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function jh(e,t){throw new Error("Function not implemented.")}async function Lh(e,t){throw new Error("Function not implemented.")}async function Th(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${K5(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Nh=Ah;function $h({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Oh(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw ke(u)&&l(),u}finally{t&&l()}}}function Oh(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Dh=$h;async function _h(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:Kr});let s=new ua(n.engine,Ca);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=la([...o.output.middleware??[],t.debug?sa():void 0,Ch({}),...i.confirmation?[i.lockDuringConfirmation?Ih({editMode:Kr}):Dh({editMode:Kr}),i.confirmation&&wh({})]:[],t.dryRun?ha({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await Nh(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Zo=_h;function zh(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new ua(n.engine,Ca),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(Ma({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=hh(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{mt(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Zo({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw ke(M)||mt(M,{cesdk:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{mt(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Zo({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw ke(C)||mt(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var Ph=zh;async function Uh(e,t,n){await e.initialize?.(t);let r=await Bh(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Vh(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",yh),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Gh(e,o,n)}}function Vh(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Bh(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new Xy(r,e)),r}return n}}async function Gh(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Fh(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Rh(e,e.input.quickActions,t,n)),r}async function Fh(e,t,n,r){switch(t.type){case"custom":return fh(e,t,n,r);case"schema":return gh(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Rh(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=ka(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Ma({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=Ph({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var Wo=Uh,qh="@imgly/plugin-ai-audio-generation-web",pt="ly.img.ai/audio-generation/speech",Kt="ly.img.ai/audio-generation/sound";function Qh(e){return{async initialize({cesdk:t}){if(t==null)return;let n={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${pt}`]:"AI Voice",[`panel.${Kt}`]:"Sound Generation","ly.img.ai.audio-generation.speech.success":"Generation Successful","ly.img.ai.audio-generation.speech.success.action":"Show","ly.img.ai.audio-generation.sound.success":"Sound Generation Successful","ly.img.ai.audio-generation.sound.success.action":"Show"}});let r=e?.text2speech,a=e?.text2sound,o=await r?.({cesdk:t}),i=await a?.({cesdk:t});o!=null&&(o.output.notification={success:{show:()=>!t?.ui.isPanelOpen(pt),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(pt)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Kt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Kt)}}}});let l=o!=null?await Wo(o,{cesdk:t,engine:t.engine},n):void 0,u=i!=null?await Wo(i,{cesdk:t,engine:t.engine},n):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Kt,u.renderBuilderFunctions.panel),l?.renderBuilderFunctions?.panel!=null&&(Hh(t,s=>{t.ui.openPanel(pt),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,s)}),t.ui.registerPanel(pt,l.renderBuilderFunctions.panel))}}}function Hh(e,t){let n=ka(e,"text"),r="generateSpeech";n.registerQuickAction({id:r,version:"1",confirmation:!1,enable:({engine:a})=>{let o=a.block.findAllSelected();if(o.length!==1)return!1;let[i]=o;return a.block.getType(i)==="//ly.img.ubq/text"},render:({builder:a},o)=>{a.Button(r,{icon:"@imgly/Audio",variant:"plain",labelAlignment:"left",label:"AI Voice...",onClick:()=>{let[i]=e.engine.block.findAllSelected(),l=e.engine.block.getString(i,"text/text");t(l),o.closeMenu()}})}}),n.setQuickActionMenuOrder([...n.getQuickActionMenuOrder(),"ly.img.separator",r])}var Yh=Qh,Zh=e=>({name:qh,version:"0.1.4",...Yh(e)}),xa=Zh;var Wh="@imgly/plugin-ai-text-generation",Kh=`
262
+ `,yh=mh,Yo="ly.img.ai.quickAction.order",gt="ly.img.ai.quickAction.actions";function bh(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${Yo}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yo}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${gt}.${t}`))e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${gt}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${gt}.${t}`,{})[r]}}var ka=bh,Jn="ly.img.ai.inference.editMode",Ca="ly.img.ai.inference.metadata";function Ma(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function hh(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,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function vh({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var wh=vh;function kh({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var Ch=kh;function Mh({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=xh(n.engine,o,e),await a(r,n)}catch(l){throw ke(l)&&i(),l}finally{t&&i()}}}function xh(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Ih=Mh;function Ah(e,t){switch(t.kind){case"text":return Eh(e,t);case"image":return Sh(e,t);case"video":return jh(e,t);case"audio":return Lh(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Eh(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(or(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Sh(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await ir(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),k=r.engine.block.getCropTranslationX(o),h=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),b=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,k),r.engine.block.setCropTranslationY(o,h),r.engine.block.setCropRotation(o,p)};if(or(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),w=await Th(r,m,y),C=await ir(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,N=w;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",N):r.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?r.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if(N==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",N)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function jh(e,t){throw new Error("Function not implemented.")}async function Lh(e,t){throw new Error("Function not implemented.")}async function Th(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${K5(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var $h=Ah;function Nh({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=Oh(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw ke(u)&&l(),u}finally{t&&l()}}}function Oh(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var Dh=Nh;async function _h(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:Jn});let s=new ua(r.engine,Ca);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=la([...o.output.middleware??[],t.debug?sa():void 0,Ch({}),...i.confirmation?[i.lockDuringConfirmation?Ih({editMode:Jn}):Dh({editMode:Jn}),i.confirmation&&wh({})]:[],t.dryRun?ha({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:k}=await $h(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Zo=_h;function zh(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new ua(r.engine,Ca),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=n.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=n.getQuickAction(b);if(m==null||!r.feature.isEnabled(Ma({quickActionId:b,quickActionMenuId:n.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=hh(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=n.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{mt(w,{cesdk:r,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Zo({input:w,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw ke(M)||mt(M,{cesdk:r,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{mt(y,{cesdk:r,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Zo({input:y,quickAction:m,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw ke(C)||mt(C,{cesdk:r,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var Ph=zh;async function Uh(e,t,r){await e.initialize?.(t);let n=await Bh(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:Vh(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",yh),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await Fh(e,o,r)}}function Vh(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function Bh(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new Xy(n,e)),n}return r}}async function Fh(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await Gh(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Rh(e,e.input.quickActions,t,r)),n}async function Gh(e,t,r,n){switch(t.type){case"custom":return fh(e,t,r,n);case"schema":return gh(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Rh(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=ka(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(Ma({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=Ph({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var Wo=Uh,qh="@imgly/plugin-ai-audio-generation-web",pt="ly.img.ai/audio-generation/speech",Kt="ly.img.ai/audio-generation/sound";function Qh(e){return{async initialize({cesdk:t}){if(t==null)return;let r={debug:e.debug??!1,dryRun:e.dryRun??!1,middleware:e.middleware};t.setTranslations({en:{[`panel.${pt}`]:"AI Voice",[`panel.${Kt}`]:"Sound Generation","ly.img.ai.audio-generation.speech.success":"Generation Successful","ly.img.ai.audio-generation.speech.success.action":"Show","ly.img.ai.audio-generation.sound.success":"Sound Generation Successful","ly.img.ai.audio-generation.sound.success.action":"Show"}});let n=e?.text2speech,a=e?.text2sound,o=await n?.({cesdk:t}),i=await a?.({cesdk:t});o!=null&&(o.output.notification={success:{show:()=>!t?.ui.isPanelOpen(pt),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(pt)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Kt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Kt)}}}});let l=o!=null?await Wo(o,{cesdk:t,engine:t.engine},r):void 0,u=i!=null?await Wo(i,{cesdk:t,engine:t.engine},r):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Kt,u.renderBuilderFunctions.panel),l?.renderBuilderFunctions?.panel!=null&&(Hh(t,s=>{t.ui.openPanel(pt),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,s)}),t.ui.registerPanel(pt,l.renderBuilderFunctions.panel))}}}function Hh(e,t){let r=ka(e,"text"),n="generateSpeech";r.registerQuickAction({id:n,version:"1",confirmation:!1,enable:({engine:a})=>{let o=a.block.findAllSelected();if(o.length!==1)return!1;let[i]=o;return a.block.getType(i)==="//ly.img.ubq/text"},render:({builder:a},o)=>{a.Button(n,{icon:"@imgly/Audio",variant:"plain",labelAlignment:"left",label:"AI Voice...",onClick:()=>{let[i]=e.engine.block.findAllSelected(),l=e.engine.block.getString(i,"text/text");t(l),o.closeMenu()}})}}),r.setQuickActionMenuOrder([...r.getQuickActionMenuOrder(),"ly.img.separator",n])}var Yh=Qh,Zh=e=>({name:qh,version:"0.1.5",...Yh(e)}),xa=Zh;var Wh="@imgly/plugin-ai-text-generation",Kh=`
263
263
  <svg>
264
264
  <symbol
265
265
  fill="none"
@@ -335,8 +335,8 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
335
335
  <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"/>
336
336
  </symbol>
337
337
  </svg>
338
- `,Jh=Kh;function Ga(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let n=t.substring(2).split("/"),r=e;for(let a of n){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[a]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function Mt(e,t,n=new Set){if(t==null||n.has(t))return t;if(n.add(t),t.$ref&&typeof t.$ref=="string"){let r=Ga(e,t.$ref),a={...Mt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Mt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>Mt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Mt(e,t[a],n));return r}return t}function Xh(e){return Mt(e,{...e})}function e9(e,t=!1){let n=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return n(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return n("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!i.includes(r.type))return n(`Invalid type: ${r.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!i.includes(l))return n(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return n(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return n(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return n(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(r[i]!==void 0){if(!Array.isArray(r[i]))return n(`${i} must be an array, got ${typeof r[i]}`);for(let l=0;l<r[i].length;l++){let u=r[i][l];if(typeof u!="object"||u===null)return n(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return n(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return n(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return n(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(r[i]!==void 0&&typeof r[i]!="number")return n(`${i} must be a number, got ${typeof r[i]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return n(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return n(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return n(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return n(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return n(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return n(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return n(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return n(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return n(`required must be an array, got ${typeof r.required}`);for(let i=0;i<r.required.length;i++){let l=r.required[i];if(typeof l!="string")return n(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function t9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return r9(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function r9(e,t){if(t.orderExtensionKeyword==null)return;let n=[];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,a=r.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&n.push({id:i,schema:l})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Fa=t9,n9="ly.img.ai",ln="ly.img.ai/temp";async function i9(e,t){return e.engine.asset.findAllSources().includes(ln)||e.engine.asset.addLocalSource(ln),e.engine.asset.apply(ln,t)}function Ra(e){return`${n9}/${e}`}function o9(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 n=e;return"message"in n&&typeof n.message=="string"?n.message:"cause"in n&&typeof n.cause=="string"?n.cause:"detail"in n&&typeof n.detail=="object"&&n.detail!==null&&"message"in n.detail&&typeof n.detail.message=="string"?n.detail.message:"error"in n&&typeof n.error=="object"&&n.error!==null&&"message"in n.error&&typeof n.error.message=="string"?n.error.message:t}return typeof e=="string"?e:String(e)||t}function a9(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function l9(e,t=0,n="image/jpeg",r=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(n,r);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function qa(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function hn(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 je(e){return e instanceof Error&&e.name==="AbortError"}function Qa(e,t,n,r,a,o){let i=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?s9(e,t,n,r,a,o):Ya(e,t,n,r,a,o);case"boolean":return Za(e,t,n,r,a,o);case"number":case"integer":return Wa(e,t,n,r,a,o);case"object":return Ha(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return u9(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Ha(e,t,n,r,a,o){let i=Fa(t.schema??{},r).reduce((l,u)=>{let s=Qa(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ya(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=c9(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function s9(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??qa(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Za(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Wa(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function u9(e,t,n,r,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${n.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${n.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??qa(M),icon:C[M]})}):(f[y]=()=>Ya(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Za(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Wa(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>Ha(e,{id:y,schema:{...p,title:m}},n,r,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function c9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var d9=Qa,g9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ka=g9;function p9(e,t,n){switch(t){case"image":return f9(e,n[t]);case"video":return m9(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f9(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function m9(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Ka,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var y9=p9;async function b9(e,t,n,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return h9(e,n[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return v9(e,n[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return w9(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(e,t,n){let r=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:a},payload:{sourceSet:[{uri:n.url,width:r,height:a}]}}}async function v9(e,t,n){let r=t.width,a=t.height,o=await l9(n.url,0);return{id:e,label:t.label,meta:{uri:n.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:a}}}function w9(e,t,n){return{id:e,label:t.label,meta:{uri:n.url,thumbUri:n.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:n.duration.toString()}}}var Ia=b9;function Ja(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return n(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,r,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function k9(){return async(e,t,n)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let r,a=Date.now();try{return r=await n(e,t),r}finally{r!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(r,null,2))),console.groupEnd()}}}var Xa=k9,C9=class{constructor(e,t,n){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=n?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=n?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let n=indexedDB.open(this.dbName,this.dbVersion);n.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},n.onupgradeneeded=r=>{let a=r.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},n.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:n,perPage:r}=e,a=n*r,o=a+r,i=t.slice(a,o),l=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:l,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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let r=new Set;n.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>r.add(i))});let a=[...r];e(a)},n.onerror=()=>{t(new Error(`Failed to get groups: ${n.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),n=t.objectStore(this.assetStoreName),r=new Set;Se(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};n.put(a),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 n=this.db.transaction(this.assetStoreName,"readwrite");n.objectStore(this.assetStoreName).delete(e),n.oncomplete=()=>{Se(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},n.onerror=()=>{console.error(`Failed to remove asset: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}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,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let a=r.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},r.onerror=()=>{n(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,n)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,n)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{n(new Error(`Failed to get blob: ${r.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 n=>{let r=await(await fetch(n)).blob();t[n]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let n=this.db.transaction(this.blobStoreName,"readwrite"),r=n.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};r.put(i)}),n.onerror=()=>{console.error(`Failed to add blobs: ${n.error}`)}}).catch(n=>{console.error("Error initializing database:",n)})}async restoreBlobUrls(e){let t={},n=new Set;return Se(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),Se(e,r=>t[r]??r)}filterAsset(e,t){let{query:n,tags:r,groups:a,excludeGroups:o}=t;if(n&&n.trim()!==""){let i=n.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:n,sortKey:r,sortActiveFirst:a}=t,o=[...e];return!n||n==="None"||(r?o.sort((i,l)=>{let u,s;return r==="id"?(u=i.id,s=l.id):(u=i.meta?.[r]??null,s=l.meta?.[r]??null),u==null?n==="Ascending"?-1:1:s==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?n==="Ascending"?u.localeCompare(s):s.localeCompare(u):n==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function Se(e,t,n=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let a=n?`${n}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],a);typeof o=="string"&&(e[r]=o)}else e[r]=Se(e[r],t,a)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let a=e[r],o=n?`${n}.${r}`:r;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[r]=i)}else e[r]=Se(a,t,o)}return e}var M9=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)}},el=M9,x9=typeof global=="object"&&global&&global.Object===Object&&global,tl=x9,I9=typeof self=="object"&&self&&self.Object===Object&&self,A9=tl||I9||Function("return this")(),G=A9,E9=G.Symbol,Le=E9,rl=Object.prototype,S9=rl.hasOwnProperty,j9=rl.toString,kt=Le?Le.toStringTag:void 0;function L9(e){var t=S9.call(e,kt),n=e[kt];try{e[kt]=void 0;var r=!0}catch{}var a=j9.call(e);return r&&(t?e[kt]=n:delete e[kt]),a}var T9=L9,N9=Object.prototype,$9=N9.toString;function O9(e){return $9.call(e)}var D9=O9,_9="[object Null]",z9="[object Undefined]",Aa=Le?Le.toStringTag:void 0;function P9(e){return e==null?e===void 0?z9:_9:Aa&&Aa in Object(e)?T9(e):D9(e)}var St=P9;function U9(e){return e!=null&&typeof e=="object"}var vn=U9,BC=Array.isArray;function V9(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var nl=V9,B9="[object AsyncFunction]",G9="[object Function]",F9="[object GeneratorFunction]",R9="[object Proxy]";function q9(e){if(!nl(e))return!1;var t=St(e);return t==G9||t==F9||t==B9||t==R9}var Q9=q9,H9=G["__core-js_shared__"],sn=H9,Ea=function(){var e=/[^.]+$/.exec(sn&&sn.keys&&sn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Y9(e){return!!Ea&&Ea in e}var Z9=Y9,W9=Function.prototype,K9=W9.toString;function J9(e){if(e!=null){try{return K9.call(e)}catch{}try{return e+""}catch{}}return""}var Y=J9,X9=/[\\^$.*+?()[\]{}|]/g,e3=/^\[object .+?Constructor\]$/,t3=Function.prototype,r3=Object.prototype,n3=t3.toString,i3=r3.hasOwnProperty,o3=RegExp("^"+n3.call(i3).replace(X9,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a3(e){if(!nl(e)||Z9(e))return!1;var t=Q9(e)?o3:e3;return t.test(Y(e))}var l3=a3;function s3(e,t){return e?.[t]}var u3=s3;function c3(e,t){var n=u3(e,t);return l3(n)?n:void 0}var Te=c3,d3=Te(G,"WeakMap"),gn=d3;function g3(e,t){return e===t||e!==e&&t!==t}var p3=g3,f3=9007199254740991;function m3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f3}var y3=m3,GC=Object.prototype,b3="[object Arguments]";function h3(e){return vn(e)&&St(e)==b3}var Sa=h3,il=Object.prototype,v3=il.hasOwnProperty,w3=il.propertyIsEnumerable,FC=Sa(function(){return arguments}())?Sa:function(e){return vn(e)&&v3.call(e,"callee")&&!w3.call(e,"callee")},ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ja=ol&&typeof module=="object"&&module&&!module.nodeType&&module,k3=ja&&ja.exports===ol,La=k3?G.Buffer:void 0,RC=La?La.isBuffer:void 0,C3="[object Arguments]",M3="[object Array]",x3="[object Boolean]",I3="[object Date]",A3="[object Error]",E3="[object Function]",S3="[object Map]",j3="[object Number]",L3="[object Object]",T3="[object RegExp]",N3="[object Set]",$3="[object String]",O3="[object WeakMap]",D3="[object ArrayBuffer]",_3="[object DataView]",z3="[object Float32Array]",P3="[object Float64Array]",U3="[object Int8Array]",V3="[object Int16Array]",B3="[object Int32Array]",G3="[object Uint8Array]",F3="[object Uint8ClampedArray]",R3="[object Uint16Array]",q3="[object Uint32Array]",L={};L[z3]=L[P3]=L[U3]=L[V3]=L[B3]=L[G3]=L[F3]=L[R3]=L[q3]=!0;L[C3]=L[M3]=L[D3]=L[x3]=L[_3]=L[I3]=L[A3]=L[E3]=L[S3]=L[j3]=L[L3]=L[T3]=L[N3]=L[$3]=L[O3]=!1;function Q3(e){return vn(e)&&y3(e.length)&&!!L[St(e)]}var H3=Q3;function Y3(e){return function(t){return e(t)}}var Z3=Y3,al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,It=al&&typeof module=="object"&&module&&!module.nodeType&&module,W3=It&&It.exports===al,un=W3&&tl.process,K3=function(){try{var e=It&&It.require&&It.require("util").types;return e||un&&un.binding&&un.binding("util")}catch{}}(),Ta=K3,Na=Ta&&Ta.isTypedArray,qC=Na?Z3(Na):H3,J3=Object.prototype,QC=J3.hasOwnProperty;function X3(e,t){return function(n){return e(t(n))}}var e7=X3,HC=e7(Object.keys,Object),t7=Object.prototype,YC=t7.hasOwnProperty,r7=Te(Object,"create"),At=r7;function n7(){this.__data__=At?At(null):{},this.size=0}var i7=n7;function o7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a7=o7,l7="__lodash_hash_undefined__",s7=Object.prototype,u7=s7.hasOwnProperty;function c7(e){var t=this.__data__;if(At){var n=t[e];return n===l7?void 0:n}return u7.call(t,e)?t[e]:void 0}var d7=c7,g7=Object.prototype,p7=g7.hasOwnProperty;function f7(e){var t=this.__data__;return At?t[e]!==void 0:p7.call(t,e)}var m7=f7,y7="__lodash_hash_undefined__";function b7(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=At&&t===void 0?y7:t,this}var h7=b7;function Ne(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ne.prototype.clear=i7;Ne.prototype.delete=a7;Ne.prototype.get=d7;Ne.prototype.has=m7;Ne.prototype.set=h7;var $a=Ne;function v7(){this.__data__=[],this.size=0}var w7=v7;function k7(e,t){for(var n=e.length;n--;)if(p3(e[n][0],t))return n;return-1}var rr=k7,C7=Array.prototype,M7=C7.splice;function x7(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():M7.call(t,n,1),--this.size,!0}var I7=x7;function A7(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var E7=A7;function S7(e){return rr(this.__data__,e)>-1}var j7=S7;function L7(e,t){var n=this.__data__,r=rr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var T7=L7;function $e(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}$e.prototype.clear=w7;$e.prototype.delete=I7;$e.prototype.get=E7;$e.prototype.has=j7;$e.prototype.set=T7;var nr=$e,N7=Te(G,"Map"),Et=N7;function $7(){this.size=0,this.__data__={hash:new $a,map:new(Et||nr),string:new $a}}var O7=$7;function D7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _7=D7;function z7(e,t){var n=e.__data__;return _7(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=z7;function P7(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var U7=P7;function V7(e){return ir(this,e).get(e)}var B7=V7;function G7(e){return ir(this,e).has(e)}var F7=G7;function R7(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var q7=R7;function Oe(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Oe.prototype.clear=O7;Oe.prototype.delete=U7;Oe.prototype.get=B7;Oe.prototype.has=F7;Oe.prototype.set=q7;var ll=Oe;function Q7(){this.__data__=new nr,this.size=0}var H7=Q7;function Y7(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Z7=Y7;function W7(e){return this.__data__.get(e)}var K7=W7;function J7(e){return this.__data__.has(e)}var X7=J7,e8=200;function t8(e,t){var n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!Et||r.length<e8-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ll(r)}return n.set(e,t),this.size=n.size,this}var r8=t8;function jt(e){var t=this.__data__=new nr(e);this.size=t.size}jt.prototype.clear=H7;jt.prototype.delete=Z7;jt.prototype.get=K7;jt.prototype.has=X7;jt.prototype.set=r8;var n8=Object.prototype,ZC=n8.propertyIsEnumerable,i8=Te(G,"DataView"),pn=i8,o8=Te(G,"Promise"),fn=o8,a8=Te(G,"Set"),mn=a8,Oa="[object Map]",l8="[object Object]",Da="[object Promise]",_a="[object Set]",za="[object WeakMap]",Pa="[object DataView]",s8=Y(pn),u8=Y(Et),c8=Y(fn),d8=Y(mn),g8=Y(gn),Ee=St;(pn&&Ee(new pn(new ArrayBuffer(1)))!=Pa||Et&&Ee(new Et)!=Oa||fn&&Ee(fn.resolve())!=Da||mn&&Ee(new mn)!=_a||gn&&Ee(new gn)!=za)&&(Ee=function(e){var t=St(e),n=t==l8?e.constructor:void 0,r=n?Y(n):"";if(r)switch(r){case s8:return Pa;case u8:return Oa;case c8:return Da;case d8:return _a;case g8:return za}return t});var WC=G.Uint8Array,p8="__lodash_hash_undefined__";function f8(e){return this.__data__.set(e,p8),this}var m8=f8;function y8(e){return this.__data__.has(e)}var b8=y8;function yn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ll;++t<n;)this.add(e[t])}yn.prototype.add=yn.prototype.push=m8;yn.prototype.has=b8;var Ua=Le?Le.prototype:void 0,KC=Ua?Ua.valueOf:void 0,h8=Object.prototype,JC=h8.hasOwnProperty,v8=Object.prototype,XC=v8.hasOwnProperty,eM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),rM=new RegExp(/[A-Fa-f0-9]{2}/,"g");function w8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function sl(e,t){if(e.startsWith("buffer:")){let n=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,r),o=new Blob([a],{type:n});return URL.createObjectURL(o)}else return e}async function bn(e,t){let n=await sl(e,t);return new Promise((r,a)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=a,o.src=n})}async function k8(e,t,n){let r,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(r=t.block.getString(a,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=i.uri;if(n?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return sl(r,t)}function C8(e){return async(t,n)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await A8(2e3),await M8(t,e,n))}async function M8(e,t,n){switch(t.kind){case"image":return x8(e,t,n);case"video":return I8(e,t,n);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function x8(e,t,{engine:n}){let r,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)r=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await k8(l,n),s=await bn(u,n);r=s.width,a=s.height}else r=512,a=512;return{kind:"image",url:`https://placehold.co/${r}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
339
- `,"+")}`}}async function I8(e,t,n){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function A8(e){return new Promise(t=>{setTimeout(t,e)})}var ul=C8;async function E8(e,t,n,r,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=a9(),v;if(u){if(v=y9(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await i9(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(tr(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=Ja([...r.output.middleware??[],o.debug?Xa():void 0,o.dryRun?ul({kind:r.kind,blockInputs:g}):void 0]),{result:h}=await k(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(hn(h))throw new Error("Streaming generation is not supported yet from a panel");if(tr(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Ia(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),tr(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Ia(f,e,g,h),tr(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(je(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function tr(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}var S8=E8;function j8(e,t,n){let{cesdk:r,provider:a,getInput:o}=t;n.onError!=null&&typeof n.onError=="function"?n.onError(e):(console.error("Generation failed:",e),L8(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:o9(e)}))}function L8(e,t,n){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var xt=j8;function cl(e){return`${e}.generating`}function T8(e){return`${e}.abort`}function N8(e,t,n,r,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(T8(c),()=>{}),f=l.global(cl(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=n();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await S8(t.kind,n,r,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;$8(u,C,()=>({input:n().input,output:w.output}))}catch(w){if(je(w))return;xt(w,{cesdk:u,provider:t,getInput:n},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function $8(e,t,n){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(n()):r.show))return!1;let a=typeof r.message=="function"?r.message(n()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(n()):r.action.label,onClick:()=>{r?.action?.onClick(n())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:r.duration}),!0}var dl=N8;async function O8(e,t,n,r){let{cesdk:a}=n,{id:o}=e;r.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=Xh(t.document),l=Ga(i,t.inputReference);if(!e9(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Fa(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=d9(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});dl(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Ra(o),c),c}var D8=O8;async function _8(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(cl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return dl(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Ra(o),l),l}var z8=_8,cn="@imgly/plugin-ai-generation",P8=`
338
+ `,Jh=Kh;function Fa(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),n=e;for(let a of r){if(n==null)throw new Error(`Invalid reference path: ${t}`);n=n[a]}if(n===void 0)throw new Error(`Reference not found: ${t}`);return n}function Mt(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let n=Fa(e,t.$ref),a={...Mt(e,n,r)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=Mt(e,t[o],r));return a}if(Array.isArray(t))return t.map(n=>Mt(e,n,r));if(typeof t=="object"){let n={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=Mt(e,t[a],r));return n}return t}function Xh(e){return Mt(e,{...e})}function e9(e,t=!1){let r=i=>(t&&console.log(`OpenAPI Schema validation failed: ${i}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let n=e;if(!(typeof n.type=="string"||Array.isArray(n.enum)||typeof n.properties=="object"||typeof n.items=="object"||typeof n.allOf=="object"||typeof n.anyOf=="object"||typeof n.oneOf=="object"||typeof n.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(n.type!==void 0){let i=["string","number","integer","boolean","array","object","null"];if(typeof n.type=="string"){if(!i.includes(n.type))return r(`Invalid type: ${n.type}. Must be one of ${i.join(", ")}`)}else if(Array.isArray(n.type)){for(let l of n.type)if(typeof l!="string"||!i.includes(l))return r(`Array of types contains invalid value: ${l}. Must be one of ${i.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof n.type}`)}if(n.items!==void 0&&(typeof n.items!="object"||n.items===null))return r(`Items must be an object, got ${n.items===null?"null":typeof n.items}`);if(n.properties!==void 0&&(typeof n.properties!="object"||n.properties===null))return r(`Properties must be an object, got ${n.properties===null?"null":typeof n.properties}`);let a=["allOf","anyOf","oneOf"];for(let i of a)if(n[i]!==void 0){if(!Array.isArray(n[i]))return r(`${i} must be an array, got ${typeof n[i]}`);for(let l=0;l<n[i].length;l++){let u=n[i][l];if(typeof u!="object"||u===null)return r(`Item ${l} in ${i} must be an object, got ${u===null?"null":typeof u}`)}}if(n.not!==void 0&&(typeof n.not!="object"||n.not===null))return r(`'not' must be an object, got ${n.not===null?"null":typeof n.not}`);if(n.additionalProperties!==void 0&&typeof n.additionalProperties!="boolean"&&(typeof n.additionalProperties!="object"||n.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${n.additionalProperties===null?"null":typeof n.additionalProperties}`);if(n.format!==void 0&&typeof n.format!="string")return r(`format must be a string, got ${typeof n.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let i of o)if(n[i]!==void 0&&typeof n[i]!="number")return r(`${i} must be a number, got ${typeof n[i]}`);if(n.minLength!==void 0&&(typeof n.minLength!="number"||n.minLength<0))return r(`minLength must be a non-negative number, got ${typeof n.minLength=="number"?n.minLength:typeof n.minLength}`);if(n.maxLength!==void 0&&(typeof n.maxLength!="number"||n.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof n.maxLength=="number"?n.maxLength:typeof n.maxLength}`);if(n.pattern!==void 0&&typeof n.pattern!="string")return r(`pattern must be a string, got ${typeof n.pattern}`);if(n.minItems!==void 0&&(typeof n.minItems!="number"||n.minItems<0))return r(`minItems must be a non-negative number, got ${typeof n.minItems=="number"?n.minItems:typeof n.minItems}`);if(n.maxItems!==void 0&&(typeof n.maxItems!="number"||n.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof n.maxItems=="number"?n.maxItems:typeof n.maxItems}`);if(n.uniqueItems!==void 0&&typeof n.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof n.uniqueItems}`);if(n.minProperties!==void 0&&(typeof n.minProperties!="number"||n.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof n.minProperties=="number"?n.minProperties:typeof n.minProperties}`);if(n.maxProperties!==void 0&&(typeof n.maxProperties!="number"||n.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof n.maxProperties=="number"?n.maxProperties:typeof n.maxProperties}`);if(n.required!==void 0){if(!Array.isArray(n.required))return r(`required must be an array, got ${typeof n.required}`);for(let i=0;i<n.required.length;i++){let l=n.required[i];if(typeof l!="string")return r(`Item ${i} in required array must be a string, got ${typeof l}`)}}return!0}function t9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=[];return n9(e,t)??(Object.entries(e.properties).forEach(n=>{let a=n[0],o=n[1];r.push({id:a,schema:o})}),r)}function n9(e,t){if(t.orderExtensionKeyword==null)return;let r=[];if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let n=typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword,a=n.find(i=>i in e);if(a==null)return;let o=e[a];if(o==null||Array.isArray(o)===!1)throw new Error(`Extension keyword ${a} must be an array of strings`);if([...new Set(o)].forEach(i=>{let l=e.properties?.[i];l!=null&&r.push({id:i,schema:l})}),r.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${n.join(", ")}`);return r}var Ga=t9,r9="ly.img.ai",lr="ly.img.ai/temp";async function i9(e,t){return e.engine.asset.findAllSources().includes(lr)||e.engine.asset.addLocalSource(lr),e.engine.asset.apply(lr,t)}function Ra(e){return`${r9}/${e}`}function o9(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 a9(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function l9(e,t=0,r="image/jpeg",n=.8){return new Promise((a,o)=>{try{let i=document.createElement("video");i.crossOrigin="anonymous",i.style.display="none",i.addEventListener("loadedmetadata",()=>{i.currentTime=Math.min(t,i.duration),i.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=i.videoWidth,l.height=i.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,l.width,l.height);try{let s=l.toDataURL(r,n);document.body.removeChild(i),a(s)}catch(s){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),i.addEventListener("error",()=>{document.body.removeChild(i),o(new Error(`Failed to load video from ${e}`))}),i.src=e,document.body.appendChild(i)}catch(i){o(i)}})}function qa(e){return e?e.replace(/[_-]/g," ").replace(/([A-Z])/g," $1").trim().split(" ").filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" "):""}function hr(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 je(e){return e instanceof Error&&e.name==="AbortError"}function Qa(e,t,r,n,a,o){let i=t.schema.type;if(n.renderCustomProperty!=null&&n.renderCustomProperty[t.id]!=null)return n.renderCustomProperty[t.id](e,t);switch(i){case"string":return t.schema.enum!=null?s9(e,t,r,n,a,o):Ya(e,t,r,n,a,o);case"boolean":return Za(e,t,r,n,a,o);case"number":case"integer":return Wa(e,t,r,n,a,o);case"object":return Ha(e,t,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return u9(e,t,r,n,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Ha(e,t,r,n,a,o){let i=Ga(t.schema??{},n).reduce((l,u)=>{let s=Qa(e,u,r,n,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ya(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=l(s,t.schema.default??""),g=c9(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](s,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function s9(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.enum!=null&&"x-imgly-enum-labels"in t.schema.enum&&typeof t.schema.enum["x-imgly-enum-labels"]=="object"?t.schema.enum["x-imgly-enum-labels"]:"x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},g="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{},f=(t.schema.enum??[]).map(h=>({id:h,label:d[h]??qa(h),icon:g[h]})),v=t.schema.default!=null?f.find(h=>h.id===t.schema.default)??f[0]:f[0],k=l(s,v);return i.Select(s,{inputLabel:c,values:f,...k}),()=>({id:t.id,type:"string",value:k.value.id})}function Za(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=!!t.schema.default,g=l(s,d);return i.Checkbox(s,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Wa(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(d!=null?f=d:g!=null?f=g:f=0);let v=l(s,f);if(d!=null&&g!=null){let k=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(k=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:k,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function u9(e,t,r,n,a,o){let{builder:i,experimental:{global:l}}=e,{id:u}=t,s=`${r.id}.${u}`,c=t.schema.title??s,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let m=p.title??"common.custom",y=`${r.id}.${u}.anyOf[${b}]`,w="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},C="x-imgly-enum-icons"in t.schema&&typeof t.schema["x-imgly-enum-icons"]=="object"?t.schema["x-imgly-enum-icons"]:{};p.type==="string"?p.enum!=null?p.enum.forEach(M=>{g.push({id:M,label:w[M]??qa(M),icon:C[M]})}):(f[y]=()=>Ya(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="boolean"?(f[y]=()=>Za(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="integer"?(f[y]=()=>Wa(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]})):p.type==="array"||p.type==="object"&&(f[y]=()=>Ha(e,{id:y,schema:{...p,title:m}},r,n,a,o),g.push({id:y,label:w[m]??m,icon:C[m]}))});let k=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,k);if(i.Select(s,{inputLabel:c,values:g,...h}),h.value.id in f){let p=f[h.value.id]();v[h.value.id]=p}return()=>{let p=v[h.value.id];return p!=null?{...p(),id:t.id}:{id:t.id,type:"string",value:h.value.id}}}function c9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var d9=Qa,g9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ka=g9;function p9(e,t,r){switch(t){case"image":return f9(e,r[t]);case"video":return m9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f9(e,t){let r=t.width,n=t.height;return{id:e,meta:{previewUri:Ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n}}}function m9(e,t){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{previewUri:Ka,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}var y9=p9;async function b9(e,t,r,n){switch(t){case"image":{if(n.kind!=="image")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: image)`);return h9(e,r[t],n)}case"video":{if(n.kind!=="video")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: video)`);return v9(e,r[t],n)}case"audio":{if(n.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${n.kind} (expected: audio)`);return w9(e,r[t],n)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(e,t,r){let n=t.width,a=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:a},payload:{sourceSet:[{uri:r.url,width:n,height:a}]}}}async function v9(e,t,r){let n=t.width,a=t.height,o=await l9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:a}}}function w9(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()}}}var Ia=b9;function Ja(e){let t=e.filter(r=>!!r);return r=>async(n,a)=>{let o=[],i=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return r(c,d);let g=t[s],f=async(k,h)=>l(s+1,k,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await l(0,n,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function k9(){return async(e,t,r)=>{console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(e,null,2));let n,a=Date.now();try{return n=await r(e,t),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Xa=k9,C9=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=n=>{t(new Error(`Failed to open IndexedDB: ${n.target.error}`))},r.onupgradeneeded=n=>{let a=n.target.result;a.objectStoreNames.contains(this.assetStoreName)||a.createObjectStore(this.assetStoreName,{keyPath:"id"}),a.objectStoreNames.contains(this.blobStoreName)||a.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=n=>{this.db=n.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((u,s)=>{let c=e.locale??"en",d="",g=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(g=s.tags[c]);let f={...s,label:d,tags:g};return this.filterAsset(f,e)&&u.push(f),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:n}=e,a=r*n,o=a+n,i=t.slice(a,o),l=o<t.length?r+1:void 0;return{assets:i,currentPage:r,nextPage:l,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 n=new Set;r.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(i=>n.add(i))});let a=[...n];e(a)},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),n=new Set;Se(e,o=>{n.add(o)}),setTimeout(()=>{this.storeBlobUrls([...n])});let a={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(a),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=()=>{Se(t,n=>{this.removeBlob(n)}),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 n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();n.onsuccess=()=>{let a=n.result;a.sort((o,i)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(a)},n.onerror=()=>{r(new Error(`Failed to get assets: ${n.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let n=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let n=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);n.onsuccess=()=>{t(n.result)},n.onerror=()=>{r(new Error(`Failed to get blob: ${n.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 n=await(await fetch(r)).blob();t[r]=n})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),n=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([a,o])=>{let i={id:a,blob:o};n.put(i)}),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 Se(e,n=>{r.add(n)}),await Promise.all([...r].map(async n=>{let a=await this.createBlobUrlFromStore(n);t[n]=a})),Se(e,n=>t[n]??n)}filterAsset(e,t){let{query:r,tags:n,groups:a,excludeGroups:o}=t;if(r&&r.trim()!==""){let i=r.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!i.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(n){let i=Array.isArray(n)?n:[n];if(i.length>0&&(!e.tags||!i.every(l=>e.tags?.includes(l))))return!1}return!(a&&a.length>0&&(!e.groups||!a.some(i=>e.groups?.includes(i)))||o&&o.length>0&&e.groups&&e.groups.some(i=>o.includes(i)))}sortAssets(e,t){let{sortingOrder:r,sortKey:n,sortActiveFirst:a}=t,o=[...e];return!r||r==="None"||(n?o.sort((i,l)=>{let u,s;return n==="id"?(u=i.id,s=l.id):(u=i.meta?.[n]??null,s=l.meta?.[n]??null),u==null?r==="Ascending"?-1:1:s==null?r==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?r==="Ascending"?u.localeCompare(s):s.localeCompare(u):r==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):r==="Descending"&&o.reverse(),a&&o.sort((i,l)=>i.active&&!l.active?-1:!i.active&&l.active?1:0)),o}};function Se(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let n=0;n<e.length;n++){let a=r?`${r}[${n}]`:`[${n}]`;if(typeof e[n]=="string"&&e[n].startsWith("blob:")){let o=t(e[n],a);typeof o=="string"&&(e[n]=o)}else e[n]=Se(e[n],t,a)}return e}for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let a=e[n],o=r?`${r}.${n}`:n;if(typeof a=="string"&&a.startsWith("blob:")){let i=t(a,o);typeof i=="string"&&(e[n]=i)}else e[n]=Se(a,t,o)}return e}var M9=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)}},el=M9,x9=typeof global=="object"&&global&&global.Object===Object&&global,tl=x9,I9=typeof self=="object"&&self&&self.Object===Object&&self,A9=tl||I9||Function("return this")(),F=A9,E9=F.Symbol,Le=E9,nl=Object.prototype,S9=nl.hasOwnProperty,j9=nl.toString,kt=Le?Le.toStringTag:void 0;function L9(e){var t=S9.call(e,kt),r=e[kt];try{e[kt]=void 0;var n=!0}catch{}var a=j9.call(e);return n&&(t?e[kt]=r:delete e[kt]),a}var T9=L9,$9=Object.prototype,N9=$9.toString;function O9(e){return N9.call(e)}var D9=O9,_9="[object Null]",z9="[object Undefined]",Aa=Le?Le.toStringTag:void 0;function P9(e){return e==null?e===void 0?z9:_9:Aa&&Aa in Object(e)?T9(e):D9(e)}var St=P9;function U9(e){return e!=null&&typeof e=="object"}var vr=U9,BC=Array.isArray;function V9(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var rl=V9,B9="[object AsyncFunction]",F9="[object Function]",G9="[object GeneratorFunction]",R9="[object Proxy]";function q9(e){if(!rl(e))return!1;var t=St(e);return t==F9||t==G9||t==B9||t==R9}var Q9=q9,H9=F["__core-js_shared__"],sr=H9,Ea=function(){var e=/[^.]+$/.exec(sr&&sr.keys&&sr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Y9(e){return!!Ea&&Ea in e}var Z9=Y9,W9=Function.prototype,K9=W9.toString;function J9(e){if(e!=null){try{return K9.call(e)}catch{}try{return e+""}catch{}}return""}var Y=J9,X9=/[\\^$.*+?()[\]{}|]/g,e3=/^\[object .+?Constructor\]$/,t3=Function.prototype,n3=Object.prototype,r3=t3.toString,i3=n3.hasOwnProperty,o3=RegExp("^"+r3.call(i3).replace(X9,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function a3(e){if(!rl(e)||Z9(e))return!1;var t=Q9(e)?o3:e3;return t.test(Y(e))}var l3=a3;function s3(e,t){return e?.[t]}var u3=s3;function c3(e,t){var r=u3(e,t);return l3(r)?r:void 0}var Te=c3,d3=Te(F,"WeakMap"),gr=d3;function g3(e,t){return e===t||e!==e&&t!==t}var p3=g3,f3=9007199254740991;function m3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=f3}var y3=m3,FC=Object.prototype,b3="[object Arguments]";function h3(e){return vr(e)&&St(e)==b3}var Sa=h3,il=Object.prototype,v3=il.hasOwnProperty,w3=il.propertyIsEnumerable,GC=Sa(function(){return arguments}())?Sa:function(e){return vr(e)&&v3.call(e,"callee")&&!w3.call(e,"callee")},ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ja=ol&&typeof module=="object"&&module&&!module.nodeType&&module,k3=ja&&ja.exports===ol,La=k3?F.Buffer:void 0,RC=La?La.isBuffer:void 0,C3="[object Arguments]",M3="[object Array]",x3="[object Boolean]",I3="[object Date]",A3="[object Error]",E3="[object Function]",S3="[object Map]",j3="[object Number]",L3="[object Object]",T3="[object RegExp]",$3="[object Set]",N3="[object String]",O3="[object WeakMap]",D3="[object ArrayBuffer]",_3="[object DataView]",z3="[object Float32Array]",P3="[object Float64Array]",U3="[object Int8Array]",V3="[object Int16Array]",B3="[object Int32Array]",F3="[object Uint8Array]",G3="[object Uint8ClampedArray]",R3="[object Uint16Array]",q3="[object Uint32Array]",L={};L[z3]=L[P3]=L[U3]=L[V3]=L[B3]=L[F3]=L[G3]=L[R3]=L[q3]=!0;L[C3]=L[M3]=L[D3]=L[x3]=L[_3]=L[I3]=L[A3]=L[E3]=L[S3]=L[j3]=L[L3]=L[T3]=L[$3]=L[N3]=L[O3]=!1;function Q3(e){return vr(e)&&y3(e.length)&&!!L[St(e)]}var H3=Q3;function Y3(e){return function(t){return e(t)}}var Z3=Y3,al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,It=al&&typeof module=="object"&&module&&!module.nodeType&&module,W3=It&&It.exports===al,ur=W3&&tl.process,K3=function(){try{var e=It&&It.require&&It.require("util").types;return e||ur&&ur.binding&&ur.binding("util")}catch{}}(),Ta=K3,$a=Ta&&Ta.isTypedArray,qC=$a?Z3($a):H3,J3=Object.prototype,QC=J3.hasOwnProperty;function X3(e,t){return function(r){return e(t(r))}}var e7=X3,HC=e7(Object.keys,Object),t7=Object.prototype,YC=t7.hasOwnProperty,n7=Te(Object,"create"),At=n7;function r7(){this.__data__=At?At(null):{},this.size=0}var i7=r7;function o7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var a7=o7,l7="__lodash_hash_undefined__",s7=Object.prototype,u7=s7.hasOwnProperty;function c7(e){var t=this.__data__;if(At){var r=t[e];return r===l7?void 0:r}return u7.call(t,e)?t[e]:void 0}var d7=c7,g7=Object.prototype,p7=g7.hasOwnProperty;function f7(e){var t=this.__data__;return At?t[e]!==void 0:p7.call(t,e)}var m7=f7,y7="__lodash_hash_undefined__";function b7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=At&&t===void 0?y7:t,this}var h7=b7;function $e(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}$e.prototype.clear=i7;$e.prototype.delete=a7;$e.prototype.get=d7;$e.prototype.has=m7;$e.prototype.set=h7;var Na=$e;function v7(){this.__data__=[],this.size=0}var w7=v7;function k7(e,t){for(var r=e.length;r--;)if(p3(e[r][0],t))return r;return-1}var nn=k7,C7=Array.prototype,M7=C7.splice;function x7(e){var t=this.__data__,r=nn(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():M7.call(t,r,1),--this.size,!0}var I7=x7;function A7(e){var t=this.__data__,r=nn(t,e);return r<0?void 0:t[r][1]}var E7=A7;function S7(e){return nn(this.__data__,e)>-1}var j7=S7;function L7(e,t){var r=this.__data__,n=nn(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var T7=L7;function Ne(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ne.prototype.clear=w7;Ne.prototype.delete=I7;Ne.prototype.get=E7;Ne.prototype.has=j7;Ne.prototype.set=T7;var rn=Ne,$7=Te(F,"Map"),Et=$7;function N7(){this.size=0,this.__data__={hash:new Na,map:new(Et||rn),string:new Na}}var O7=N7;function D7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _7=D7;function z7(e,t){var r=e.__data__;return _7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var on=z7;function P7(e){var t=on(this,e).delete(e);return this.size-=t?1:0,t}var U7=P7;function V7(e){return on(this,e).get(e)}var B7=V7;function F7(e){return on(this,e).has(e)}var G7=F7;function R7(e,t){var r=on(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var q7=R7;function Oe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Oe.prototype.clear=O7;Oe.prototype.delete=U7;Oe.prototype.get=B7;Oe.prototype.has=G7;Oe.prototype.set=q7;var ll=Oe;function Q7(){this.__data__=new rn,this.size=0}var H7=Q7;function Y7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z7=Y7;function W7(e){return this.__data__.get(e)}var K7=W7;function J7(e){return this.__data__.has(e)}var X7=J7,e8=200;function t8(e,t){var r=this.__data__;if(r instanceof rn){var n=r.__data__;if(!Et||n.length<e8-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ll(n)}return r.set(e,t),this.size=r.size,this}var n8=t8;function jt(e){var t=this.__data__=new rn(e);this.size=t.size}jt.prototype.clear=H7;jt.prototype.delete=Z7;jt.prototype.get=K7;jt.prototype.has=X7;jt.prototype.set=n8;var r8=Object.prototype,ZC=r8.propertyIsEnumerable,i8=Te(F,"DataView"),pr=i8,o8=Te(F,"Promise"),fr=o8,a8=Te(F,"Set"),mr=a8,Oa="[object Map]",l8="[object Object]",Da="[object Promise]",_a="[object Set]",za="[object WeakMap]",Pa="[object DataView]",s8=Y(pr),u8=Y(Et),c8=Y(fr),d8=Y(mr),g8=Y(gr),Ee=St;(pr&&Ee(new pr(new ArrayBuffer(1)))!=Pa||Et&&Ee(new Et)!=Oa||fr&&Ee(fr.resolve())!=Da||mr&&Ee(new mr)!=_a||gr&&Ee(new gr)!=za)&&(Ee=function(e){var t=St(e),r=t==l8?e.constructor:void 0,n=r?Y(r):"";if(n)switch(n){case s8:return Pa;case u8:return Oa;case c8:return Da;case d8:return _a;case g8:return za}return t});var WC=F.Uint8Array,p8="__lodash_hash_undefined__";function f8(e){return this.__data__.set(e,p8),this}var m8=f8;function y8(e){return this.__data__.has(e)}var b8=y8;function yr(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ll;++t<r;)this.add(e[t])}yr.prototype.add=yr.prototype.push=m8;yr.prototype.has=b8;var Ua=Le?Le.prototype:void 0,KC=Ua?Ua.valueOf:void 0,h8=Object.prototype,JC=h8.hasOwnProperty,v8=Object.prototype,XC=v8.hasOwnProperty,eM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),nM=new RegExp(/[A-Fa-f0-9]{2}/,"g");function w8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function sl(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),n=t.editor.getBufferLength(e),a=t.editor.getBufferData(e,0,n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function br(e,t){let r=await sl(e,t);return new Promise((n,a)=>{let o=new Image;o.onload=()=>{n({width:o.width,height:o.height})},o.onerror=a,o.src=r})}async function k8(e,t,r){let n,a=t.block.getFill(e),o=t.block.getSourceSet(a,"fill/image/sourceSet"),[i]=o;if(i==null){if(n=t.block.getString(a,"fill/image/imageFileURI"),n==null)throw new Error("No image source/uri found")}else n=i.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(n)==="image/svg+xml")throw new Error("SVG images are not supported");return sl(n,t)}function C8(e){return async(t,r)=>(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await A8(2e3),await M8(t,e,r))}async function M8(e,t,r){switch(t.kind){case"image":return x8(e,t,r);case"video":return I8(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function x8(e,t,{engine:r}){let n,a,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",i=o.match(/(\d+)x(\d+)/);if(i!=null)n=parseInt(i[1],10),a=parseInt(i[2],10);else if(t.blockInputs!=null&&(n=t.blockInputs.image.width,a=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await k8(l,r),s=await br(u,r);n=s.width,a=s.height}else n=512,a=512;return{kind:"image",url:`https://placehold.co/${n}x${a}/000000/FFF?text=${o.replace(" ","+").replace(`
339
+ `,"+")}`}}async function I8(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function A8(e){return new Promise(t=>{setTimeout(t,e)})}var ul=C8;async function E8(e,t,r,n,a,o,i){let{cesdk:l,createPlaceholderBlock:u,historyAssetSourceId:s}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await r(d.input),f=a9(),v;if(u){if(v=y9(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await i9(l,v),c!=null&&n.kind==="video"){let b=l.engine.block.getPositionX(c),m=l.engine.block.getPositionY(c),y=l.engine.block.duplicate(c);l.engine.block.setPositionX(y,b),l.engine.block.setPositionY(y,m),l.engine.block.destroy(c),c=y}if(tn(l,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");l.engine.block.setState(c,{type:"Pending",progress:0})}let k=Ja([...n.output.middleware??[],o.debug?Xa():void 0,o.dryRun?ul({kind:n.kind,blockInputs:g}):void 0]),{result:h}=await k(n.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l});if(hr(h))throw new Error("Streaming generation is not supported yet from a panel");if(tn(l,i,c))return{status:"aborted"};if(h==null)throw new Error("Generation failed");o.debug&&console.log("Generated output:",JSON.stringify(h,void 0,2));let p;if(c!=null&&l.engine.block.isValid(c)&&(p=await Ia(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await l.engine.asset.defaultApplyAssetToBlock(p,c)),tn(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await Ia(f,e,g,h),tn(l,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};l.engine.asset.addAssetToSource(s,b)}return c!=null&&l.engine.block.isValid(c)&&l.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&l.engine.block.isValid(c)&&(je(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function tn(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var S8=E8;function j8(e,t,r){let{cesdk:n,provider:a,getInput:o}=t;r.onError!=null&&typeof r.onError=="function"?r.onError(e):(console.error("Generation failed:",e),L8(n,a.output.notification,()=>({input:o?.().input,error:e}))||n.ui.showNotification({type:"error",message:o9(e)}))}function L8(e,t,r){let n=t?.error;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.failed",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:a,action:o}),!0}var xt=j8;function cl(e){return`${e}.generating`}function T8(e){return`${e}.abort`}function $8(e,t,r,n,a,o){let{builder:i,experimental:l}=e,{cesdk:u,includeHistoryLibrary:s=!0}=a,{id:c,output:{abortable:d}}=t,g=l.global(T8(c),()=>{}),f=l.global(cl(c),!1),v,k=f.value&&d,h=()=>{k&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let m=r();p=a.requiredInputs.every(y=>!m.input[y])}let b=l.global(`${c}.confirmationDialogId`,void 0);i.Section(`${c}.generate.section`,{children:()=>{i.Button(`${c}.generate`,{label:["common.ai-generation.generate",`panel.${c}.generate`],isLoading:f.value,color:"accent",isDisabled:p,suffix:k?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let m=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{u.ui.closeDialog(y),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{h(),u.ui.closeDialog(y),b.setValue(void 0)}}});b.setValue(m)}}:void 0,onClick:async()=>{v=new AbortController;let m=v.signal,y=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let w=await S8(t.kind,r,n,t,a,o,m);if(w.status==="aborted")return;let C=t.output.notification;N8(u,C,()=>({input:r().input,output:w.output}))}catch(w){if(je(w))return;xt(w,{cesdk:u,provider:t,getInput:r},o)}finally{v=void 0,f.setValue(!1),g.setValue(()=>{}),b.value!=null&&(u.ui.closeDialog(b.value),b.setValue(void 0))}};o.middleware!=null?await o.middleware(y,{provider:t,abort:h}):await y()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),s&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function N8(e,t,r){let n=t?.success;if(n==null||!(typeof n.show=="function"?n.show(r()):n.show))return!1;let a=typeof n.message=="function"?n.message(r()):n.message??"common.ai-generation.success",o=n.action!=null?{label:typeof n.action.label=="function"?n.action.label(r()):n.action.label,onClick:()=>{n?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:a,action:o,duration:n.duration}),!0}var dl=$8;async function O8(e,t,r,n){let{cesdk:a}=r,{id:o}=e;n.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let i=Xh(t.document),l=Fa(i,t.inputReference);if(!e9(l,n.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Ga(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=d9(d,p,e,t,r,n);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),k=p=>p.type==="object"?Object.entries(p.value).reduce((b,[m,y])=>(b[m]=k(y),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=k(b),p),{});dl(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...r,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},n)};return a.ui.registerPanel(Ra(o),c),c}var D8=O8;async function _8(e,t,r,n){let{cesdk:a}=r,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(cl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return dl(u,e,d,g,{...r,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},n),d};return a.ui.registerPanel(Ra(o),l),l}var z8=_8,cr="@imgly/plugin-ai-generation",P8=`
340
340
  <svg>
341
341
  <symbol
342
342
  fill="none"
@@ -354,7 +354,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
354
354
  fill="none"
355
355
  xmlns="http://www.w3.org/2000/svg"
356
356
  viewBox="0 0 24 24"
357
- id="${cn}/image"
357
+ id="${cr}/image"
358
358
  >
359
359
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
360
360
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -366,7 +366,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
366
366
  fill="none"
367
367
  xmlns="http://www.w3.org/2000/svg"
368
368
  viewBox="0 0 24 24"
369
- id="${cn}/video"
369
+ id="${cr}/video"
370
370
  >
371
371
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
372
372
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -377,7 +377,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
377
377
  fill="none"
378
378
  xmlns="http://www.w3.org/2000/svg"
379
379
  viewBox="0 0 24 24"
380
- id="${cn}/audio"
380
+ id="${cr}/audio"
381
381
  >
382
382
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
383
383
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -397,7 +397,7 @@ var Ul="ly.img.ai";function _t(e){return`${Ul}/${e}`}var Vl=typeof global=="obje
397
397
 
398
398
  </symbol>
399
399
  </svg>
400
- `,U8=P8,Va="ly.img.ai.quickAction.order",Ct="ly.img.ai.quickAction.actions";function V8(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Va}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Va}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ct}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{})[n]}}var gl=V8,dn="ly.img.ai.inference.editMode",pl="ly.img.ai.inference.metadata";function fl(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function B8(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((n,r)=>(r==="ly.img.separator"&&n.length>0&&n[n.length-1]==="ly.img.separator"||n.push(r),n),[])}function G8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},l=e||t?r.blockIds??r.engine.block.findAllSelected():[];return l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=r.engine.block.isClipped(s),r.engine.block.setClipped(s,!1))}}),r.addDisposer(async()=>{l.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let s=r.engine.block.getParent(u);s!=null&&r.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&r.engine.block.setClipped(s,i[s])}})}),await a(n,r)}}var F8=G8;function R8({pending:e=!0}){return async(t,n,r)=>{let a=e?n.blockIds??n.engine.block.findAllSelected():[];try{return a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Pending",progress:0})}),await r(t,n)}finally{a.forEach(o=>{n.engine.block.isValid(o)&&n.engine.block.setState(o,{type:"Ready"})})}}}var q8=R8;function Q8({editMode:e,automaticallyUnlock:t=!1}){return async(n,r,a)=>{let o=r.blockIds??r.engine.block.findAllSelected(),i=()=>{};t||r.addDisposer(async()=>{i?.()});try{return i=H8(r.engine,o,e),await a(n,r)}catch(l){throw je(l)&&i(),l}finally{t&&i()}}}function H8(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&e.editor.setEditMode(n)}),s=e.block.onSelectionChanged(l);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Y8=Q8;function Z8(e,t){switch(t.kind){case"text":return W8(e,t);case"image":return K8(e,t);case"video":return J8(e,t);case"audio":return X8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function W8(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(hn(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function K8(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,i=n.engine.block.getFill(o),l=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??s),d=await bn(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=n.engine.block.getCropScaleX(o),v=n.engine.block.getCropScaleY(o),k=n.engine.block.getCropTranslationX(o),h=n.engine.block.getCropTranslationY(o),p=n.engine.block.getCropRotation(o),b=()=>{n.engine.block.setCropScaleX(o,f),n.engine.block.setCropScaleY(o,v),n.engine.block.setCropTranslationX(o,k),n.engine.block.setCropTranslationY(o,h),n.engine.block.setCropRotation(o,p)};if(hn(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await n.engine.editor.getMimeType(m),w=await e6(n,m,y),C=await bn(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,$=w;I==null?n.engine.block.setString(i,"fill/image/imageFileURI",$):n.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?n.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",s)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if($==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",$)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?n.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function J8(e,t){throw new Error("Function not implemented.")}async function X8(e,t){throw new Error("Function not implemented.")}async function e6(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${w8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var t6=Z8;function r6({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=n6(a.engine,i,e);let u=await o(r,a);if(n){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw je(u)&&l(),u}finally{t&&l()}}}function n6(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==n&&r()&&e.editor.setEditMode(n)}),o=e.block.onSelectionChanged(()=>{r()?e.editor.setEditMode(n):e.editor.setEditMode("Transform")});return r()&&e.editor.setEditMode(n),()=>{o(),a(),e.editor.setEditMode("Transform")}}var i6=r6;async function o6(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([l],{editMode:dn});let s=new el(n.engine,pl);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ja([...o.output.middleware??[],t.debug?Xa():void 0,q8({}),...i.confirmation?[i.lockDuringConfirmation?Y8({editMode:dn}):i6({editMode:dn}),i.confirmation&&F8({})]:[],t.dryRun?ul({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:k}=await t6(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Ba=o6;function a6(e,t){let{cesdk:n,quickActionMenu:r,provider:a}=e,o=`ly.img.ai.${r.id}`,i=`${o}.confirmation`;n.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new el(n.engine,pl),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),n.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return n.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=r.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=r.getQuickAction(b);if(m==null||!n.feature.isEnabled(fl({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=B8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=r.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{xt(w,{cesdk:n,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Ba({input:w,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw je(M)||xt(M,{cesdk:n,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{xt(y,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Ba({input:y,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw je(C)||xt(C,{cesdk:n,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var l6=a6;async function s6(e,t,n){await e.initialize?.(t);let r=await c6(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=r?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:r,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&r!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[r],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:u6(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",U8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await d6(e,o,n)}}function u6(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function c6(e,t,n){if(!(n==null||n===!1)){if(n==="@imgly/local"){let r=`${t}.history`;return e.asset.addLocalSource(r),r}if(n==="@imgly/indexedDB"){let r=`${t}.history`;return e.asset.addSource(new C9(r,e)),r}return n}}async function d6(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await g6(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),p6(e,e.input.quickActions,t,n)),r}async function g6(e,t,n,r){switch(t.type){case"custom":return z8(e,t,n,r);case"schema":return D8(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function p6(e,t,n,r){let{cesdk:a}=n,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=gl(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(fl({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),r.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=l6({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)})}var f6=s6,m6="@imgly/plugin-ai-text-generation-web",y6=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});f6(n,{cesdk:t,engine:t.engine},{debug:e.debug??!1,dryRun:!1});let r=gl(t,"text");r.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...r.getQuickActionMenuOrder()]),t.ui.addIconSet(Wh,Jh),t.setTranslations({en:{"ly.img.ai.inference.apply":"Apply","ly.img.ai.inference.cancel":"Cancel","ly.img.ai.inference.improve":"Improve Writing","ly.img.ai.inference.improve.processing":"Improving Writing...","ly.img.ai.inference.fix":"Fix Spelling & Grammar","ly.img.ai.inference.fix.processing":"Fixing spelling & grammar...","ly.img.ai.inference.longer":"Make Longer","ly.img.ai.inference.longer.processing":"Making longer...","ly.img.ai.inference.shorter":"Make Shorter","ly.img.ai.inference.shorter.processing":"Making shorter...","ly.img.ai.inference.changeTone":"Change Tone","ly.img.ai.inference.changeTone.processing":"Changing tone...","ly.img.ai.inference.changeTone.type.professional":"Professional","ly.img.ai.inference.changeTone.type.casual":"Casual","ly.img.ai.inference.changeTone.type.friendly":"Friendly","ly.img.ai.inference.changeTone.type.serious":"Serious","ly.img.ai.inference.changeTone.type.humorous":"Humorous","ly.img.ai.inference.changeTone.type.optimistic":"Optimistic","ly.img.ai.inference.translate":"Translate","ly.img.ai.inference.translate.processing":"Translating...","ly.img.ai.inference.changeTextTo":"Change Text to...","ly.img.ai.inference.changeTextTo.processing":"Changing text..."}})}}),b6=e=>({name:m6,version:"0.1.4",...y6(e)}),ml=b6;var En=class{constructor(e,t,n){this.id=e,this.cesdk=t,this.assetSourceIds=n}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),n=await Promise.all(t),r=[];n.forEach(c=>{c?.assets&&(r=r.concat(c.assets))}),r.sort((c,d)=>{let g=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:a,perPage:o}=e,i=a*o,l=i+o,u=r.slice(i,l),s=l<r.length?a+1:void 0;return{assets:u,currentPage:a,nextPage:s,total:r.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(r=>this.cesdk.engine.asset.getGroups(r)),t=await Promise.all(e),n=new Set;return t.forEach(r=>{r.forEach(a=>n.add(a))}),Array.from(n)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}};var h6=typeof global=="object"&&global&&global.Object===Object&&global,Ll=h6,v6=typeof self=="object"&&self&&self.Object===Object&&self,w6=Ll||v6||Function("return this")(),F=w6,k6=F.Symbol,_e=k6,Tl=Object.prototype,C6=Tl.hasOwnProperty,M6=Tl.toString,Lt=_e?_e.toStringTag:void 0;function x6(e){var t=C6.call(e,Lt),n=e[Lt];try{e[Lt]=void 0;var r=!0}catch{}var a=M6.call(e);return r&&(t?e[Lt]=n:delete e[Lt]),a}var I6=x6,A6=Object.prototype,E6=A6.toString;function S6(e){return E6.call(e)}var j6=S6,L6="[object Null]",T6="[object Undefined]",yl=_e?_e.toStringTag:void 0;function N6(e){return e==null?e===void 0?T6:L6:yl&&yl in Object(e)?I6(e):j6(e)}var Ot=N6;function $6(e){return e!=null&&typeof e=="object"}var Sn=$6,aM=Array.isArray;function O6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Nl=O6,D6="[object AsyncFunction]",_6="[object Function]",z6="[object GeneratorFunction]",P6="[object Proxy]";function U6(e){if(!Nl(e))return!1;var t=Ot(e);return t==_6||t==z6||t==D6||t==P6}var V6=U6,B6=F["__core-js_shared__"],wn=B6,bl=function(){var e=/[^.]+$/.exec(wn&&wn.keys&&wn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function G6(e){return!!bl&&bl in e}var F6=G6,R6=Function.prototype,q6=R6.toString;function Q6(e){if(e!=null){try{return q6.call(e)}catch{}try{return e+""}catch{}}return""}var Z=Q6,H6=/[\\^$.*+?()[\]{}|]/g,Y6=/^\[object .+?Constructor\]$/,Z6=Function.prototype,W6=Object.prototype,K6=Z6.toString,J6=W6.hasOwnProperty,X6=RegExp("^"+K6.call(J6).replace(H6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ev(e){if(!Nl(e)||F6(e))return!1;var t=V6(e)?X6:Y6;return t.test(Z(e))}var tv=ev;function rv(e,t){return e?.[t]}var nv=rv;function iv(e,t){var n=nv(e,t);return tv(n)?n:void 0}var ze=iv,ov=ze(F,"WeakMap"),Cn=ov;function av(e,t){return e===t||e!==e&&t!==t}var lv=av,sv=9007199254740991;function uv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sv}var cv=uv;var lM=Object.prototype;var dv="[object Arguments]";function gv(e){return Sn(e)&&Ot(e)==dv}var hl=gv,$l=Object.prototype,pv=$l.hasOwnProperty,fv=$l.propertyIsEnumerable,sM=hl(function(){return arguments}())?hl:function(e){return Sn(e)&&pv.call(e,"callee")&&!fv.call(e,"callee")};var Ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Ol&&typeof module=="object"&&module&&!module.nodeType&&module,mv=vl&&vl.exports===Ol,wl=mv?F.Buffer:void 0,uM=wl?wl.isBuffer:void 0;var yv="[object Arguments]",bv="[object Array]",hv="[object Boolean]",vv="[object Date]",wv="[object Error]",kv="[object Function]",Cv="[object Map]",Mv="[object Number]",xv="[object Object]",Iv="[object RegExp]",Av="[object Set]",Ev="[object String]",Sv="[object WeakMap]",jv="[object ArrayBuffer]",Lv="[object DataView]",Tv="[object Float32Array]",Nv="[object Float64Array]",$v="[object Int8Array]",Ov="[object Int16Array]",Dv="[object Int32Array]",_v="[object Uint8Array]",zv="[object Uint8ClampedArray]",Pv="[object Uint16Array]",Uv="[object Uint32Array]",T={};T[Tv]=T[Nv]=T[$v]=T[Ov]=T[Dv]=T[_v]=T[zv]=T[Pv]=T[Uv]=!0;T[yv]=T[bv]=T[jv]=T[hv]=T[Lv]=T[vv]=T[wv]=T[kv]=T[Cv]=T[Mv]=T[xv]=T[Iv]=T[Av]=T[Ev]=T[Sv]=!1;function Vv(e){return Sn(e)&&cv(e.length)&&!!T[Ot(e)]}var Bv=Vv;function Gv(e){return function(t){return e(t)}}var Fv=Gv,Dl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Dl&&typeof module=="object"&&module&&!module.nodeType&&module,Rv=Tt&&Tt.exports===Dl,kn=Rv&&Ll.process,qv=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||kn&&kn.binding&&kn.binding("util")}catch{}}(),kl=qv,Cl=kl&&kl.isTypedArray,cM=Cl?Fv(Cl):Bv;var Qv=Object.prototype,dM=Qv.hasOwnProperty;function Hv(e,t){return function(n){return e(t(n))}}var Yv=Hv,gM=Yv(Object.keys,Object);var Zv=Object.prototype,pM=Zv.hasOwnProperty;var Wv=ze(Object,"create"),Nt=Wv;function Kv(){this.__data__=Nt?Nt(null):{},this.size=0}var Jv=Kv;function Xv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ew=Xv,tw="__lodash_hash_undefined__",rw=Object.prototype,nw=rw.hasOwnProperty;function iw(e){var t=this.__data__;if(Nt){var n=t[e];return n===tw?void 0:n}return nw.call(t,e)?t[e]:void 0}var ow=iw,aw=Object.prototype,lw=aw.hasOwnProperty;function sw(e){var t=this.__data__;return Nt?t[e]!==void 0:lw.call(t,e)}var uw=sw,cw="__lodash_hash_undefined__";function dw(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Nt&&t===void 0?cw:t,this}var gw=dw;function Pe(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Pe.prototype.clear=Jv;Pe.prototype.delete=ew;Pe.prototype.get=ow;Pe.prototype.has=uw;Pe.prototype.set=gw;var Ml=Pe;function pw(){this.__data__=[],this.size=0}var fw=pw;function mw(e,t){for(var n=e.length;n--;)if(lv(e[n][0],t))return n;return-1}var or=mw,yw=Array.prototype,bw=yw.splice;function hw(e){var t=this.__data__,n=or(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():bw.call(t,n,1),--this.size,!0}var vw=hw;function ww(e){var t=this.__data__,n=or(t,e);return n<0?void 0:t[n][1]}var kw=ww;function Cw(e){return or(this.__data__,e)>-1}var Mw=Cw;function xw(e,t){var n=this.__data__,r=or(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Iw=xw;function Ue(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ue.prototype.clear=fw;Ue.prototype.delete=vw;Ue.prototype.get=kw;Ue.prototype.has=Mw;Ue.prototype.set=Iw;var ar=Ue,Aw=ze(F,"Map"),$t=Aw;function Ew(){this.size=0,this.__data__={hash:new Ml,map:new($t||ar),string:new Ml}}var Sw=Ew;function jw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Lw=jw;function Tw(e,t){var n=e.__data__;return Lw(t)?n[typeof t=="string"?"string":"hash"]:n.map}var lr=Tw;function Nw(e){var t=lr(this,e).delete(e);return this.size-=t?1:0,t}var $w=Nw;function Ow(e){return lr(this,e).get(e)}var Dw=Ow;function _w(e){return lr(this,e).has(e)}var zw=_w;function Pw(e,t){var n=lr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Uw=Pw;function Ve(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Ve.prototype.clear=Sw;Ve.prototype.delete=$w;Ve.prototype.get=Dw;Ve.prototype.has=zw;Ve.prototype.set=Uw;var _l=Ve;function Vw(){this.__data__=new ar,this.size=0}var Bw=Vw;function Gw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Fw=Gw;function Rw(e){return this.__data__.get(e)}var qw=Rw;function Qw(e){return this.__data__.has(e)}var Hw=Qw,Yw=200;function Zw(e,t){var n=this.__data__;if(n instanceof ar){var r=n.__data__;if(!$t||r.length<Yw-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new _l(r)}return n.set(e,t),this.size=n.size,this}var Ww=Zw;function Dt(e){var t=this.__data__=new ar(e);this.size=t.size}Dt.prototype.clear=Bw;Dt.prototype.delete=Fw;Dt.prototype.get=qw;Dt.prototype.has=Hw;Dt.prototype.set=Ww;var Kw=Object.prototype,fM=Kw.propertyIsEnumerable;var Jw=ze(F,"DataView"),Mn=Jw,Xw=ze(F,"Promise"),xn=Xw,ek=ze(F,"Set"),In=ek,xl="[object Map]",tk="[object Object]",Il="[object Promise]",Al="[object Set]",El="[object WeakMap]",Sl="[object DataView]",rk=Z(Mn),nk=Z($t),ik=Z(xn),ok=Z(In),ak=Z(Cn),De=Ot;(Mn&&De(new Mn(new ArrayBuffer(1)))!=Sl||$t&&De(new $t)!=xl||xn&&De(xn.resolve())!=Il||In&&De(new In)!=Al||Cn&&De(new Cn)!=El)&&(De=function(e){var t=Ot(e),n=t==tk?e.constructor:void 0,r=n?Z(n):"";if(r)switch(r){case rk:return Sl;case nk:return xl;case ik:return Il;case ok:return Al;case ak:return El}return t});var mM=F.Uint8Array;var lk="__lodash_hash_undefined__";function sk(e){return this.__data__.set(e,lk),this}var uk=sk;function ck(e){return this.__data__.has(e)}var dk=ck;function An(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new _l;++t<n;)this.add(e[t])}An.prototype.add=An.prototype.push=uk;An.prototype.has=dk;var jl=_e?_e.prototype:void 0,yM=jl?jl.valueOf:void 0;var gk=Object.prototype,bM=gk.hasOwnProperty;var pk=Object.prototype,hM=pk.hasOwnProperty;var vM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kM=new RegExp(/[A-Fa-f0-9]{2}/,"g");var jn=class{constructor(t,n,r=[]){this.id=t,this.assets=[...r],this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=n}async findAssets(t){let{page:n,perPage:r,locale:a="en",sortActiveFirst:o,query:i,tags:l,groups:u,excludeGroups:s,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(m=>m.groups&&u.some(y=>m.groups?.includes(y)))),s&&s.length>0&&(g=g.filter(m=>!m.groups||!s.some(y=>m.groups?.includes(y)))),i){let m=i.toLowerCase();g=g.filter(y=>{let w=y.label?.[a]?.toLowerCase(),C=y.tags?.[a]||[];return w&&w.includes(m)||C.some(M=>M.toLowerCase().includes(m))})}if(l&&l.length>0){let m=Array.isArray(l)?l:[l];g=g.filter(y=>{let w=y.tags?.[a]||[];return m.some(C=>w.includes(C))})}o&&g.sort((m,y)=>{let w=this.activeAssetIds.has(m.id),C=this.activeAssetIds.has(y.id);return w&&!C?-1:!w&&C?1:0}),d&&d!=="id"?g.sort((m,y)=>{let w=m.meta?.[d],C=y.meta?.[d];return w===void 0?1:C===void 0?-1:typeof w=="string"&&typeof C=="string"?c==="Descending"?C.localeCompare(w):w.localeCompare(C):typeof w=="number"&&typeof C=="number"?c==="Descending"?C-w:w-C:0}):d==="id"&&g.sort((m,y)=>c==="Descending"?y.id.localeCompare(m.id):m.id.localeCompare(y.id));let f=g.length,v=n*r,k=v+r,p=g.slice(v,k).map(m=>({id:m.id,groups:m.groups,meta:m.meta,payload:m.payload,locale:a,label:m.label?.[a],tags:m.tags?.[a],active:this.activeAssetIds.has(m.id)})),b=k<f?n+1:void 0;return{assets:p,currentPage:n,nextPage:b,total:f}}updateLabel(t,n,r){this.assets.forEach(a=>{a.id===t&&(a.label=a.label||{},a.label[r]=n(a.label[r]))})}getLabel(t,n){let r=this.assets.find(a=>a.id===t);if(r!=null)return r.label?.[n]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,n){if(n){let r=this.getLabel(t,"en")??"",a=fk(o=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${o} ${r}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>r,"en"),a()}}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){let n=this.assets.findIndex(r=>r.id===t.id);n>=0?this.assets[n]=t:this.assets.push(t)}removeAsset(t){let n=this.assets.findIndex(r=>r.id===t);n!==-1&&(this.assets.splice(n,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.assets.forEach(n=>{n.groups&&n.groups.forEach(r=>t.add(r))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function zl(e,t,n=[]){return new jn(e,t,n)}function fk(e,t=200){let n=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],r=0,a=setInterval(()=>{let o=n[r];r=(r+1)%n.length,e(o)||clearInterval(a)},t);return()=>{clearInterval(a)}}var Ln="ly.img.ai.apps";var N=_t("apps"),sr=512,ur=128,Pl=e=>({async initialize({cesdk:t}){if(t==null)return;let n=t.engine.scene.getMode()==="Video",{providers:r,baseURL:a="https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"}=e,{activeAssetSource:o}=await mk(t,{isVideoMode:n,baseURL:a,debug:e.debug}),i=await W(t,o,r.text2text),l=await W(t,o,r.text2image),u=await W(t,o,r.image2image),s,c,d,g;n&&(s=await W(t,o,r.text2video),c=await W(t,o,r.image2video),d=await W(t,o,r.text2speech),g=await W(t,o,r.text2sound),t.addPlugin(No({text2video:s,image2video:c,debug:e.debug,dryRun:e.dryRun})),t.addPlugin(xa({text2speech:d,text2sound:g,debug:e.debug,dryRun:e.dryRun}))),i!=null&&t.addPlugin(ml({provider:i,debug:e.debug})),t.addPlugin(Bi({text2image:l,image2image:u,debug:e.debug,dryRun:e.dryRun})),bk(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},n),hk(t)}});async function W(e,t,n){if(n==null)return;let r=await n({cesdk:e});if(t!=null){let a=async(o,i,l)=>{let u=`${r.kind}-generation`;r.kind==="audio"&&(r.id.includes("sound")?u="audio-generation/sound":r.id.includes("speech")&&(u="audio-generation/speech")),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(N);try{return await l(o,i)}finally{e.engine.asset.assetSourceContentsChanged(N),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${N}.isGenerating`,!1)}};r.output.middleware=[...r.output.middleware??[],a]}return()=>Promise.resolve(r)}async function mk(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;yk(e);let o;n&&(o=zl(N,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:sr,height:ur}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:sr,height:ur}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:sr,height:ur}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:sr,height:ur}}]),e.engine.asset.addSource(o),e.ui.registerPanel(N,({builder:l})=>{l.Library(N,{entries:[N],onSelect:async u=>{e.ui.openPanel(_t(u.id))}})}),e.ui.addAssetLibraryEntry({id:N,sourceIds:[N],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:l})=>l,cardLabelPosition:()=>"inside"}));let i=`${N}.dock`;return n?(r&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=e.ui.isPanelOpen(N),c=u.global(`${N}.isGenerating`,!1);l.Button(`${N}.dock.button`,{label:"AI",isSelected:s,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!s&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),s?e.ui.closePanel(N):e.ui.openPanel(N)}})})):e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=_t("image-generation"),c=u.global(`${N}.isGenerating`,!1),d=e.ui.isPanelOpen(s);l.Button(`${N}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(s):e.ui.openPanel(s)}})}),{activeAssetSource:o}}function yk(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:n,payload:r})=>{let a="\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(!r||r.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${a}`);return}let{id:o,key:i,label:l,icon:u,entries:s}=r;if(s==null||!Array.isArray(s)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(s.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}l!=null&&typeof l!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=n.scene.getMode(),d=s.filter(h=>{let p=e.ui.getAssetLibraryEntry(h);return p==null?!1:p.sceneMode!=null?p.sceneMode===c:!0});if(d.length===0)return;let g=l;g==null&&(g=`libraries.${o}.label`);let f=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),v=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),k=u;k==null&&d.length===1&&(k=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:k,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===N||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function bk(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new En("ly.img.ai/image-generation.history",e,[r!=null?`${r.id}.history`:void 0,a!=null?`${a?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(o);let i=e.ui.getAssetLibraryEntry("ly.img.image");if(i!=null&&e.ui.updateAssetLibraryEntry("ly.img.image",{sourceIds:[...i.sourceIds,"ly.img.ai/image-generation.history"]}),!n)return;let l=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),s=new En("ly.img.ai/video-generation.history",e,[l!=null?`${l.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(s);let c=e.ui.getAssetLibraryEntry("ly.img.video");c!=null&&e.ui.updateAssetLibraryEntry("ly.img.video",{sourceIds:[...c.sourceIds,"ly.img.ai/video-generation.history"]});let d=await t.text2speech?.({cesdk:e}),g=await t.text2sound?.({cesdk:e}),f=e.ui.getAssetLibraryEntry("ly.img.audio"),v=[d!=null?`${d.id}.history`:void 0,g!=null?`${g.id}.history`:void 0].filter(Boolean);f!=null&&e.ui.updateAssetLibraryEntry("ly.img.audio",{sourceIds:[...f.sourceIds,...v]})}function hk(e){e.i18n.setTranslations({en:{"panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai/apps":"AI","panel.ly.img.ai/fal-ai/gemini-flash-edit.imageSelection":"Select Image To Change","panel.gpt-image-1.imageSelection":"Select Image To Change","panel.ly.img.ai/elevenlabs":"AI Voice","panel.ly.img.ai/demo.video":"Generate Video","panel.ly.img.ai/demo.image":"Generate Image","panel.fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.fal-ai/gemini-flash-edit.imageSelection":"Select Image To Generate","libraries.ly.img.ai/fal-ai/recraft-v3.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/gemini-flash-edit.history.label":"Generated From Image","libraries.ly.img.ai/fal-ai/pixverse/v3.5/text-to-video.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.history.label":"Generated From Image","libraries.elevenlabs/monolingual/v1.history.label":"AI Voice","libraries.elevenlabs/sound-generation.history.label":"Generated Sound","libraries.ly.img.ai/image-generation.history.label":"AI Generated Images","libraries.ly.img.ai/video-generation.history.label":"AI Generated Videos"}})}var vk=e=>({name:Ln,version:"0.1.4",...Pl(e)}),VM=vk;export{VM as default};
400
+ `,U8=P8,Va="ly.img.ai.quickAction.order",Ct="ly.img.ai.quickAction.actions";function V8(e,t){return{id:t,setQuickActionMenuOrder:r=>{e.ui.experimental.setGlobalStateValue(`${Va}.${t}`,r)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Va}.${t}`,[]),registerQuickAction:r=>{if(!e.ui.experimental.hasGlobalStateValue(`${Ct}.${t}`))e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{[r.id]:r});else{let n=e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${Ct}.${t}`,{...n,[r.id]:r})}},getQuickAction:r=>e.ui.experimental.getGlobalStateValue(`${Ct}.${t}`,{})[r]}}var gl=V8,dr="ly.img.ai.inference.editMode",pl="ly.img.ai.inference.metadata";function fl(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function B8(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,n)=>(n==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(n),r),[])}function F8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(r,n,a)=>{let o={},i={},l=e||t?n.blockIds??n.engine.block.findAllSelected():[];return l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&(o[u]=n.engine.block.isAlwaysOnTop(u),n.engine.block.setAlwaysOnTop(u,!0)),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&(i[s]=n.engine.block.isClipped(s),n.engine.block.setClipped(s,!1))}}),n.addDisposer(async()=>{l.forEach(u=>{if(n.engine.block.isValid(u)&&e&&n.engine.block.setAlwaysOnTop(u,o[u]),t){let s=n.engine.block.getParent(u);s!=null&&n.engine.block.getType(s)!=="//ly.img.ubq/scene"&&i[s]!=null&&n.engine.block.setClipped(s,i[s])}})}),await a(r,n)}}var G8=F8;function R8({pending:e=!0}){return async(t,r,n)=>{let a=e?r.blockIds??r.engine.block.findAllSelected():[];try{return a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Pending",progress:0})}),await n(t,r)}finally{a.forEach(o=>{r.engine.block.isValid(o)&&r.engine.block.setState(o,{type:"Ready"})})}}}var q8=R8;function Q8({editMode:e,automaticallyUnlock:t=!1}){return async(r,n,a)=>{let o=n.blockIds??n.engine.block.findAllSelected(),i=()=>{};t||n.addDisposer(async()=>{i?.()});try{return i=H8(n.engine,o,e),await a(r,n)}catch(l){throw je(l)&&i(),l}finally{t&&i()}}}function H8(e,t,r){let n=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();l(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(r);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function l(){e.block.findAllSelected().forEach(c=>{t.includes(c)||e.block.setSelected(c,!1)}),t.forEach(c=>{e.block.setSelected(c,!0)})}let u=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&e.editor.setEditMode(r)}),s=e.block.onSelectionChanged(l);return()=>{n!=null&&e.editor.setGlobalScope("editor/select",n),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),s(),u()}}var Y8=Q8;function Z8(e,t){switch(t.kind){case"text":return W8(e,t);case"image":return K8(e,t);case"video":return J8(e,t);case"audio":return X8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function W8(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t,o=n.map(s=>r.engine.block.getString(s,"text/text")),i;if(hr(e)){let s="";for await(let c of e){if(a.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),n.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),i={kind:"text",text:s}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",i.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function K8(e,t){let{cesdk:r,blockIds:n,abortSignal:a}=t;if(n.length!==1)throw new Error("Only one block is supported for image generation");let[o]=n,i=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=r.engine.block.getString(i,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??s),d=await br(u?.uri??s,t.cesdk.engine),g=d.width/d.height;if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(o),v=r.engine.block.getCropScaleY(o),k=r.engine.block.getCropTranslationX(o),h=r.engine.block.getCropTranslationY(o),p=r.engine.block.getCropRotation(o),b=()=>{r.engine.block.setCropScaleX(o,f),r.engine.block.setCropScaleY(o,v),r.engine.block.setCropTranslationX(o,k),r.engine.block.setCropTranslationY(o,h),r.engine.block.setCropRotation(o,p)};if(hr(e))throw new Error("Streaming generation is not supported yet from a panel");if(e.kind!=="image"||typeof e.url!="string")throw new Error("Output kind from generation is not an image");let m=e.url,y=await r.engine.editor.getMimeType(m),w=await e6(r,m,y),C=await br(w,t.cesdk.engine),M=C.width/C.height,x=Math.abs(g-M)>.001,I=u?[{uri:w,width:u.width,height:u.height}]:void 0,N=w;I==null?r.engine.block.setString(i,"fill/image/imageFileURI",N):r.engine.block.setSourceSet(i,"fill/image/sourceSet",I),x?r.engine.block.setContentFillMode(o,"Cover"):b();let O=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",l);b()},D=()=>{if(I==null){if(N==null)throw new Error("No image URI found");r.engine.block.setString(i,"fill/image/imageFileURI",N)}else r.engine.block.setSourceSet(i,"fill/image/sourceSet",I);x?r.engine.block.setContentFillMode(o,"Cover"):b()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:O,onAfter:D,onCancel:()=>{O()},onApply:()=>{D(),t.cesdk.engine.editor.addUndoStep()}}}}async function J8(e,t){throw new Error("Function not implemented.")}async function X8(e,t){throw new Error("Function not implemented.")}async function e6(e,t,r){let n=await(await fetch(t)).blob(),a=new File([n],`image.${w8(r)}`,{type:r}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var t6=Z8;function n6({editMode:e,automaticallyUnlock:t=!1,showNotification:r=!0}){return async(n,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),l=()=>{};t||a.addDisposer(async()=>{l?.()});try{l=r6(a.engine,i,e);let u=await o(n,a);if(r){let s=a.engine.block.findAllSelected();i.some(c=>s.includes(c))||a.cesdk?.ui.showNotification({type:"success",message:"AI generation complete",action:{label:"Select",onClick:()=>{i.forEach(c=>{a.engine.block.select(c)})}}})}return u}catch(u){throw je(u)&&l(),u}finally{t&&l()}}}function r6(e,t,r){function n(){let i=e.block.findAllSelected();return t.some(l=>i.includes(l))}let a=e.editor.onStateChanged(()=>{e.editor.getEditMode()!==r&&n()&&e.editor.setEditMode(r)}),o=e.block.onSelectionChanged(()=>{n()?e.editor.setEditMode(r):e.editor.setEditMode("Transform")});return n()&&e.editor.setEditMode(r),()=>{o(),a(),e.editor.setEditMode("Transform")}}var i6=n6;async function o6(e,t){let{cesdk:r,input:n,blockIds:a,provider:o,quickAction:i,confirmationComponentId:l,abortSignal:u}=e;i.confirmation&&r.ui.setCanvasMenuOrder([l],{editMode:dr});let s=new el(r.engine,pl);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:r,engine:r.engine,abortSignal:u},d=Ja([...o.output.middleware??[],t.debug?Xa():void 0,q8({}),...i.confirmation?[i.lockDuringConfirmation?Y8({editMode:dr}):i6({editMode:dr}),i.confirmation&&G8({})]:[],t.dryRun?ul({kind:o.kind,blockIds:a}):void 0]),{result:g,dispose:f}=await d(o.output.generate)(n,c),{consumedGenerationResult:v,applyCallbacks:k}=await t6(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:r});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):(k.onApply(),a.forEach(p=>{s.clear(p)}));let h=()=>{f(),a.forEach(p=>{s.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:k}}var Ba=o6;function a6(e,t){let{cesdk:r,quickActionMenu:n,provider:a}=e,o=`ly.img.ai.${n.id}`,i=`${o}.confirmation`;r.setTranslations({en:{[`${i}.apply`]:"Apply",[`${i}.before`]:"Before",[`${i}.after`]:"After",[`${o}.cancel`]:"Cancel",[`${o}.processing`]:"Generating..."}});let l=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},s=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};r.ui.registerComponent(l,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let k=new el(r.engine,pl),h=k.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{k.clear(b)})};switch(h.status){case"processing":{d.Button(`${o}.spinner`,{label:[`ly.img.ai.inference.${h.quickActionId}.processing`,`${o}.cancel`],isLoading:!0}),d.Separator(`${o}.separator`),d.Button(`${o}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.abort(),p()}});break}case"confirmation":{let b=f(`${i}.comparing`,"after"),m=u.applyCallbacks?.onCancel;m!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),m(),p()}});let y=u.applyCallbacks?.onBefore,w=u.applyCallbacks?.onAfter;y!=null&&w!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{y(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{w(),b.setValue("after")}})}});let C=u.applyCallbacks?.onApply;C!=null&&d.Button(`${i}.apply`,{icon:"@imgly/Checkmark",tooltip:`${i}.apply`,color:"accent",isDisabled:b.value!=="after",onClick:()=>{u.unlock(),p(),r.engine.editor._update(),C()}});break}default:}});let c=`${o}.canvasMenu`;return r.ui.registerComponent(c,d=>{let g=d.engine.block.findAllSelected(),f=n.getQuickActionMenuOrder().map(b=>{if(b==="ly.img.separator")return b;let m=n.getQuickAction(b);if(m==null||!r.feature.isEnabled(fl({quickActionId:b,quickActionMenuId:n.id}),{engine:d.engine}))return null;let y=m.scopes;return y!=null&&y.length>0&&!g.every(w=>y.every(C=>d.engine.block.isAllowedByScope(w,C)))?null:m}).filter(b=>b!=null);if(f=B8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:k,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);k.builder.Popover(`${o}.popover`,{icon:"@imgly/Sparkle",variant:"plain",trailingIcon:null,children:({close:b})=>{v.Section(`${o}.popover.section`,{children:()=>{if(p.value!=null){let m=p.value,y=n.getQuickAction(m);if(y!=null&&y.renderExpanded!=null){y.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:w=>{xt(w,{cesdk:r,provider:a},t)},generate:async(w,C)=>{try{let{returnValue:M,applyCallbacks:x,dispose:I}=await Ba({input:w,quickAction:y,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=I,u.applyCallbacks=x,M}catch(M){throw je(M)||xt(M,{cesdk:r,provider:a},t),M}}});return}}k.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(m=>{m==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):m.render(d,{blockIds:g,closeMenu:b,handleGenerationError:y=>{xt(y,{cesdk:r,provider:a},t)},toggleExpand:()=>{p.setValue(m.id)},generate:async(y,w)=>{try{let{returnValue:C,applyCallbacks:M,dispose:x}=await Ba({input:y,quickAction:m,quickActionMenu:n,provider:a,cesdk:r,abortSignal:s(),blockIds:w?.blockIds??g,confirmationComponentId:l},t);return u.unlock=x,u.applyCallbacks=M,C}catch(C){throw je(C)||xt(C,{cesdk:r,provider:a},t),C}}})})}})}})}})}),{canvasMenuComponentId:c}}var l6=a6;async function s6(e,t,r){await e.initialize?.(t);let n=await c6(t.engine,e.id,e.output.history??"@imgly/local");if(t.cesdk==null)return{};let a=n?`${e.id}.history.entry`:void 0,o={...t,cesdk:t.cesdk,historyAssetSourceId:n,historyAssetLibraryEntryId:a,i18n:{prompt:"common.ai-generation.prompt.placeholder"}};a!=null&&n!=null&&t.cesdk.ui.addAssetLibraryEntry({id:a,sourceIds:[n],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),t.cesdk.i18n.setTranslations({en:{"common.ai-generation.success":"Generation Successful","common.ai-generation.failed":"Generation Failed","common.ai-generation.generate":"Generate","common.ai-generation.prompt.placeholder":"Describe what you want to create...",[`panel.${e.id}`]:u6(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",U8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await d6(e,o,r)}}function u6(e){if(e.name!=null)return e.name;switch(e.kind){case"image":return"Generate Image";case"video":return"Generate Video";case"audio":return"Generate Audio";default:return"Generate Asset"}}async function c6(e,t,r){if(!(r==null||r===!1)){if(r==="@imgly/local"){let n=`${t}.history`;return e.asset.addLocalSource(n),n}if(r==="@imgly/indexedDB"){let n=`${t}.history`;return e.asset.addSource(new C9(n,e)),n}return r}}async function d6(e,t,r){let n={panel:void 0};return e.input?.panel!=null&&(n.panel=await g6(e,e.input.panel,t,r)),e.input?.quickActions!=null&&(r.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),p6(e,e.input.quickActions,t,r)),n}async function g6(e,t,r,n){switch(t.type){case"custom":return z8(e,t,r,n);case"schema":return D8(e,t,r,n);default:n.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function p6(e,t,r,n){let{cesdk:a}=r,o={};t.actions.forEach(i=>{let l=i.kind??e.kind;o[l]==null&&(o[l]=gl(a,l));let u=o[l],s=i.enable??!0;a.feature.enable(fl({quickActionId:i.id,quickActionMenuId:l}),s),u.registerQuickAction(i),n.debug&&console.log(`Registered quick action: '${i.id}' (v${i.version}) to menu '${l}'`)}),Object.values(o).forEach(i=>{let{canvasMenuComponentId:l}=l6({cesdk:a,quickActionMenu:i,provider:e},n);n.debug&&console.log(`Registered quick action menu component: ${l}`)})}var f6=s6,m6="@imgly/plugin-ai-text-generation-web",y6=e=>({async initialize({cesdk:t}){if(t==null)return;let r=await e.provider?.({cesdk:t});f6(r,{cesdk:t,engine:t.engine},{debug:e.debug??!1,dryRun:!1});let n=gl(t,"text");n.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...n.getQuickActionMenuOrder()]),t.ui.addIconSet(Wh,Jh),t.setTranslations({en:{"ly.img.ai.inference.apply":"Apply","ly.img.ai.inference.cancel":"Cancel","ly.img.ai.inference.improve":"Improve Writing","ly.img.ai.inference.improve.processing":"Improving Writing...","ly.img.ai.inference.fix":"Fix Spelling & Grammar","ly.img.ai.inference.fix.processing":"Fixing spelling & grammar...","ly.img.ai.inference.longer":"Make Longer","ly.img.ai.inference.longer.processing":"Making longer...","ly.img.ai.inference.shorter":"Make Shorter","ly.img.ai.inference.shorter.processing":"Making shorter...","ly.img.ai.inference.changeTone":"Change Tone","ly.img.ai.inference.changeTone.processing":"Changing tone...","ly.img.ai.inference.changeTone.type.professional":"Professional","ly.img.ai.inference.changeTone.type.casual":"Casual","ly.img.ai.inference.changeTone.type.friendly":"Friendly","ly.img.ai.inference.changeTone.type.serious":"Serious","ly.img.ai.inference.changeTone.type.humorous":"Humorous","ly.img.ai.inference.changeTone.type.optimistic":"Optimistic","ly.img.ai.inference.translate":"Translate","ly.img.ai.inference.translate.processing":"Translating...","ly.img.ai.inference.changeTextTo":"Change Text to...","ly.img.ai.inference.changeTextTo.processing":"Changing text..."}})}}),b6=e=>({name:m6,version:"0.1.5",...y6(e)}),ml=b6;var Er=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),r=await Promise.all(t),n=[];r.forEach(c=>{c?.assets&&(n=n.concat(c.assets))}),n.sort((c,d)=>{let g=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:a,perPage:o}=e,i=a*o,l=i+o,u=n.slice(i,l),s=l<n.length?a+1:void 0;return{assets:u,currentPage:a,nextPage:s,total:n.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(n=>this.cesdk.engine.asset.getGroups(n)),t=await Promise.all(e),r=new Set;return t.forEach(n=>{n.forEach(a=>r.add(a))}),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")}};var h6=typeof global=="object"&&global&&global.Object===Object&&global,Ll=h6,v6=typeof self=="object"&&self&&self.Object===Object&&self,w6=Ll||v6||Function("return this")(),G=w6,k6=G.Symbol,_e=k6,Tl=Object.prototype,C6=Tl.hasOwnProperty,M6=Tl.toString,Lt=_e?_e.toStringTag:void 0;function x6(e){var t=C6.call(e,Lt),r=e[Lt];try{e[Lt]=void 0;var n=!0}catch{}var a=M6.call(e);return n&&(t?e[Lt]=r:delete e[Lt]),a}var I6=x6,A6=Object.prototype,E6=A6.toString;function S6(e){return E6.call(e)}var j6=S6,L6="[object Null]",T6="[object Undefined]",yl=_e?_e.toStringTag:void 0;function $6(e){return e==null?e===void 0?T6:L6:yl&&yl in Object(e)?I6(e):j6(e)}var Ot=$6;function N6(e){return e!=null&&typeof e=="object"}var Sr=N6,aM=Array.isArray;function O6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $l=O6,D6="[object AsyncFunction]",_6="[object Function]",z6="[object GeneratorFunction]",P6="[object Proxy]";function U6(e){if(!$l(e))return!1;var t=Ot(e);return t==_6||t==z6||t==D6||t==P6}var V6=U6,B6=G["__core-js_shared__"],wr=B6,bl=function(){var e=/[^.]+$/.exec(wr&&wr.keys&&wr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function F6(e){return!!bl&&bl in e}var G6=F6,R6=Function.prototype,q6=R6.toString;function Q6(e){if(e!=null){try{return q6.call(e)}catch{}try{return e+""}catch{}}return""}var Z=Q6,H6=/[\\^$.*+?()[\]{}|]/g,Y6=/^\[object .+?Constructor\]$/,Z6=Function.prototype,W6=Object.prototype,K6=Z6.toString,J6=W6.hasOwnProperty,X6=RegExp("^"+K6.call(J6).replace(H6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ev(e){if(!$l(e)||G6(e))return!1;var t=V6(e)?X6:Y6;return t.test(Z(e))}var tv=ev;function nv(e,t){return e?.[t]}var rv=nv;function iv(e,t){var r=rv(e,t);return tv(r)?r:void 0}var ze=iv,ov=ze(G,"WeakMap"),Cr=ov;function av(e,t){return e===t||e!==e&&t!==t}var lv=av,sv=9007199254740991;function uv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sv}var cv=uv;var lM=Object.prototype;var dv="[object Arguments]";function gv(e){return Sr(e)&&Ot(e)==dv}var hl=gv,Nl=Object.prototype,pv=Nl.hasOwnProperty,fv=Nl.propertyIsEnumerable,sM=hl(function(){return arguments}())?hl:function(e){return Sr(e)&&pv.call(e,"callee")&&!fv.call(e,"callee")};var Ol=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Ol&&typeof module=="object"&&module&&!module.nodeType&&module,mv=vl&&vl.exports===Ol,wl=mv?G.Buffer:void 0,uM=wl?wl.isBuffer:void 0;var yv="[object Arguments]",bv="[object Array]",hv="[object Boolean]",vv="[object Date]",wv="[object Error]",kv="[object Function]",Cv="[object Map]",Mv="[object Number]",xv="[object Object]",Iv="[object RegExp]",Av="[object Set]",Ev="[object String]",Sv="[object WeakMap]",jv="[object ArrayBuffer]",Lv="[object DataView]",Tv="[object Float32Array]",$v="[object Float64Array]",Nv="[object Int8Array]",Ov="[object Int16Array]",Dv="[object Int32Array]",_v="[object Uint8Array]",zv="[object Uint8ClampedArray]",Pv="[object Uint16Array]",Uv="[object Uint32Array]",T={};T[Tv]=T[$v]=T[Nv]=T[Ov]=T[Dv]=T[_v]=T[zv]=T[Pv]=T[Uv]=!0;T[yv]=T[bv]=T[jv]=T[hv]=T[Lv]=T[vv]=T[wv]=T[kv]=T[Cv]=T[Mv]=T[xv]=T[Iv]=T[Av]=T[Ev]=T[Sv]=!1;function Vv(e){return Sr(e)&&cv(e.length)&&!!T[Ot(e)]}var Bv=Vv;function Fv(e){return function(t){return e(t)}}var Gv=Fv,Dl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tt=Dl&&typeof module=="object"&&module&&!module.nodeType&&module,Rv=Tt&&Tt.exports===Dl,kr=Rv&&Ll.process,qv=function(){try{var e=Tt&&Tt.require&&Tt.require("util").types;return e||kr&&kr.binding&&kr.binding("util")}catch{}}(),kl=qv,Cl=kl&&kl.isTypedArray,cM=Cl?Gv(Cl):Bv;var Qv=Object.prototype,dM=Qv.hasOwnProperty;function Hv(e,t){return function(r){return e(t(r))}}var Yv=Hv,gM=Yv(Object.keys,Object);var Zv=Object.prototype,pM=Zv.hasOwnProperty;var Wv=ze(Object,"create"),$t=Wv;function Kv(){this.__data__=$t?$t(null):{},this.size=0}var Jv=Kv;function Xv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ew=Xv,tw="__lodash_hash_undefined__",nw=Object.prototype,rw=nw.hasOwnProperty;function iw(e){var t=this.__data__;if($t){var r=t[e];return r===tw?void 0:r}return rw.call(t,e)?t[e]:void 0}var ow=iw,aw=Object.prototype,lw=aw.hasOwnProperty;function sw(e){var t=this.__data__;return $t?t[e]!==void 0:lw.call(t,e)}var uw=sw,cw="__lodash_hash_undefined__";function dw(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=$t&&t===void 0?cw:t,this}var gw=dw;function Pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Pe.prototype.clear=Jv;Pe.prototype.delete=ew;Pe.prototype.get=ow;Pe.prototype.has=uw;Pe.prototype.set=gw;var Ml=Pe;function pw(){this.__data__=[],this.size=0}var fw=pw;function mw(e,t){for(var r=e.length;r--;)if(lv(e[r][0],t))return r;return-1}var an=mw,yw=Array.prototype,bw=yw.splice;function hw(e){var t=this.__data__,r=an(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():bw.call(t,r,1),--this.size,!0}var vw=hw;function ww(e){var t=this.__data__,r=an(t,e);return r<0?void 0:t[r][1]}var kw=ww;function Cw(e){return an(this.__data__,e)>-1}var Mw=Cw;function xw(e,t){var r=this.__data__,n=an(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var Iw=xw;function Ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ue.prototype.clear=fw;Ue.prototype.delete=vw;Ue.prototype.get=kw;Ue.prototype.has=Mw;Ue.prototype.set=Iw;var ln=Ue,Aw=ze(G,"Map"),Nt=Aw;function Ew(){this.size=0,this.__data__={hash:new Ml,map:new(Nt||ln),string:new Ml}}var Sw=Ew;function jw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Lw=jw;function Tw(e,t){var r=e.__data__;return Lw(t)?r[typeof t=="string"?"string":"hash"]:r.map}var sn=Tw;function $w(e){var t=sn(this,e).delete(e);return this.size-=t?1:0,t}var Nw=$w;function Ow(e){return sn(this,e).get(e)}var Dw=Ow;function _w(e){return sn(this,e).has(e)}var zw=_w;function Pw(e,t){var r=sn(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var Uw=Pw;function Ve(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Ve.prototype.clear=Sw;Ve.prototype.delete=Nw;Ve.prototype.get=Dw;Ve.prototype.has=zw;Ve.prototype.set=Uw;var _l=Ve;function Vw(){this.__data__=new ln,this.size=0}var Bw=Vw;function Fw(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Gw=Fw;function Rw(e){return this.__data__.get(e)}var qw=Rw;function Qw(e){return this.__data__.has(e)}var Hw=Qw,Yw=200;function Zw(e,t){var r=this.__data__;if(r instanceof ln){var n=r.__data__;if(!Nt||n.length<Yw-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new _l(n)}return r.set(e,t),this.size=r.size,this}var Ww=Zw;function Dt(e){var t=this.__data__=new ln(e);this.size=t.size}Dt.prototype.clear=Bw;Dt.prototype.delete=Gw;Dt.prototype.get=qw;Dt.prototype.has=Hw;Dt.prototype.set=Ww;var Kw=Object.prototype,fM=Kw.propertyIsEnumerable;var Jw=ze(G,"DataView"),Mr=Jw,Xw=ze(G,"Promise"),xr=Xw,ek=ze(G,"Set"),Ir=ek,xl="[object Map]",tk="[object Object]",Il="[object Promise]",Al="[object Set]",El="[object WeakMap]",Sl="[object DataView]",nk=Z(Mr),rk=Z(Nt),ik=Z(xr),ok=Z(Ir),ak=Z(Cr),De=Ot;(Mr&&De(new Mr(new ArrayBuffer(1)))!=Sl||Nt&&De(new Nt)!=xl||xr&&De(xr.resolve())!=Il||Ir&&De(new Ir)!=Al||Cr&&De(new Cr)!=El)&&(De=function(e){var t=Ot(e),r=t==tk?e.constructor:void 0,n=r?Z(r):"";if(n)switch(n){case nk:return Sl;case rk:return xl;case ik:return Il;case ok:return Al;case ak:return El}return t});var mM=G.Uint8Array;var lk="__lodash_hash_undefined__";function sk(e){return this.__data__.set(e,lk),this}var uk=sk;function ck(e){return this.__data__.has(e)}var dk=ck;function Ar(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new _l;++t<r;)this.add(e[t])}Ar.prototype.add=Ar.prototype.push=uk;Ar.prototype.has=dk;var jl=_e?_e.prototype:void 0,yM=jl?jl.valueOf:void 0;var gk=Object.prototype,bM=gk.hasOwnProperty;var pk=Object.prototype,hM=pk.hasOwnProperty;var vM=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),wM=new RegExp(/[A-Fa-f0-9]{1}/,"g"),kM=new RegExp(/[A-Fa-f0-9]{2}/,"g");var jr=class{constructor(t,r,n=[]){this.id=t,this.assets=[...n],this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}async findAssets(t){let{page:r,perPage:n,locale:a="en",sortActiveFirst:o,query:i,tags:l,groups:u,excludeGroups:s,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(m=>m.groups&&u.some(y=>m.groups?.includes(y)))),s&&s.length>0&&(g=g.filter(m=>!m.groups||!s.some(y=>m.groups?.includes(y)))),i){let m=i.toLowerCase();g=g.filter(y=>{let w=y.label?.[a]?.toLowerCase(),C=y.tags?.[a]||[];return w&&w.includes(m)||C.some(M=>M.toLowerCase().includes(m))})}if(l&&l.length>0){let m=Array.isArray(l)?l:[l];g=g.filter(y=>{let w=y.tags?.[a]||[];return m.some(C=>w.includes(C))})}o&&g.sort((m,y)=>{let w=this.activeAssetIds.has(m.id),C=this.activeAssetIds.has(y.id);return w&&!C?-1:!w&&C?1:0}),d&&d!=="id"?g.sort((m,y)=>{let w=m.meta?.[d],C=y.meta?.[d];return w===void 0?1:C===void 0?-1:typeof w=="string"&&typeof C=="string"?c==="Descending"?C.localeCompare(w):w.localeCompare(C):typeof w=="number"&&typeof C=="number"?c==="Descending"?C-w:w-C:0}):d==="id"&&g.sort((m,y)=>c==="Descending"?y.id.localeCompare(m.id):m.id.localeCompare(y.id));let f=g.length,v=r*n,k=v+n,p=g.slice(v,k).map(m=>({id:m.id,groups:m.groups,meta:m.meta,payload:m.payload,locale:a,label:m.label?.[a],tags:m.tags?.[a],active:this.activeAssetIds.has(m.id)})),b=k<f?r+1:void 0;return{assets:p,currentPage:r,nextPage:b,total:f}}updateLabel(t,r,n){this.assets.forEach(a=>{a.id===t&&(a.label=a.label||{},a.label[n]=r(a.label[n]))})}getLabel(t,r){let n=this.assets.find(a=>a.id===t);if(n!=null)return n.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let n=this.getLabel(t,"en")??"",a=fk(o=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${o} ${n}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>n,"en"),a()}}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){let r=this.assets.findIndex(n=>n.id===t.id);r>=0?this.assets[r]=t:this.assets.push(t)}removeAsset(t){let r=this.assets.findIndex(n=>n.id===t);r!==-1&&(this.assets.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.assets.forEach(r=>{r.groups&&r.groups.forEach(n=>t.add(n))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function zl(e,t,r=[]){return new jr(e,t,r)}function fk(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],n=0,a=setInterval(()=>{let o=r[n];n=(n+1)%r.length,e(o)||clearInterval(a)},t);return()=>{clearInterval(a)}}var Lr="ly.img.ai.apps";var $=_t("apps"),un=512,cn=128,Pl=e=>({async initialize({cesdk:t}){if(t==null)return;let r=t.engine.scene.getMode()==="Video",{providers:n,baseURL:a="https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"}=e,{activeAssetSource:o}=await mk(t,{isVideoMode:r,baseURL:a,debug:e.debug}),i=await W(t,o,n.text2text),l=await W(t,o,n.text2image),u=await W(t,o,n.image2image),s,c,d,g;r&&(s=await W(t,o,n.text2video),c=await W(t,o,n.image2video),d=await W(t,o,n.text2speech),g=await W(t,o,n.text2sound),t.addPlugin($o({text2video:s,image2video:c,debug:e.debug,dryRun:e.dryRun})),t.addPlugin(xa({text2speech:d,text2sound:g,debug:e.debug,dryRun:e.dryRun}))),i!=null&&t.addPlugin(ml({provider:i,debug:e.debug})),t.addPlugin(Bi({text2image:l,image2image:u,debug:e.debug,dryRun:e.dryRun})),bk(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},r),hk(t)}});async function W(e,t,r){if(r==null)return;let n=await r({cesdk:e});if(t!=null){let a=async(o,i,l)=>{let u=`${n.kind}-generation`;n.kind==="audio"&&(n.id.includes("sound")?u="audio-generation/sound":n.id.includes("speech")&&(u="audio-generation/speech")),e.ui.experimental.setGlobalStateValue(`${$}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged($);try{return await l(o,i)}finally{e.engine.asset.assetSourceContentsChanged($),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${$}.isGenerating`,!1)}};n.output.middleware=[...n.output.middleware??[],a]}return()=>Promise.resolve(n)}async function mk(e,t){let{isVideoMode:r,debug:n,baseURL:a}=t;yk(e);let o;r&&(o=zl($,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:un,height:cn}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:un,height:cn}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:un,height:cn}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:un,height:cn}}]),e.engine.asset.addSource(o),e.ui.registerPanel($,({builder:l})=>{l.Library($,{entries:[$],onSelect:async u=>{e.ui.openPanel(_t(u.id))}})}),e.ui.addAssetLibraryEntry({id:$,sourceIds:[$],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:l})=>l,cardLabelPosition:()=>"inside"}));let i=`${$}.dock`;return r?(n&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=e.ui.isPanelOpen($),c=u.global(`${$}.isGenerating`,!1);l.Button(`${$}.dock.button`,{label:"AI",isSelected:s,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!s&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),s?e.ui.closePanel($):e.ui.openPanel($)}})})):e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=_t("image-generation"),c=u.global(`${$}.isGenerating`,!1),d=e.ui.isPanelOpen(s);l.Button(`${$}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(s):e.ui.openPanel(s)}})}),{activeAssetSource:o}}function yk(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:n})=>{let a="\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(!n||n.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${a}`);return}let{id:o,key:i,label:l,icon:u,entries:s}=n;if(s==null||!Array.isArray(s)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(s.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}l!=null&&typeof l!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=r.scene.getMode(),d=s.filter(h=>{let p=e.ui.getAssetLibraryEntry(h);return p==null?!1:p.sceneMode!=null?p.sceneMode===c:!0});if(d.length===0)return;let g=l;g==null&&(g=`libraries.${o}.label`);let f=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),v=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),k=u;k==null&&d.length===1&&(k=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:k,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===$||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function bk(e,t,r){let n=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new Er("ly.img.ai/image-generation.history",e,[n!=null?`${n.id}.history`:void 0,a!=null?`${a?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(o);let i=e.ui.getAssetLibraryEntry("ly.img.image");if(i!=null&&e.ui.updateAssetLibraryEntry("ly.img.image",{sourceIds:[...i.sourceIds,"ly.img.ai/image-generation.history"]}),!r)return;let l=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),s=new Er("ly.img.ai/video-generation.history",e,[l!=null?`${l.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(s);let c=e.ui.getAssetLibraryEntry("ly.img.video");c!=null&&e.ui.updateAssetLibraryEntry("ly.img.video",{sourceIds:[...c.sourceIds,"ly.img.ai/video-generation.history"]});let d=await t.text2speech?.({cesdk:e}),g=await t.text2sound?.({cesdk:e}),f=e.ui.getAssetLibraryEntry("ly.img.audio"),v=[d!=null?`${d.id}.history`:void 0,g!=null?`${g.id}.history`:void 0].filter(Boolean);f!=null&&e.ui.updateAssetLibraryEntry("ly.img.audio",{sourceIds:[...f.sourceIds,...v]})}function hk(e){e.i18n.setTranslations({en:{"panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai/apps":"AI","panel.ly.img.ai/fal-ai/gemini-flash-edit.imageSelection":"Select Image To Change","panel.gpt-image-1.imageSelection":"Select Image To Change","panel.ly.img.ai/elevenlabs":"AI Voice","panel.ly.img.ai/demo.video":"Generate Video","panel.ly.img.ai/demo.image":"Generate Image","panel.fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.imageSelection":"Select Image To Generate","panel.fal-ai/gemini-flash-edit.imageSelection":"Select Image To Generate","libraries.ly.img.ai/fal-ai/recraft-v3.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/gemini-flash-edit.history.label":"Generated From Image","libraries.ly.img.ai/fal-ai/pixverse/v3.5/text-to-video.history.label":"Generated From Text","libraries.ly.img.ai/fal-ai/minimax/video-01-live/image-to-video.history.label":"Generated From Image","libraries.elevenlabs/monolingual/v1.history.label":"AI Voice","libraries.elevenlabs/sound-generation.history.label":"Generated Sound","libraries.ly.img.ai/image-generation.history.label":"AI Generated Images","libraries.ly.img.ai/video-generation.history.label":"AI Generated Videos"}})}var vk=e=>({name:Lr,version:"0.1.5",...Pl(e)}),VM=vk;export{VM as default};
401
401
  /*! Bundled license information:
402
402
 
403
403
  @imgly/plugin-ai-generation-web/dist/index.mjs: