@imgly/plugin-ai-apps-web 0.1.0 → 0.1.3

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 xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="object"&&global&&global.Object===Object&&global,Pn=Il,Al=typeof self=="object"&&self&&self.Object===Object&&self,jl=Pn||Al||Function("return this")(),D=jl,El=D.Symbol,Z=El,Un=Object.prototype,Sl=Un.hasOwnProperty,Ll=Un.toString,Pe=Z?Z.toStringTag:void 0;function Nl(e){var t=Sl.call(e,Pe),n=e[Pe];try{e[Pe]=void 0;var r=!0}catch{}var a=Ll.call(e);return r&&(t?e[Pe]=n:delete e[Pe]),a}var Tl=Nl,$l=Object.prototype,Dl=$l.toString;function Ol(e){return Dl.call(e)}var _l=Ol,zl="[object Null]",Pl="[object Undefined]",xn=Z?Z.toStringTag:void 0;function Ul(e){return e==null?e===void 0?Pl:zl:xn&&xn in Object(e)?Tl(e):_l(e)}var Ge=Ul;function Vl(e){return e!=null&&typeof e=="object"}var mr=Vl,tC=Array.isArray;function Bl(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vn=Bl,Gl="[object AsyncFunction]",Fl="[object Function]",Rl="[object GeneratorFunction]",ql="[object Proxy]";function Hl(e){if(!Vn(e))return!1;var t=Ge(e);return t==Fl||t==Rl||t==Gl||t==ql}var Ql=Hl,Yl=D["__core-js_shared__"],lr=Yl,In=function(){var e=/[^.]+$/.exec(lr&&lr.keys&&lr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Zl(e){return!!In&&In in e}var Wl=Zl,Kl=Function.prototype,Jl=Kl.toString;function Xl(e){if(e!=null){try{return Jl.call(e)}catch{}try{return e+""}catch{}}return""}var B=Xl,es=/[\\^$.*+?()[\]{}|]/g,ts=/^\[object .+?Constructor\]$/,rs=Function.prototype,ns=Object.prototype,is=rs.toString,os=ns.hasOwnProperty,as=RegExp("^"+is.call(os).replace(es,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ls(e){if(!Vn(e)||Wl(e))return!1;var t=Ql(e)?as:ts;return t.test(B(e))}var ss=ls;function us(e,t){return e?.[t]}var cs=us;function ds(e,t){var n=cs(e,t);return ss(n)?n:void 0}var W=ds,gs=W(D,"WeakMap"),cr=gs;function ps(e,t){return e===t||e!==e&&t!==t}var fs=ps,ms=9007199254740991;function ys(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ms}var bs=ys,rC=Object.prototype,hs="[object Arguments]";function vs(e){return mr(e)&&Ge(e)==hs}var An=vs,Bn=Object.prototype,ws=Bn.hasOwnProperty,Cs=Bn.propertyIsEnumerable,nC=An(function(){return arguments}())?An:function(e){return mr(e)&&ws.call(e,"callee")&&!Cs.call(e,"callee")},Gn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jn=Gn&&typeof module=="object"&&module&&!module.nodeType&&module,ks=jn&&jn.exports===Gn,En=ks?D.Buffer:void 0,iC=En?En.isBuffer:void 0,Ms="[object Arguments]",xs="[object Array]",Is="[object Boolean]",As="[object Date]",js="[object Error]",Es="[object Function]",Ss="[object Map]",Ls="[object Number]",Ns="[object Object]",Ts="[object RegExp]",$s="[object Set]",Ds="[object String]",Os="[object WeakMap]",_s="[object ArrayBuffer]",zs="[object DataView]",Ps="[object Float32Array]",Us="[object Float64Array]",Vs="[object Int8Array]",Bs="[object Int16Array]",Gs="[object Int32Array]",Fs="[object Uint8Array]",Rs="[object Uint8ClampedArray]",qs="[object Uint16Array]",Hs="[object Uint32Array]",x={};x[Ps]=x[Us]=x[Vs]=x[Bs]=x[Gs]=x[Fs]=x[Rs]=x[qs]=x[Hs]=!0;x[Ms]=x[xs]=x[_s]=x[Is]=x[zs]=x[As]=x[js]=x[Es]=x[Ss]=x[Ls]=x[Ns]=x[Ts]=x[$s]=x[Ds]=x[Os]=!1;function Qs(e){return mr(e)&&bs(e.length)&&!!x[Ge(e)]}var Ys=Qs;function Zs(e){return function(t){return e(t)}}var Ws=Zs,Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ue=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Ks=Ue&&Ue.exports===Fn,sr=Ks&&Pn.process,Js=function(){try{var e=Ue&&Ue.require&&Ue.require("util").types;return e||sr&&sr.binding&&sr.binding("util")}catch{}}(),Sn=Js,Ln=Sn&&Sn.isTypedArray,oC=Ln?Ws(Ln):Ys,Xs=Object.prototype,aC=Xs.hasOwnProperty;function eu(e,t){return function(n){return e(t(n))}}var tu=eu,lC=tu(Object.keys,Object),ru=Object.prototype,sC=ru.hasOwnProperty,nu=W(Object,"create"),Ve=nu;function iu(){this.__data__=Ve?Ve(null):{},this.size=0}var ou=iu;function au(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var lu=au,su="__lodash_hash_undefined__",uu=Object.prototype,cu=uu.hasOwnProperty;function du(e){var t=this.__data__;if(Ve){var n=t[e];return n===su?void 0:n}return cu.call(t,e)?t[e]:void 0}var gu=du,pu=Object.prototype,fu=pu.hasOwnProperty;function mu(e){var t=this.__data__;return Ve?t[e]!==void 0:fu.call(t,e)}var yu=mu,bu="__lodash_hash_undefined__";function hu(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ve&&t===void 0?bu:t,this}var vu=hu;function K(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])}}K.prototype.clear=ou;K.prototype.delete=lu;K.prototype.get=gu;K.prototype.has=yu;K.prototype.set=vu;var Nn=K;function wu(){this.__data__=[],this.size=0}var Cu=wu;function ku(e,t){for(var n=e.length;n--;)if(fs(e[n][0],t))return n;return-1}var Dt=ku,Mu=Array.prototype,xu=Mu.splice;function Iu(e){var t=this.__data__,n=Dt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():xu.call(t,n,1),--this.size,!0}var Au=Iu;function ju(e){var t=this.__data__,n=Dt(t,e);return n<0?void 0:t[n][1]}var Eu=ju;function Su(e){return Dt(this.__data__,e)>-1}var Lu=Su;function Nu(e,t){var n=this.__data__,r=Dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Tu=Nu;function J(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])}}J.prototype.clear=Cu;J.prototype.delete=Au;J.prototype.get=Eu;J.prototype.has=Lu;J.prototype.set=Tu;var Ot=J,$u=W(D,"Map"),Be=$u;function Du(){this.size=0,this.__data__={hash:new Nn,map:new(Be||Ot),string:new Nn}}var Ou=Du;function _u(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zu=_u;function Pu(e,t){var n=e.__data__;return zu(t)?n[typeof t=="string"?"string":"hash"]:n.map}var _t=Pu;function Uu(e){var t=_t(this,e).delete(e);return this.size-=t?1:0,t}var Vu=Uu;function Bu(e){return _t(this,e).get(e)}var Gu=Bu;function Fu(e){return _t(this,e).has(e)}var Ru=Fu;function qu(e,t){var n=_t(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Hu=qu;function X(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])}}X.prototype.clear=Ou;X.prototype.delete=Vu;X.prototype.get=Gu;X.prototype.has=Ru;X.prototype.set=Hu;var Rn=X;function Qu(){this.__data__=new Ot,this.size=0}var Yu=Qu;function Zu(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Wu=Zu;function Ku(e){return this.__data__.get(e)}var Ju=Ku;function Xu(e){return this.__data__.has(e)}var ec=Xu,tc=200;function rc(e,t){var n=this.__data__;if(n instanceof Ot){var r=n.__data__;if(!Be||r.length<tc-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Rn(r)}return n.set(e,t),this.size=n.size,this}var nc=rc;function Fe(e){var t=this.__data__=new Ot(e);this.size=t.size}Fe.prototype.clear=Yu;Fe.prototype.delete=Wu;Fe.prototype.get=Ju;Fe.prototype.has=ec;Fe.prototype.set=nc;var ic=Object.prototype,uC=ic.propertyIsEnumerable,oc=W(D,"DataView"),dr=oc,ac=W(D,"Promise"),gr=ac,lc=W(D,"Set"),pr=lc,Tn="[object Map]",sc="[object Object]",$n="[object Promise]",Dn="[object Set]",On="[object WeakMap]",_n="[object DataView]",uc=B(dr),cc=B(Be),dc=B(gr),gc=B(pr),pc=B(cr),Y=Ge;(dr&&Y(new dr(new ArrayBuffer(1)))!=_n||Be&&Y(new Be)!=Tn||gr&&Y(gr.resolve())!=$n||pr&&Y(new pr)!=Dn||cr&&Y(new cr)!=On)&&(Y=function(e){var t=Ge(e),n=t==sc?e.constructor:void 0,r=n?B(n):"";if(r)switch(r){case uc:return _n;case cc:return Tn;case dc:return $n;case gc:return Dn;case pc:return On}return t});var cC=D.Uint8Array,fc="__lodash_hash_undefined__";function mc(e){return this.__data__.set(e,fc),this}var yc=mc;function bc(e){return this.__data__.has(e)}var hc=bc;function fr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Rn;++t<n;)this.add(e[t])}fr.prototype.add=fr.prototype.push=yc;fr.prototype.has=hc;var zn=Z?Z.prototype:void 0,dC=zn?zn.valueOf:void 0,vc=Object.prototype,gC=vc.hasOwnProperty,wc=Object.prototype,pC=wc.hasOwnProperty,fC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yC=new RegExp(/[A-Fa-f0-9]{2}/,"g"),ur="@imgly/plugin-ai-generation",bC=`
1
+ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="object"&&global&&global.Object===Object&&global,Pn=Il,Al=typeof self=="object"&&self&&self.Object===Object&&self,jl=Pn||Al||Function("return this")(),D=jl,El=D.Symbol,Z=El,Un=Object.prototype,Sl=Un.hasOwnProperty,Ll=Un.toString,Pe=Z?Z.toStringTag:void 0;function Nl(e){var t=Sl.call(e,Pe),n=e[Pe];try{e[Pe]=void 0;var r=!0}catch{}var a=Ll.call(e);return r&&(t?e[Pe]=n:delete e[Pe]),a}var Tl=Nl,$l=Object.prototype,Dl=$l.toString;function Ol(e){return Dl.call(e)}var _l=Ol,zl="[object Null]",Pl="[object Undefined]",xn=Z?Z.toStringTag:void 0;function Ul(e){return e==null?e===void 0?Pl:zl:xn&&xn in Object(e)?Tl(e):_l(e)}var Ge=Ul;function Vl(e){return e!=null&&typeof e=="object"}var mr=Vl,tC=Array.isArray;function Bl(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vn=Bl,Gl="[object AsyncFunction]",Fl="[object Function]",Rl="[object GeneratorFunction]",ql="[object Proxy]";function Hl(e){if(!Vn(e))return!1;var t=Ge(e);return t==Fl||t==Rl||t==Gl||t==ql}var Ql=Hl,Yl=D["__core-js_shared__"],lr=Yl,In=function(){var e=/[^.]+$/.exec(lr&&lr.keys&&lr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Zl(e){return!!In&&In in e}var Wl=Zl,Kl=Function.prototype,Jl=Kl.toString;function Xl(e){if(e!=null){try{return Jl.call(e)}catch{}try{return e+""}catch{}}return""}var B=Xl,es=/[\\^$.*+?()[\]{}|]/g,ts=/^\[object .+?Constructor\]$/,rs=Function.prototype,ns=Object.prototype,is=rs.toString,os=ns.hasOwnProperty,as=RegExp("^"+is.call(os).replace(es,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ls(e){if(!Vn(e)||Wl(e))return!1;var t=Ql(e)?as:ts;return t.test(B(e))}var ss=ls;function us(e,t){return e?.[t]}var cs=us;function ds(e,t){var n=cs(e,t);return ss(n)?n:void 0}var W=ds,gs=W(D,"WeakMap"),cr=gs;function ps(e,t){return e===t||e!==e&&t!==t}var fs=ps,ms=9007199254740991;function ys(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ms}var bs=ys,rC=Object.prototype,hs="[object Arguments]";function vs(e){return mr(e)&&Ge(e)==hs}var An=vs,Bn=Object.prototype,ws=Bn.hasOwnProperty,Cs=Bn.propertyIsEnumerable,nC=An(function(){return arguments}())?An:function(e){return mr(e)&&ws.call(e,"callee")&&!Cs.call(e,"callee")},Gn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jn=Gn&&typeof module=="object"&&module&&!module.nodeType&&module,ks=jn&&jn.exports===Gn,En=ks?D.Buffer:void 0,iC=En?En.isBuffer:void 0,Ms="[object Arguments]",xs="[object Array]",Is="[object Boolean]",As="[object Date]",js="[object Error]",Es="[object Function]",Ss="[object Map]",Ls="[object Number]",Ns="[object Object]",Ts="[object RegExp]",$s="[object Set]",Ds="[object String]",Os="[object WeakMap]",_s="[object ArrayBuffer]",zs="[object DataView]",Ps="[object Float32Array]",Us="[object Float64Array]",Vs="[object Int8Array]",Bs="[object Int16Array]",Gs="[object Int32Array]",Fs="[object Uint8Array]",Rs="[object Uint8ClampedArray]",qs="[object Uint16Array]",Hs="[object Uint32Array]",x={};x[Ps]=x[Us]=x[Vs]=x[Bs]=x[Gs]=x[Fs]=x[Rs]=x[qs]=x[Hs]=!0;x[Ms]=x[xs]=x[_s]=x[Is]=x[zs]=x[As]=x[js]=x[Es]=x[Ss]=x[Ls]=x[Ns]=x[Ts]=x[$s]=x[Ds]=x[Os]=!1;function Qs(e){return mr(e)&&bs(e.length)&&!!x[Ge(e)]}var Ys=Qs;function Zs(e){return function(t){return e(t)}}var Ws=Zs,Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ue=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Ks=Ue&&Ue.exports===Fn,sr=Ks&&Pn.process,Js=function(){try{var e=Ue&&Ue.require&&Ue.require("util").types;return e||sr&&sr.binding&&sr.binding("util")}catch{}}(),Sn=Js,Ln=Sn&&Sn.isTypedArray,oC=Ln?Ws(Ln):Ys,Xs=Object.prototype,aC=Xs.hasOwnProperty;function eu(e,t){return function(n){return e(t(n))}}var tu=eu,lC=tu(Object.keys,Object),ru=Object.prototype,sC=ru.hasOwnProperty,nu=W(Object,"create"),Ve=nu;function iu(){this.__data__=Ve?Ve(null):{},this.size=0}var ou=iu;function au(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var lu=au,su="__lodash_hash_undefined__",uu=Object.prototype,cu=uu.hasOwnProperty;function du(e){var t=this.__data__;if(Ve){var n=t[e];return n===su?void 0:n}return cu.call(t,e)?t[e]:void 0}var gu=du,pu=Object.prototype,fu=pu.hasOwnProperty;function mu(e){var t=this.__data__;return Ve?t[e]!==void 0:fu.call(t,e)}var yu=mu,bu="__lodash_hash_undefined__";function hu(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ve&&t===void 0?bu:t,this}var vu=hu;function K(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])}}K.prototype.clear=ou;K.prototype.delete=lu;K.prototype.get=gu;K.prototype.has=yu;K.prototype.set=vu;var Nn=K;function wu(){this.__data__=[],this.size=0}var Cu=wu;function ku(e,t){for(var n=e.length;n--;)if(fs(e[n][0],t))return n;return-1}var Dt=ku,Mu=Array.prototype,xu=Mu.splice;function Iu(e){var t=this.__data__,n=Dt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():xu.call(t,n,1),--this.size,!0}var Au=Iu;function ju(e){var t=this.__data__,n=Dt(t,e);return n<0?void 0:t[n][1]}var Eu=ju;function Su(e){return Dt(this.__data__,e)>-1}var Lu=Su;function Nu(e,t){var n=this.__data__,r=Dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Tu=Nu;function J(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])}}J.prototype.clear=Cu;J.prototype.delete=Au;J.prototype.get=Eu;J.prototype.has=Lu;J.prototype.set=Tu;var Ot=J,$u=W(D,"Map"),Be=$u;function Du(){this.size=0,this.__data__={hash:new Nn,map:new(Be||Ot),string:new Nn}}var Ou=Du;function _u(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zu=_u;function Pu(e,t){var n=e.__data__;return zu(t)?n[typeof t=="string"?"string":"hash"]:n.map}var _t=Pu;function Uu(e){var t=_t(this,e).delete(e);return this.size-=t?1:0,t}var Vu=Uu;function Bu(e){return _t(this,e).get(e)}var Gu=Bu;function Fu(e){return _t(this,e).has(e)}var Ru=Fu;function qu(e,t){var n=_t(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Hu=qu;function X(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])}}X.prototype.clear=Ou;X.prototype.delete=Vu;X.prototype.get=Gu;X.prototype.has=Ru;X.prototype.set=Hu;var Rn=X;function Qu(){this.__data__=new Ot,this.size=0}var Yu=Qu;function Zu(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Wu=Zu;function Ku(e){return this.__data__.get(e)}var Ju=Ku;function Xu(e){return this.__data__.has(e)}var ec=Xu,tc=200;function rc(e,t){var n=this.__data__;if(n instanceof Ot){var r=n.__data__;if(!Be||r.length<tc-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Rn(r)}return n.set(e,t),this.size=n.size,this}var nc=rc;function Fe(e){var t=this.__data__=new Ot(e);this.size=t.size}Fe.prototype.clear=Yu;Fe.prototype.delete=Wu;Fe.prototype.get=Ju;Fe.prototype.has=ec;Fe.prototype.set=nc;var ic=Object.prototype,uC=ic.propertyIsEnumerable,oc=W(D,"DataView"),dr=oc,ac=W(D,"Promise"),gr=ac,lc=W(D,"Set"),pr=lc,Tn="[object Map]",sc="[object Object]",$n="[object Promise]",Dn="[object Set]",On="[object WeakMap]",_n="[object DataView]",uc=B(dr),cc=B(Be),dc=B(gr),gc=B(pr),pc=B(cr),Y=Ge;(dr&&Y(new dr(new ArrayBuffer(1)))!=_n||Be&&Y(new Be)!=Tn||gr&&Y(gr.resolve())!=$n||pr&&Y(new pr)!=Dn||cr&&Y(new cr)!=On)&&(Y=function(e){var t=Ge(e),n=t==sc?e.constructor:void 0,r=n?B(n):"";if(r)switch(r){case uc:return _n;case cc:return Tn;case dc:return $n;case gc:return Dn;case pc:return On}return t});var cC=D.Uint8Array,fc="__lodash_hash_undefined__";function mc(e){return this.__data__.set(e,fc),this}var yc=mc;function bc(e){return this.__data__.has(e)}var hc=bc;function fr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Rn;++t<n;)this.add(e[t])}fr.prototype.add=fr.prototype.push=yc;fr.prototype.has=hc;var zn=Z?Z.prototype:void 0,dC=zn?zn.valueOf:void 0,vc=Object.prototype,gC=vc.hasOwnProperty,wc=Object.prototype,pC=wc.hasOwnProperty,fC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),yC=new RegExp(/[A-Fa-f0-9]{2}/,"g");var ur="@imgly/plugin-ai-generation",bC=`
2
2
  <svg>
3
3
  <symbol
4
4
  fill="none"
@@ -59,8 +59,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
59
59
 
60
60
  </symbol>
61
61
  </svg>
62
- `;function ui(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 He(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=ui(e,t.$ref),a={...He(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=He(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>He(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=He(e,t[a],n));return r}return t}function Cc(e){return He(e,{...e})}function kc(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 Mc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return xc(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function xc(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 ci=Mc,Ic="ly.img.ai",yr="ly.img.ai/temp";async function Ac(e,t){return e.engine.asset.findAllSources().includes(yr)||e.engine.asset.addLocalSource(yr),e.engine.asset.apply(yr,t)}function di(e){return`${Ic}/${e}`}function jc(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 Ec(){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 Sc(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 gi(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 jr(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 re(e){return e instanceof Error&&e.name==="AbortError"}function pi(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?Lc(e,t,n,r,a,o):mi(e,t,n,r,a,o);case"boolean":return yi(e,t,n,r,a,o);case"number":case"integer":return bi(e,t,n,r,a,o);case"object":return fi(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Nc(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function fi(e,t,n,r,a,o){let i=ci(t.schema??{},r).reduce((l,u)=>{let s=pi(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}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=l(s,t.schema.default??""),g=Tc(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 Lc(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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??gi(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=l(s,f);return i.Select(s,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function yi(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 bi(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 w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Nc(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 y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??gi(M),icon:k[M]})}):(f[m]=()=>mi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>yi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>bi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>fi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,w);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 Tc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $c=pi,Dc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",hi=Dc;function Oc(e,t,n){switch(t){case"image":return _c(e,n[t]);case"video":return zc(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _c(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:hi,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function zc(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:hi,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Pc=Oc;function Uc(e,t){switch(e){case"image":return Vc(t[e]);case"video":return Bc(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function Vc(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
63
- `,"+")}`}}function Bc(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var Gc=Uc;async function Fc(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 Rc(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 qc(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 Hc(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Rc(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 qc(e,t,n){let r=t.width,a=t.height,o=await Sc(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 Hc(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 qn=Fc;function vi(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(w,h)=>l(s+1,w,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 Qc(){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 wi=Qc;async function Yc(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=Ec(),v;if(u){if(v=Pc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Ac(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),y=l.engine.block.getPositionY(c),m=l.engine.block.duplicate(c);l.engine.block.setPositionX(m,b),l.engine.block.setPositionY(m,y),l.engine.block.destroy(c),c=m}if(zt(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 w=vi([...r.output.middleware??[],o.debug?wi():void 0]),h;if(o.dryRun?h=await Zc(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l})).result,jr(h))throw new Error("Streaming generation is not supported yet from a panel");if(zt(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 qn(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)),zt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await qn(f,e,g,h),zt(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)&&(re(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function zt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function Zc(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=Gc(e,t);return await Wc(3e3),n}async function Wc(e){return new Promise(t=>{setTimeout(t,e)})}var Kc=Yc;function Jc(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),Xc(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:jc(e)}))}function Xc(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 Qe=Jc;function Pt(e){return`${e}.generating`}function e1(e){return`${e}.abort`}function t1(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(e1(c),()=>{}),f=l.global(Pt(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await Kc(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;r1(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(re(C))return;Qe(C,{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(m,{provider:t,abort:h}):await m()}}),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 r1(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 Ci=t1;async function n1(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=Cc(t.document),l=ui(i,t.inputReference);if(!kc(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=ci(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=$c(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ci(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(di(o),c),c}var i1=n1;async function o1(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Pt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ci(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(di(o),l),l}var a1=o1,l1=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;te(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=()=>{te(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 te(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),te(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 te(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]=te(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]=te(a,t,o)}return e}var s1=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)}},ki=s1,u1=typeof global=="object"&&global&&global.Object===Object&&global,Mi=u1,c1=typeof self=="object"&&self&&self.Object===Object&&self,d1=Mi||c1||Function("return this")(),O=d1,g1=O.Symbol,ne=g1,xi=Object.prototype,p1=xi.hasOwnProperty,f1=xi.toString,Re=ne?ne.toStringTag:void 0;function m1(e){var t=p1.call(e,Re),n=e[Re];try{e[Re]=void 0;var r=!0}catch{}var a=f1.call(e);return r&&(t?e[Re]=n:delete e[Re]),a}var y1=m1,b1=Object.prototype,h1=b1.toString;function v1(e){return h1.call(e)}var w1=v1,C1="[object Null]",k1="[object Undefined]",Hn=ne?ne.toStringTag:void 0;function M1(e){return e==null?e===void 0?k1:C1:Hn&&Hn in Object(e)?y1(e):w1(e)}var Ke=M1;function x1(e){return e!=null&&typeof e=="object"}var Er=x1,vC=Array.isArray;function I1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ii=I1,A1="[object AsyncFunction]",j1="[object Function]",E1="[object GeneratorFunction]",S1="[object Proxy]";function L1(e){if(!Ii(e))return!1;var t=Ke(e);return t==j1||t==E1||t==A1||t==S1}var N1=L1,T1=O["__core-js_shared__"],br=T1,Qn=function(){var e=/[^.]+$/.exec(br&&br.keys&&br.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $1(e){return!!Qn&&Qn in e}var D1=$1,O1=Function.prototype,_1=O1.toString;function z1(e){if(e!=null){try{return _1.call(e)}catch{}try{return e+""}catch{}}return""}var G=z1,P1=/[\\^$.*+?()[\]{}|]/g,U1=/^\[object .+?Constructor\]$/,V1=Function.prototype,B1=Object.prototype,G1=V1.toString,F1=B1.hasOwnProperty,R1=RegExp("^"+G1.call(F1).replace(P1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function q1(e){if(!Ii(e)||D1(e))return!1;var t=N1(e)?R1:U1;return t.test(G(e))}var H1=q1;function Q1(e,t){return e?.[t]}var Y1=Q1;function Z1(e,t){var n=Y1(e,t);return H1(n)?n:void 0}var ie=Z1,W1=ie(O,"WeakMap"),kr=W1;function K1(e,t){return e===t||e!==e&&t!==t}var J1=K1,X1=9007199254740991;function ed(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=X1}var td=ed,wC=Object.prototype,rd="[object Arguments]";function nd(e){return Er(e)&&Ke(e)==rd}var Yn=nd,Ai=Object.prototype,id=Ai.hasOwnProperty,od=Ai.propertyIsEnumerable,CC=Yn(function(){return arguments}())?Yn:function(e){return Er(e)&&id.call(e,"callee")&&!od.call(e,"callee")},ji=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zn=ji&&typeof module=="object"&&module&&!module.nodeType&&module,ad=Zn&&Zn.exports===ji,Wn=ad?O.Buffer:void 0,kC=Wn?Wn.isBuffer:void 0,ld="[object Arguments]",sd="[object Array]",ud="[object Boolean]",cd="[object Date]",dd="[object Error]",gd="[object Function]",pd="[object Map]",fd="[object Number]",md="[object Object]",yd="[object RegExp]",bd="[object Set]",hd="[object String]",vd="[object WeakMap]",wd="[object ArrayBuffer]",Cd="[object DataView]",kd="[object Float32Array]",Md="[object Float64Array]",xd="[object Int8Array]",Id="[object Int16Array]",Ad="[object Int32Array]",jd="[object Uint8Array]",Ed="[object Uint8ClampedArray]",Sd="[object Uint16Array]",Ld="[object Uint32Array]",I={};I[kd]=I[Md]=I[xd]=I[Id]=I[Ad]=I[jd]=I[Ed]=I[Sd]=I[Ld]=!0;I[ld]=I[sd]=I[wd]=I[ud]=I[Cd]=I[cd]=I[dd]=I[gd]=I[pd]=I[fd]=I[md]=I[yd]=I[bd]=I[hd]=I[vd]=!1;function Nd(e){return Er(e)&&td(e.length)&&!!I[Ke(e)]}var Td=Nd;function $d(e){return function(t){return e(t)}}var Dd=$d,Ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ye=Ei&&typeof module=="object"&&module&&!module.nodeType&&module,Od=Ye&&Ye.exports===Ei,hr=Od&&Mi.process,_d=function(){try{var e=Ye&&Ye.require&&Ye.require("util").types;return e||hr&&hr.binding&&hr.binding("util")}catch{}}(),Kn=_d,Jn=Kn&&Kn.isTypedArray,MC=Jn?Dd(Jn):Td,zd=Object.prototype,xC=zd.hasOwnProperty;function Pd(e,t){return function(n){return e(t(n))}}var Ud=Pd,IC=Ud(Object.keys,Object),Vd=Object.prototype,AC=Vd.hasOwnProperty,Bd=ie(Object,"create"),Ze=Bd;function Gd(){this.__data__=Ze?Ze(null):{},this.size=0}var Fd=Gd;function Rd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qd=Rd,Hd="__lodash_hash_undefined__",Qd=Object.prototype,Yd=Qd.hasOwnProperty;function Zd(e){var t=this.__data__;if(Ze){var n=t[e];return n===Hd?void 0:n}return Yd.call(t,e)?t[e]:void 0}var Wd=Zd,Kd=Object.prototype,Jd=Kd.hasOwnProperty;function Xd(e){var t=this.__data__;return Ze?t[e]!==void 0:Jd.call(t,e)}var eg=Xd,tg="__lodash_hash_undefined__";function rg(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&t===void 0?tg:t,this}var ng=rg;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=Fd;oe.prototype.delete=qd;oe.prototype.get=Wd;oe.prototype.has=eg;oe.prototype.set=ng;var Xn=oe;function ig(){this.__data__=[],this.size=0}var og=ig;function ag(e,t){for(var n=e.length;n--;)if(J1(e[n][0],t))return n;return-1}var Ut=ag,lg=Array.prototype,sg=lg.splice;function ug(e){var t=this.__data__,n=Ut(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():sg.call(t,n,1),--this.size,!0}var cg=ug;function dg(e){var t=this.__data__,n=Ut(t,e);return n<0?void 0:t[n][1]}var gg=dg;function pg(e){return Ut(this.__data__,e)>-1}var fg=pg;function mg(e,t){var n=this.__data__,r=Ut(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var yg=mg;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=og;ae.prototype.delete=cg;ae.prototype.get=gg;ae.prototype.has=fg;ae.prototype.set=yg;var Vt=ae,bg=ie(O,"Map"),We=bg;function hg(){this.size=0,this.__data__={hash:new Xn,map:new(We||Vt),string:new Xn}}var vg=hg;function wg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Cg=wg;function kg(e,t){var n=e.__data__;return Cg(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Bt=kg;function Mg(e){var t=Bt(this,e).delete(e);return this.size-=t?1:0,t}var xg=Mg;function Ig(e){return Bt(this,e).get(e)}var Ag=Ig;function jg(e){return Bt(this,e).has(e)}var Eg=jg;function Sg(e,t){var n=Bt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Lg=Sg;function le(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])}}le.prototype.clear=vg;le.prototype.delete=xg;le.prototype.get=Ag;le.prototype.has=Eg;le.prototype.set=Lg;var Si=le;function Ng(){this.__data__=new Vt,this.size=0}var Tg=Ng;function $g(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Dg=$g;function Og(e){return this.__data__.get(e)}var _g=Og;function zg(e){return this.__data__.has(e)}var Pg=zg,Ug=200;function Vg(e,t){var n=this.__data__;if(n instanceof Vt){var r=n.__data__;if(!We||r.length<Ug-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Si(r)}return n.set(e,t),this.size=n.size,this}var Bg=Vg;function Je(e){var t=this.__data__=new Vt(e);this.size=t.size}Je.prototype.clear=Tg;Je.prototype.delete=Dg;Je.prototype.get=_g;Je.prototype.has=Pg;Je.prototype.set=Bg;var Gg=Object.prototype,jC=Gg.propertyIsEnumerable,Fg=ie(O,"DataView"),Mr=Fg,Rg=ie(O,"Promise"),xr=Rg,qg=ie(O,"Set"),Ir=qg,ei="[object Map]",Hg="[object Object]",ti="[object Promise]",ri="[object Set]",ni="[object WeakMap]",ii="[object DataView]",Qg=G(Mr),Yg=G(We),Zg=G(xr),Wg=G(Ir),Kg=G(kr),ee=Ke;(Mr&&ee(new Mr(new ArrayBuffer(1)))!=ii||We&&ee(new We)!=ei||xr&&ee(xr.resolve())!=ti||Ir&&ee(new Ir)!=ri||kr&&ee(new kr)!=ni)&&(ee=function(e){var t=Ke(e),n=t==Hg?e.constructor:void 0,r=n?G(n):"";if(r)switch(r){case Qg:return ii;case Yg:return ei;case Zg:return ti;case Wg:return ri;case Kg:return ni}return t});var EC=O.Uint8Array,Jg="__lodash_hash_undefined__";function Xg(e){return this.__data__.set(e,Jg),this}var ep=Xg;function tp(e){return this.__data__.has(e)}var rp=tp;function Ar(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Si;++t<n;)this.add(e[t])}Ar.prototype.add=Ar.prototype.push=ep;Ar.prototype.has=rp;var oi=ne?ne.prototype:void 0,SC=oi?oi.valueOf:void 0,np=Object.prototype,LC=np.hasOwnProperty,ip=Object.prototype,NC=ip.hasOwnProperty,TC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),DC=new RegExp(/[A-Fa-f0-9]{2}/,"g"),vr="@imgly/plugin-ai-generation",op=`
62
+ `;function ui(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 He(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=ui(e,t.$ref),a={...He(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=He(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>He(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=He(e,t[a],n));return r}return t}function Cc(e){return He(e,{...e})}function kc(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function Mc(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return xc(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function xc(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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var ci=Mc,Ic="ly.img.ai",yr="ly.img.ai/temp";async function Ac(e,t){return e.engine.asset.findAllSources().includes(yr)||e.engine.asset.addLocalSource(yr),e.engine.asset.apply(yr,t)}function di(e){return`${Ic}/${e}`}function jc(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 Ec(){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 Sc(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 gi(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 jr(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 re(e){return e instanceof Error&&e.name==="AbortError"}function pi(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?Lc(e,t,n,r,a,o):mi(e,t,n,r,a,o);case"boolean":return yi(e,t,n,r,a,o);case"number":case"integer":return bi(e,t,n,r,a,o);case"object":return fi(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Nc(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function fi(e,t,n,r,a,o){let i=ci(t.schema??{},r).reduce((s,u)=>{let l=pi(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function mi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=Tc(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Lc(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??gi(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function yi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function bi(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function Nc(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??gi(M),icon:k[M]})}):(f[m]=()=>mi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>yi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>bi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>fi(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{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 Tc(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $c=pi,Dc="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",hi=Dc;function Oc(e,t,n){switch(t){case"image":return _c(e,n[t]);case"video":return zc(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _c(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:hi,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function zc(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:hi,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Pc=Oc;function Uc(e,t){switch(e){case"image":return Vc(t[e]);case"video":return Bc(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function Vc(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
63
+ `,"+")}`}}function Bc(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var Gc=Uc;async function Fc(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 Rc(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 qc(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 Hc(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Rc(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 qc(e,t,n){let r=t.width,a=t.height,o=await Sc(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 Hc(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 qn=Fc;function vi(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function Qc(){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 wi=Qc;async function Yc(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Ec(),v;if(u){if(v=Pc(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Ac(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(zt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=vi([...r.output.middleware??[],o.debug?wi():void 0]),h;if(o.dryRun?h=await Zc(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,jr(h))throw new Error("Streaming generation is not supported yet from a panel");if(zt(s,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&&s.engine.block.isValid(c)&&(p=await qn(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),zt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await qn(f,e,g,h),zt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(re(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function zt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function Zc(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=Gc(e,t);return await Wc(3e3),n}async function Wc(e){return new Promise(t=>{setTimeout(t,e)})}var Kc=Yc;function Jc(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),Xc(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:jc(e)}))}function Xc(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 Qe=Jc;function Pt(e){return`${e}.generating`}function e1(e){return`${e}.abort`}function t1(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(e1(c),()=>{}),f=s.global(Pt(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await Kc(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;r1(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(re(C))return;Qe(C,{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(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function r1(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 Ci=t1;async function n1(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=Cc(t.document),s=ui(i,t.inputReference);if(!kc(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=ci(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=$c(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ci(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(di(o),c),c}var i1=n1;async function o1(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Pt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ci(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(di(o),s),s}var a1=o1,l1=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let 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;te(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=()=>{te(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 te(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),te(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function te(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]=te(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]=te(a,t,o)}return e}var s1=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)}},ki=s1,u1=typeof global=="object"&&global&&global.Object===Object&&global,Mi=u1,c1=typeof self=="object"&&self&&self.Object===Object&&self,d1=Mi||c1||Function("return this")(),O=d1,g1=O.Symbol,ne=g1,xi=Object.prototype,p1=xi.hasOwnProperty,f1=xi.toString,Re=ne?ne.toStringTag:void 0;function m1(e){var t=p1.call(e,Re),n=e[Re];try{e[Re]=void 0;var r=!0}catch{}var a=f1.call(e);return r&&(t?e[Re]=n:delete e[Re]),a}var y1=m1,b1=Object.prototype,h1=b1.toString;function v1(e){return h1.call(e)}var w1=v1,C1="[object Null]",k1="[object Undefined]",Hn=ne?ne.toStringTag:void 0;function M1(e){return e==null?e===void 0?k1:C1:Hn&&Hn in Object(e)?y1(e):w1(e)}var Ke=M1;function x1(e){return e!=null&&typeof e=="object"}var Er=x1,vC=Array.isArray;function I1(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ii=I1,A1="[object AsyncFunction]",j1="[object Function]",E1="[object GeneratorFunction]",S1="[object Proxy]";function L1(e){if(!Ii(e))return!1;var t=Ke(e);return t==j1||t==E1||t==A1||t==S1}var N1=L1,T1=O["__core-js_shared__"],br=T1,Qn=function(){var e=/[^.]+$/.exec(br&&br.keys&&br.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $1(e){return!!Qn&&Qn in e}var D1=$1,O1=Function.prototype,_1=O1.toString;function z1(e){if(e!=null){try{return _1.call(e)}catch{}try{return e+""}catch{}}return""}var G=z1,P1=/[\\^$.*+?()[\]{}|]/g,U1=/^\[object .+?Constructor\]$/,V1=Function.prototype,B1=Object.prototype,G1=V1.toString,F1=B1.hasOwnProperty,R1=RegExp("^"+G1.call(F1).replace(P1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function q1(e){if(!Ii(e)||D1(e))return!1;var t=N1(e)?R1:U1;return t.test(G(e))}var H1=q1;function Q1(e,t){return e?.[t]}var Y1=Q1;function Z1(e,t){var n=Y1(e,t);return H1(n)?n:void 0}var ie=Z1,W1=ie(O,"WeakMap"),kr=W1;function K1(e,t){return e===t||e!==e&&t!==t}var J1=K1,X1=9007199254740991;function ed(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=X1}var td=ed,wC=Object.prototype,rd="[object Arguments]";function nd(e){return Er(e)&&Ke(e)==rd}var Yn=nd,Ai=Object.prototype,id=Ai.hasOwnProperty,od=Ai.propertyIsEnumerable,CC=Yn(function(){return arguments}())?Yn:function(e){return Er(e)&&id.call(e,"callee")&&!od.call(e,"callee")},ji=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zn=ji&&typeof module=="object"&&module&&!module.nodeType&&module,ad=Zn&&Zn.exports===ji,Wn=ad?O.Buffer:void 0,kC=Wn?Wn.isBuffer:void 0,ld="[object Arguments]",sd="[object Array]",ud="[object Boolean]",cd="[object Date]",dd="[object Error]",gd="[object Function]",pd="[object Map]",fd="[object Number]",md="[object Object]",yd="[object RegExp]",bd="[object Set]",hd="[object String]",vd="[object WeakMap]",wd="[object ArrayBuffer]",Cd="[object DataView]",kd="[object Float32Array]",Md="[object Float64Array]",xd="[object Int8Array]",Id="[object Int16Array]",Ad="[object Int32Array]",jd="[object Uint8Array]",Ed="[object Uint8ClampedArray]",Sd="[object Uint16Array]",Ld="[object Uint32Array]",I={};I[kd]=I[Md]=I[xd]=I[Id]=I[Ad]=I[jd]=I[Ed]=I[Sd]=I[Ld]=!0;I[ld]=I[sd]=I[wd]=I[ud]=I[Cd]=I[cd]=I[dd]=I[gd]=I[pd]=I[fd]=I[md]=I[yd]=I[bd]=I[hd]=I[vd]=!1;function Nd(e){return Er(e)&&td(e.length)&&!!I[Ke(e)]}var Td=Nd;function $d(e){return function(t){return e(t)}}var Dd=$d,Ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ye=Ei&&typeof module=="object"&&module&&!module.nodeType&&module,Od=Ye&&Ye.exports===Ei,hr=Od&&Mi.process,_d=function(){try{var e=Ye&&Ye.require&&Ye.require("util").types;return e||hr&&hr.binding&&hr.binding("util")}catch{}}(),Kn=_d,Jn=Kn&&Kn.isTypedArray,MC=Jn?Dd(Jn):Td,zd=Object.prototype,xC=zd.hasOwnProperty;function Pd(e,t){return function(n){return e(t(n))}}var Ud=Pd,IC=Ud(Object.keys,Object),Vd=Object.prototype,AC=Vd.hasOwnProperty,Bd=ie(Object,"create"),Ze=Bd;function Gd(){this.__data__=Ze?Ze(null):{},this.size=0}var Fd=Gd;function Rd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qd=Rd,Hd="__lodash_hash_undefined__",Qd=Object.prototype,Yd=Qd.hasOwnProperty;function Zd(e){var t=this.__data__;if(Ze){var n=t[e];return n===Hd?void 0:n}return Yd.call(t,e)?t[e]:void 0}var Wd=Zd,Kd=Object.prototype,Jd=Kd.hasOwnProperty;function Xd(e){var t=this.__data__;return Ze?t[e]!==void 0:Jd.call(t,e)}var eg=Xd,tg="__lodash_hash_undefined__";function rg(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&t===void 0?tg:t,this}var ng=rg;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=Fd;oe.prototype.delete=qd;oe.prototype.get=Wd;oe.prototype.has=eg;oe.prototype.set=ng;var Xn=oe;function ig(){this.__data__=[],this.size=0}var og=ig;function ag(e,t){for(var n=e.length;n--;)if(J1(e[n][0],t))return n;return-1}var Ut=ag,lg=Array.prototype,sg=lg.splice;function ug(e){var t=this.__data__,n=Ut(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():sg.call(t,n,1),--this.size,!0}var cg=ug;function dg(e){var t=this.__data__,n=Ut(t,e);return n<0?void 0:t[n][1]}var gg=dg;function pg(e){return Ut(this.__data__,e)>-1}var fg=pg;function mg(e,t){var n=this.__data__,r=Ut(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var yg=mg;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=og;ae.prototype.delete=cg;ae.prototype.get=gg;ae.prototype.has=fg;ae.prototype.set=yg;var Vt=ae,bg=ie(O,"Map"),We=bg;function hg(){this.size=0,this.__data__={hash:new Xn,map:new(We||Vt),string:new Xn}}var vg=hg;function wg(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Cg=wg;function kg(e,t){var n=e.__data__;return Cg(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Bt=kg;function Mg(e){var t=Bt(this,e).delete(e);return this.size-=t?1:0,t}var xg=Mg;function Ig(e){return Bt(this,e).get(e)}var Ag=Ig;function jg(e){return Bt(this,e).has(e)}var Eg=jg;function Sg(e,t){var n=Bt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Lg=Sg;function le(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])}}le.prototype.clear=vg;le.prototype.delete=xg;le.prototype.get=Ag;le.prototype.has=Eg;le.prototype.set=Lg;var Si=le;function Ng(){this.__data__=new Vt,this.size=0}var Tg=Ng;function $g(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Dg=$g;function Og(e){return this.__data__.get(e)}var _g=Og;function zg(e){return this.__data__.has(e)}var Pg=zg,Ug=200;function Vg(e,t){var n=this.__data__;if(n instanceof Vt){var r=n.__data__;if(!We||r.length<Ug-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Si(r)}return n.set(e,t),this.size=n.size,this}var Bg=Vg;function Je(e){var t=this.__data__=new Vt(e);this.size=t.size}Je.prototype.clear=Tg;Je.prototype.delete=Dg;Je.prototype.get=_g;Je.prototype.has=Pg;Je.prototype.set=Bg;var Gg=Object.prototype,jC=Gg.propertyIsEnumerable,Fg=ie(O,"DataView"),Mr=Fg,Rg=ie(O,"Promise"),xr=Rg,qg=ie(O,"Set"),Ir=qg,ei="[object Map]",Hg="[object Object]",ti="[object Promise]",ri="[object Set]",ni="[object WeakMap]",ii="[object DataView]",Qg=G(Mr),Yg=G(We),Zg=G(xr),Wg=G(Ir),Kg=G(kr),ee=Ke;(Mr&&ee(new Mr(new ArrayBuffer(1)))!=ii||We&&ee(new We)!=ei||xr&&ee(xr.resolve())!=ti||Ir&&ee(new Ir)!=ri||kr&&ee(new kr)!=ni)&&(ee=function(e){var t=Ke(e),n=t==Hg?e.constructor:void 0,r=n?G(n):"";if(r)switch(r){case Qg:return ii;case Yg:return ei;case Zg:return ti;case Wg:return ri;case Kg:return ni}return t});var EC=O.Uint8Array,Jg="__lodash_hash_undefined__";function Xg(e){return this.__data__.set(e,Jg),this}var ep=Xg;function tp(e){return this.__data__.has(e)}var rp=tp;function Ar(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Si;++t<n;)this.add(e[t])}Ar.prototype.add=Ar.prototype.push=ep;Ar.prototype.has=rp;var oi=ne?ne.prototype:void 0,SC=oi?oi.valueOf:void 0,np=Object.prototype,LC=np.hasOwnProperty,ip=Object.prototype,NC=ip.hasOwnProperty,TC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$C=new RegExp(/[A-Fa-f0-9]{1}/,"g"),DC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function op(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var vr="@imgly/plugin-ai-generation",ap=`
64
64
  <svg>
65
65
  <symbol
66
66
  fill="none"
@@ -121,7 +121,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
121
121
 
122
122
  </symbol>
123
123
  </svg>
124
- `,ap=op,ai="ly.img.ai.quickAction.order",qe="ly.img.ai.quickAction.actions";function lp(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ai}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ai}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${qe}.${t}`))e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{})[n]}}var sp=lp,wr="ly.img.ai.inference.editMode",Li="ly.img.ai.inference.metadata";function Ni(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function up(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 cp({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 dp=cp;function gp({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 pp=gp;function fp({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=mp(r.engine,o,e),await a(n,r)}catch(l){throw re(l)&&i(),l}finally{t&&i()}}}function mp(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 yp=fp;function bp(e,t){switch(t.kind){case"text":return hp(e,t);case"image":return vp(e,t);case"video":return wp(e,t);case"audio":return Cp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function hp(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(jr(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}}}async function vp(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=await n.engine.editor.getMimeType(u.uri);if(a.throwIfAborted(),s==="image/svg+xml")throw new Error("SVG images are not supported");let c=n.engine.block.getCropScaleX(o),d=n.engine.block.getCropScaleY(o),g=n.engine.block.getCropTranslationX(o),f=n.engine.block.getCropTranslationY(o),v=n.engine.block.getCropRotation(o),w=()=>{n.engine.block.setCropScaleX(o,c),n.engine.block.setCropScaleY(o,d),n.engine.block.setCropTranslationX(o,g),n.engine.block.setCropTranslationY(o,f),n.engine.block.setCropRotation(o,v)};if(jr(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 h=e.url,p=await n.engine.editor.getMimeType(h),b=[{uri:await kp(n,h,p),width:u.width,height:u.height}];n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w();let y=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",l),w()},m=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:y,onAfter:m,onCancel:()=>{y()},onApply:()=>{m()}}}}async function wp(e,t){throw new Error("Function not implemented.")}async function Cp(e,t){throw new Error("Function not implemented.")}async function kp(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Mp(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function Mp(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var xp=bp;function Ip({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=Ap(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 re(u)&&l(),u}finally{t&&l()}}}function Ap(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 jp=Ip;function Ep(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 w=new ki(n.engine,Li),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Ni({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=up(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Qe(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await li({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:k?.blockIds??g,confirmationComponentId:l},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw re(M)||Qe(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Qe(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await li({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw re(k)||Qe(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function li(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:wr});let s=new ki(n.engine,Li);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=vi([...o.output.middleware??[],t.debug?wi():void 0,pp({}),...i.confirmation?[i.lockDuringConfirmation?yp({editMode:wr}):jp({editMode:wr}),i.confirmation&&dp({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await xp(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):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:w}}var Sp=Ep;async function Lp(e,t,n){await e.initialize(t);let r=await Tp(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}`]:Np(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",ap),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await $p(e,o,n)}}function Np(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 Tp(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 l1(r,e)),r}return n}}async function $p(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Dp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Op(e,e.input.quickActions,t,n)),r}async function Dp(e,t,n,r){switch(t.type){case"custom":return a1(e,t,n,r);case"schema":return i1(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Op(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=sp(a,o);t.actions.forEach(u=>{let s=u.enable??!0;a.feature.enable(Ni({quickActionId:u.id,quickActionMenuId:o}),s),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:l}=Sp({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)}var si=Lp;function _p(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 zp=_p,Pp="@imgly/plugin-ai-image-generation",Up=`
124
+ `,lp=ap,ai="ly.img.ai.quickAction.order",qe="ly.img.ai.quickAction.actions";function sp(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ai}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ai}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${qe}.${t}`))e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${qe}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${qe}.${t}`,{})[n]}}var up=sp,wr="ly.img.ai.inference.editMode",Li="ly.img.ai.inference.metadata";function Ni(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function cp(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 dp({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var gp=dp;function pp({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 fp=pp;function mp({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=yp(r.engine,o,e),await a(n,r)}catch(s){throw re(s)&&i(),s}finally{t&&i()}}}function yp(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var bp=mp;function hp(e,t){switch(t.kind){case"text":return vp(e,t);case"image":return wp(e,t);case"video":return Cp(e,t);case"audio":return kp(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function vp(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(jr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function wp(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(jr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await Mp(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function Cp(e,t){throw new Error("Function not implemented.")}async function kp(e,t){throw new Error("Function not implemented.")}async function Mp(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${op(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var xp=hp;function Ip({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=Ap(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 re(u)&&s(),u}finally{t&&s()}}}function Ap(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 jp=Ip;function Ep(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ki(n.engine,Li),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Ni({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=cp(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Qe(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await li({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw re(M)||Qe(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Qe(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await li({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw re(k)||Qe(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function li(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:wr});let l=new ki(n.engine,Li);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=vi([...o.output.middleware??[],t.debug?wi():void 0,fp({}),...i.confirmation?[i.lockDuringConfirmation?bp({editMode:wr}):jp({editMode:wr}),i.confirmation&&gp({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await xp(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var Sp=Ep;async function Lp(e,t,n){await e.initialize(t);let r=await Tp(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}`]:Np(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",lp),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await $p(e,o,n)}}function Np(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 Tp(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 l1(r,e)),r}return n}}async function $p(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Dp(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Op(e,e.input.quickActions,t,n)),r}async function Dp(e,t,n,r){switch(t.type){case"custom":return a1(e,t,n,r);case"schema":return i1(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Op(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=up(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(Ni({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=Sp({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var si=Lp;function _p(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 zp=_p,Pp="@imgly/plugin-ai-image-generation",Up=`
125
125
  <svg>
126
126
  <symbol
127
127
  fill="none"
@@ -135,8 +135,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
135
135
 
136
136
  </symbol>
137
137
  </svg>
138
- `,Vp=Up,Bp="@imgly/plugin-ai-image-generation-web",T="ly.img.ai/image-generation",Cr="ly.img.ai.image-generation.fromType";function Gp(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(Pp,Vp),t.setTranslations({en:{[`panel.${T}`]:"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(T),g=t.ui.experimental.getGlobalStateValue(Cr,"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(Cr,c),t.ui.openPanel(T)}},duration:"long"}}}o!=null&&(o.output.notification=l("fromText")),i!=null&&(i.output.notification=l("fromImage"));let u=o!=null?await si(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await si(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(T,c=>{let{builder:d,experimental:g}=c,f=g.global(Cr,"fromText");switch(d.Section(`${T}.fromType.section`,{children:()=>{d.ButtonGroup(`${T}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${T}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Pt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${T}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Pt(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(T,c),t.i18n.setTranslations({en:{[`${T}.dock.label`]:"AI Image"}}),zp({cesdk:t,panelId:T})}}}}var Fp=Gp,Rp=e=>({name:Bp,version:"0.1.0",...Fp(e)}),Ti=Rp;function Ki(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 tt(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=Ki(e,t.$ref),a={...tt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=tt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>tt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=tt(e,t[a],n));return r}return t}function qp(e){return tt(e,{...e})}function Hp(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 Qp(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Yp(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Yp(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 Ji=Qp,Zp="ly.img.ai",Sr="ly.img.ai/temp";async function Wp(e,t){return e.engine.asset.findAllSources().includes(Sr)||e.engine.asset.addLocalSource(Sr),e.engine.asset.apply(Sr,t)}function Xi(e){return`${Zp}/${e}`}function Kp(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 Jp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Xp(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 eo(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 Vr(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 ce(e){return e instanceof Error&&e.name==="AbortError"}function to(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?e2(e,t,n,r,a,o):no(e,t,n,r,a,o);case"boolean":return io(e,t,n,r,a,o);case"number":case"integer":return oo(e,t,n,r,a,o);case"object":return ro(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return t2(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ro(e,t,n,r,a,o){let i=Ji(t.schema??{},r).reduce((l,u)=>{let s=to(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function no(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=r2(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 e2(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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??eo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=l(s,f);return i.Select(s,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function io(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 oo(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 w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function t2(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 y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??eo(M),icon:k[M]})}):(f[m]=()=>no(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>io(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>oo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>ro(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,w);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 r2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var n2=to,i2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ao=i2;function o2(e,t,n){switch(t){case"image":return a2(e,n[t]);case"video":return l2(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function a2(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:ao,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function l2(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:ao,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var s2=o2;function u2(e,t){switch(e){case"image":return c2(t[e]);case"video":return d2(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function c2(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
139
- `,"+")}`}}function d2(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var g2=u2;async function p2(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 f2(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 m2(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 y2(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f2(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 m2(e,t,n){let r=t.width,a=t.height,o=await Xp(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 y2(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 $i=p2;function lo(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(w,h)=>l(s+1,w,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 b2(){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 so=b2;async function h2(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=Jp(),v;if(u){if(v=s2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Wp(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),y=l.engine.block.getPositionY(c),m=l.engine.block.duplicate(c);l.engine.block.setPositionX(m,b),l.engine.block.setPositionY(m,y),l.engine.block.destroy(c),c=m}if(Gt(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 w=lo([...r.output.middleware??[],o.debug?so():void 0]),h;if(o.dryRun?h=await v2(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l})).result,Vr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Gt(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 $i(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)),Gt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await $i(f,e,g,h),Gt(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)&&(ce(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Gt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function v2(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=g2(e,t);return await w2(3e3),n}async function w2(e){return new Promise(t=>{setTimeout(t,e)})}var C2=h2;function k2(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),M2(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kp(e)}))}function M2(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 rt=k2;function Ft(e){return`${e}.generating`}function x2(e){return`${e}.abort`}function I2(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(x2(c),()=>{}),f=l.global(Ft(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await C2(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;A2(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(ce(C))return;rt(C,{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(m,{provider:t,abort:h}):await m()}}),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 A2(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 uo=I2;async function j2(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=qp(t.document),l=Ki(i,t.inputReference);if(!Hp(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Ji(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=n2(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});uo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xi(o),c),c}var E2=j2;async function S2(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Ft(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return uo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xi(o),l),l}var L2=S2,N2=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;ue(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=()=>{ue(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 ue(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ue(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 ue(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]=ue(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]=ue(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)}},co=T2,$2=typeof global=="object"&&global&&global.Object===Object&&global,go=$2,D2=typeof self=="object"&&self&&self.Object===Object&&self,O2=go||D2||Function("return this")(),_=O2,_2=_.Symbol,de=_2,po=Object.prototype,z2=po.hasOwnProperty,P2=po.toString,Xe=de?de.toStringTag:void 0;function U2(e){var t=z2.call(e,Xe),n=e[Xe];try{e[Xe]=void 0;var r=!0}catch{}var a=P2.call(e);return r&&(t?e[Xe]=n:delete e[Xe]),a}var V2=U2,B2=Object.prototype,G2=B2.toString;function F2(e){return G2.call(e)}var R2=F2,q2="[object Null]",H2="[object Undefined]",Di=de?de.toStringTag:void 0;function Q2(e){return e==null?e===void 0?H2:q2:Di&&Di in Object(e)?V2(e):R2(e)}var at=Q2;function Y2(e){return e!=null&&typeof e=="object"}var Br=Y2,PC=Array.isArray;function Z2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fo=Z2,W2="[object AsyncFunction]",K2="[object Function]",J2="[object GeneratorFunction]",X2="[object Proxy]";function e0(e){if(!fo(e))return!1;var t=at(e);return t==K2||t==J2||t==W2||t==X2}var t0=e0,r0=_["__core-js_shared__"],Lr=r0,Oi=function(){var e=/[^.]+$/.exec(Lr&&Lr.keys&&Lr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function n0(e){return!!Oi&&Oi in e}var i0=n0,o0=Function.prototype,a0=o0.toString;function l0(e){if(e!=null){try{return a0.call(e)}catch{}try{return e+""}catch{}}return""}var F=l0,s0=/[\\^$.*+?()[\]{}|]/g,u0=/^\[object .+?Constructor\]$/,c0=Function.prototype,d0=Object.prototype,g0=c0.toString,p0=d0.hasOwnProperty,f0=RegExp("^"+g0.call(p0).replace(s0,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m0(e){if(!fo(e)||i0(e))return!1;var t=t0(e)?f0:u0;return t.test(F(e))}var y0=m0;function b0(e,t){return e?.[t]}var h0=b0;function v0(e,t){var n=h0(e,t);return y0(n)?n:void 0}var ge=v0,w0=ge(_,"WeakMap"),Or=w0;function C0(e,t){return e===t||e!==e&&t!==t}var k0=C0,M0=9007199254740991;function x0(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=M0}var I0=x0,UC=Object.prototype,A0="[object Arguments]";function j0(e){return Br(e)&&at(e)==A0}var _i=j0,mo=Object.prototype,E0=mo.hasOwnProperty,S0=mo.propertyIsEnumerable,VC=_i(function(){return arguments}())?_i:function(e){return Br(e)&&E0.call(e,"callee")&&!S0.call(e,"callee")},yo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=yo&&typeof module=="object"&&module&&!module.nodeType&&module,L0=zi&&zi.exports===yo,Pi=L0?_.Buffer:void 0,BC=Pi?Pi.isBuffer:void 0,N0="[object Arguments]",T0="[object Array]",$0="[object Boolean]",D0="[object Date]",O0="[object Error]",_0="[object Function]",z0="[object Map]",P0="[object Number]",U0="[object Object]",V0="[object RegExp]",B0="[object Set]",G0="[object String]",F0="[object WeakMap]",R0="[object ArrayBuffer]",q0="[object DataView]",H0="[object Float32Array]",Q0="[object Float64Array]",Y0="[object Int8Array]",Z0="[object Int16Array]",W0="[object Int32Array]",K0="[object Uint8Array]",J0="[object Uint8ClampedArray]",X0="[object Uint16Array]",ef="[object Uint32Array]",A={};A[H0]=A[Q0]=A[Y0]=A[Z0]=A[W0]=A[K0]=A[J0]=A[X0]=A[ef]=!0;A[N0]=A[T0]=A[R0]=A[$0]=A[q0]=A[D0]=A[O0]=A[_0]=A[z0]=A[P0]=A[U0]=A[V0]=A[B0]=A[G0]=A[F0]=!1;function tf(e){return Br(e)&&I0(e.length)&&!!A[at(e)]}var rf=tf;function nf(e){return function(t){return e(t)}}var of=nf,bo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nt=bo&&typeof module=="object"&&module&&!module.nodeType&&module,af=nt&&nt.exports===bo,Nr=af&&go.process,lf=function(){try{var e=nt&&nt.require&&nt.require("util").types;return e||Nr&&Nr.binding&&Nr.binding("util")}catch{}}(),Ui=lf,Vi=Ui&&Ui.isTypedArray,GC=Vi?of(Vi):rf,sf=Object.prototype,FC=sf.hasOwnProperty;function uf(e,t){return function(n){return e(t(n))}}var cf=uf,RC=cf(Object.keys,Object),df=Object.prototype,qC=df.hasOwnProperty,gf=ge(Object,"create"),it=gf;function pf(){this.__data__=it?it(null):{},this.size=0}var ff=pf;function mf(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var yf=mf,bf="__lodash_hash_undefined__",hf=Object.prototype,vf=hf.hasOwnProperty;function wf(e){var t=this.__data__;if(it){var n=t[e];return n===bf?void 0:n}return vf.call(t,e)?t[e]:void 0}var Cf=wf,kf=Object.prototype,Mf=kf.hasOwnProperty;function xf(e){var t=this.__data__;return it?t[e]!==void 0:Mf.call(t,e)}var If=xf,Af="__lodash_hash_undefined__";function jf(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=it&&t===void 0?Af:t,this}var Ef=jf;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=ff;pe.prototype.delete=yf;pe.prototype.get=Cf;pe.prototype.has=If;pe.prototype.set=Ef;var Bi=pe;function Sf(){this.__data__=[],this.size=0}var Lf=Sf;function Nf(e,t){for(var n=e.length;n--;)if(k0(e[n][0],t))return n;return-1}var Rt=Nf,Tf=Array.prototype,$f=Tf.splice;function Df(e){var t=this.__data__,n=Rt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():$f.call(t,n,1),--this.size,!0}var Of=Df;function _f(e){var t=this.__data__,n=Rt(t,e);return n<0?void 0:t[n][1]}var zf=_f;function Pf(e){return Rt(this.__data__,e)>-1}var Uf=Pf;function Vf(e,t){var n=this.__data__,r=Rt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Bf=Vf;function fe(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])}}fe.prototype.clear=Lf;fe.prototype.delete=Of;fe.prototype.get=zf;fe.prototype.has=Uf;fe.prototype.set=Bf;var qt=fe,Gf=ge(_,"Map"),ot=Gf;function Ff(){this.size=0,this.__data__={hash:new Bi,map:new(ot||qt),string:new Bi}}var Rf=Ff;function qf(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Hf=qf;function Qf(e,t){var n=e.__data__;return Hf(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Ht=Qf;function Yf(e){var t=Ht(this,e).delete(e);return this.size-=t?1:0,t}var Zf=Yf;function Wf(e){return Ht(this,e).get(e)}var Kf=Wf;function Jf(e){return Ht(this,e).has(e)}var Xf=Jf;function em(e,t){var n=Ht(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var tm=em;function me(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])}}me.prototype.clear=Rf;me.prototype.delete=Zf;me.prototype.get=Kf;me.prototype.has=Xf;me.prototype.set=tm;var ho=me;function rm(){this.__data__=new qt,this.size=0}var nm=rm;function im(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var om=im;function am(e){return this.__data__.get(e)}var lm=am;function sm(e){return this.__data__.has(e)}var um=sm,cm=200;function dm(e,t){var n=this.__data__;if(n instanceof qt){var r=n.__data__;if(!ot||r.length<cm-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ho(r)}return n.set(e,t),this.size=n.size,this}var gm=dm;function lt(e){var t=this.__data__=new qt(e);this.size=t.size}lt.prototype.clear=nm;lt.prototype.delete=om;lt.prototype.get=lm;lt.prototype.has=um;lt.prototype.set=gm;var pm=Object.prototype,HC=pm.propertyIsEnumerable,fm=ge(_,"DataView"),_r=fm,mm=ge(_,"Promise"),zr=mm,ym=ge(_,"Set"),Pr=ym,Gi="[object Map]",bm="[object Object]",Fi="[object Promise]",Ri="[object Set]",qi="[object WeakMap]",Hi="[object DataView]",hm=F(_r),vm=F(ot),wm=F(zr),Cm=F(Pr),km=F(Or),se=at;(_r&&se(new _r(new ArrayBuffer(1)))!=Hi||ot&&se(new ot)!=Gi||zr&&se(zr.resolve())!=Fi||Pr&&se(new Pr)!=Ri||Or&&se(new Or)!=qi)&&(se=function(e){var t=at(e),n=t==bm?e.constructor:void 0,r=n?F(n):"";if(r)switch(r){case hm:return Hi;case vm:return Gi;case wm:return Fi;case Cm:return Ri;case km:return qi}return t});var QC=_.Uint8Array,Mm="__lodash_hash_undefined__";function xm(e){return this.__data__.set(e,Mm),this}var Im=xm;function Am(e){return this.__data__.has(e)}var jm=Am;function Ur(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ho;++t<n;)this.add(e[t])}Ur.prototype.add=Ur.prototype.push=Im;Ur.prototype.has=jm;var Qi=de?de.prototype:void 0,YC=Qi?Qi.valueOf:void 0,Em=Object.prototype,ZC=Em.hasOwnProperty,Sm=Object.prototype,WC=Sm.hasOwnProperty,KC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XC=new RegExp(/[A-Fa-f0-9]{2}/,"g"),Tr="@imgly/plugin-ai-generation",Lm=`
138
+ `,Vp=Up,Bp="@imgly/plugin-ai-image-generation-web",T="ly.img.ai/image-generation",Cr="ly.img.ai.image-generation.fromType";function Gp(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(Pp,Vp),t.setTranslations({en:{[`panel.${T}`]:"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 s(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen(T),g=t.ui.experimental.getGlobalStateValue(Cr,"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(Cr,c),t.ui.openPanel(T)}},duration:"long"}}}o!=null&&(o.output.notification=s("fromText")),i!=null&&(i.output.notification=s("fromImage"));let u=o!=null?await si(o,{cesdk:t,engine:t.engine},n):void 0,l=i!=null?await si(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&l?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&l?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel(T,c=>{let{builder:d,experimental:g}=c,f=g.global(Cr,"fromText");switch(d.Section(`${T}.fromType.section`,{children:()=>{d.ButtonGroup(`${T}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{d.Button(`${T}.fromType.buttonGroup.fromText`,{label:"Text",icon:f.value!=="fromText"&&o!=null&&g.global(Pt(o.id),!1).value?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),d.Button(`${T}.fromType.buttonGroup.fromImage`,{label:"Image",icon:f.value!=="fromImage"&&i!=null&&g.global(Pt(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":{l?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??l?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel(T,c),t.i18n.setTranslations({en:{[`${T}.dock.label`]:"AI Image"}}),zp({cesdk:t,panelId:T})}}}}var Fp=Gp,Rp=e=>({name:Bp,version:"0.1.3",...Fp(e)}),Ti=Rp;function Ki(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 tt(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=Ki(e,t.$ref),a={...tt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=tt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>tt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=tt(e,t[a],n));return r}return t}function qp(e){return tt(e,{...e})}function Hp(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function Qp(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Yp(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Yp(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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Ji=Qp,Zp="ly.img.ai",Sr="ly.img.ai/temp";async function Wp(e,t){return e.engine.asset.findAllSources().includes(Sr)||e.engine.asset.addLocalSource(Sr),e.engine.asset.apply(Sr,t)}function Xi(e){return`${Zp}/${e}`}function Kp(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 Jp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Xp(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 eo(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 Vr(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 ce(e){return e instanceof Error&&e.name==="AbortError"}function to(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?e2(e,t,n,r,a,o):no(e,t,n,r,a,o);case"boolean":return io(e,t,n,r,a,o);case"number":case"integer":return oo(e,t,n,r,a,o);case"object":return ro(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return t2(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function ro(e,t,n,r,a,o){let i=Ji(t.schema??{},r).reduce((s,u)=>{let l=to(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function no(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=r2(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function e2(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??eo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function io(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function oo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function t2(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??eo(M),icon:k[M]})}):(f[m]=()=>no(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>io(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>oo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>ro(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{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 r2(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var n2=to,i2="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ao=i2;function o2(e,t,n){switch(t){case"image":return a2(e,n[t]);case"video":return l2(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function a2(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:ao,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function l2(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:ao,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var s2=o2;function u2(e,t){switch(e){case"image":return c2(t[e]);case"video":return d2(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function c2(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
139
+ `,"+")}`}}function d2(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var g2=u2;async function p2(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 f2(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 m2(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 y2(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f2(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 m2(e,t,n){let r=t.width,a=t.height,o=await Xp(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 y2(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 $i=p2;function lo(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function b2(){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 so=b2;async function h2(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Jp(),v;if(u){if(v=s2(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Wp(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Gt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=lo([...r.output.middleware??[],o.debug?so():void 0]),h;if(o.dryRun?h=await v2(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,Vr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Gt(s,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&&s.engine.block.isValid(c)&&(p=await $i(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Gt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await $i(f,e,g,h),Gt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(ce(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Gt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function v2(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=g2(e,t);return await w2(3e3),n}async function w2(e){return new Promise(t=>{setTimeout(t,e)})}var C2=h2;function k2(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),M2(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kp(e)}))}function M2(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 rt=k2;function Ft(e){return`${e}.generating`}function x2(e){return`${e}.abort`}function I2(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(x2(c),()=>{}),f=s.global(Ft(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await C2(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;A2(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(ce(C))return;rt(C,{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(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function A2(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 uo=I2;async function j2(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=qp(t.document),s=Ki(i,t.inputReference);if(!Hp(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=Ji(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=n2(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});uo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Xi(o),c),c}var E2=j2;async function S2(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Ft(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return uo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Xi(o),s),s}var L2=S2,N2=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let 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;ue(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=()=>{ue(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 ue(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),ue(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function ue(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]=ue(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]=ue(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)}},co=T2,$2=typeof global=="object"&&global&&global.Object===Object&&global,go=$2,D2=typeof self=="object"&&self&&self.Object===Object&&self,O2=go||D2||Function("return this")(),_=O2,_2=_.Symbol,de=_2,po=Object.prototype,z2=po.hasOwnProperty,P2=po.toString,Xe=de?de.toStringTag:void 0;function U2(e){var t=z2.call(e,Xe),n=e[Xe];try{e[Xe]=void 0;var r=!0}catch{}var a=P2.call(e);return r&&(t?e[Xe]=n:delete e[Xe]),a}var V2=U2,B2=Object.prototype,G2=B2.toString;function F2(e){return G2.call(e)}var R2=F2,q2="[object Null]",H2="[object Undefined]",Di=de?de.toStringTag:void 0;function Q2(e){return e==null?e===void 0?H2:q2:Di&&Di in Object(e)?V2(e):R2(e)}var at=Q2;function Y2(e){return e!=null&&typeof e=="object"}var Br=Y2,PC=Array.isArray;function Z2(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fo=Z2,W2="[object AsyncFunction]",K2="[object Function]",J2="[object GeneratorFunction]",X2="[object Proxy]";function ef(e){if(!fo(e))return!1;var t=at(e);return t==K2||t==J2||t==W2||t==X2}var tf=ef,rf=_["__core-js_shared__"],Lr=rf,Oi=function(){var e=/[^.]+$/.exec(Lr&&Lr.keys&&Lr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nf(e){return!!Oi&&Oi in e}var of=nf,af=Function.prototype,lf=af.toString;function sf(e){if(e!=null){try{return lf.call(e)}catch{}try{return e+""}catch{}}return""}var F=sf,uf=/[\\^$.*+?()[\]{}|]/g,cf=/^\[object .+?Constructor\]$/,df=Function.prototype,gf=Object.prototype,pf=df.toString,ff=gf.hasOwnProperty,mf=RegExp("^"+pf.call(ff).replace(uf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yf(e){if(!fo(e)||of(e))return!1;var t=tf(e)?mf:cf;return t.test(F(e))}var bf=yf;function hf(e,t){return e?.[t]}var vf=hf;function wf(e,t){var n=vf(e,t);return bf(n)?n:void 0}var ge=wf,Cf=ge(_,"WeakMap"),Or=Cf;function kf(e,t){return e===t||e!==e&&t!==t}var Mf=kf,xf=9007199254740991;function If(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xf}var Af=If,UC=Object.prototype,jf="[object Arguments]";function Ef(e){return Br(e)&&at(e)==jf}var _i=Ef,mo=Object.prototype,Sf=mo.hasOwnProperty,Lf=mo.propertyIsEnumerable,VC=_i(function(){return arguments}())?_i:function(e){return Br(e)&&Sf.call(e,"callee")&&!Lf.call(e,"callee")},yo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=yo&&typeof module=="object"&&module&&!module.nodeType&&module,Nf=zi&&zi.exports===yo,Pi=Nf?_.Buffer:void 0,BC=Pi?Pi.isBuffer:void 0,Tf="[object Arguments]",$f="[object Array]",Df="[object Boolean]",Of="[object Date]",_f="[object Error]",zf="[object Function]",Pf="[object Map]",Uf="[object Number]",Vf="[object Object]",Bf="[object RegExp]",Gf="[object Set]",Ff="[object String]",Rf="[object WeakMap]",qf="[object ArrayBuffer]",Hf="[object DataView]",Qf="[object Float32Array]",Yf="[object Float64Array]",Zf="[object Int8Array]",Wf="[object Int16Array]",Kf="[object Int32Array]",Jf="[object Uint8Array]",Xf="[object Uint8ClampedArray]",e0="[object Uint16Array]",t0="[object Uint32Array]",A={};A[Qf]=A[Yf]=A[Zf]=A[Wf]=A[Kf]=A[Jf]=A[Xf]=A[e0]=A[t0]=!0;A[Tf]=A[$f]=A[qf]=A[Df]=A[Hf]=A[Of]=A[_f]=A[zf]=A[Pf]=A[Uf]=A[Vf]=A[Bf]=A[Gf]=A[Ff]=A[Rf]=!1;function r0(e){return Br(e)&&Af(e.length)&&!!A[at(e)]}var n0=r0;function i0(e){return function(t){return e(t)}}var o0=i0,bo=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nt=bo&&typeof module=="object"&&module&&!module.nodeType&&module,a0=nt&&nt.exports===bo,Nr=a0&&go.process,l0=function(){try{var e=nt&&nt.require&&nt.require("util").types;return e||Nr&&Nr.binding&&Nr.binding("util")}catch{}}(),Ui=l0,Vi=Ui&&Ui.isTypedArray,GC=Vi?o0(Vi):n0,s0=Object.prototype,FC=s0.hasOwnProperty;function u0(e,t){return function(n){return e(t(n))}}var c0=u0,RC=c0(Object.keys,Object),d0=Object.prototype,qC=d0.hasOwnProperty,g0=ge(Object,"create"),it=g0;function p0(){this.__data__=it?it(null):{},this.size=0}var f0=p0;function m0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var y0=m0,b0="__lodash_hash_undefined__",h0=Object.prototype,v0=h0.hasOwnProperty;function w0(e){var t=this.__data__;if(it){var n=t[e];return n===b0?void 0:n}return v0.call(t,e)?t[e]:void 0}var C0=w0,k0=Object.prototype,M0=k0.hasOwnProperty;function x0(e){var t=this.__data__;return it?t[e]!==void 0:M0.call(t,e)}var I0=x0,A0="__lodash_hash_undefined__";function j0(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=it&&t===void 0?A0:t,this}var E0=j0;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=f0;pe.prototype.delete=y0;pe.prototype.get=C0;pe.prototype.has=I0;pe.prototype.set=E0;var Bi=pe;function S0(){this.__data__=[],this.size=0}var L0=S0;function N0(e,t){for(var n=e.length;n--;)if(Mf(e[n][0],t))return n;return-1}var Rt=N0,T0=Array.prototype,$0=T0.splice;function D0(e){var t=this.__data__,n=Rt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():$0.call(t,n,1),--this.size,!0}var O0=D0;function _0(e){var t=this.__data__,n=Rt(t,e);return n<0?void 0:t[n][1]}var z0=_0;function P0(e){return Rt(this.__data__,e)>-1}var U0=P0;function V0(e,t){var n=this.__data__,r=Rt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var B0=V0;function fe(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])}}fe.prototype.clear=L0;fe.prototype.delete=O0;fe.prototype.get=z0;fe.prototype.has=U0;fe.prototype.set=B0;var qt=fe,G0=ge(_,"Map"),ot=G0;function F0(){this.size=0,this.__data__={hash:new Bi,map:new(ot||qt),string:new Bi}}var R0=F0;function q0(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var H0=q0;function Q0(e,t){var n=e.__data__;return H0(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Ht=Q0;function Y0(e){var t=Ht(this,e).delete(e);return this.size-=t?1:0,t}var Z0=Y0;function W0(e){return Ht(this,e).get(e)}var K0=W0;function J0(e){return Ht(this,e).has(e)}var X0=J0;function em(e,t){var n=Ht(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var tm=em;function me(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])}}me.prototype.clear=R0;me.prototype.delete=Z0;me.prototype.get=K0;me.prototype.has=X0;me.prototype.set=tm;var ho=me;function rm(){this.__data__=new qt,this.size=0}var nm=rm;function im(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var om=im;function am(e){return this.__data__.get(e)}var lm=am;function sm(e){return this.__data__.has(e)}var um=sm,cm=200;function dm(e,t){var n=this.__data__;if(n instanceof qt){var r=n.__data__;if(!ot||r.length<cm-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ho(r)}return n.set(e,t),this.size=n.size,this}var gm=dm;function lt(e){var t=this.__data__=new qt(e);this.size=t.size}lt.prototype.clear=nm;lt.prototype.delete=om;lt.prototype.get=lm;lt.prototype.has=um;lt.prototype.set=gm;var pm=Object.prototype,HC=pm.propertyIsEnumerable,fm=ge(_,"DataView"),_r=fm,mm=ge(_,"Promise"),zr=mm,ym=ge(_,"Set"),Pr=ym,Gi="[object Map]",bm="[object Object]",Fi="[object Promise]",Ri="[object Set]",qi="[object WeakMap]",Hi="[object DataView]",hm=F(_r),vm=F(ot),wm=F(zr),Cm=F(Pr),km=F(Or),se=at;(_r&&se(new _r(new ArrayBuffer(1)))!=Hi||ot&&se(new ot)!=Gi||zr&&se(zr.resolve())!=Fi||Pr&&se(new Pr)!=Ri||Or&&se(new Or)!=qi)&&(se=function(e){var t=at(e),n=t==bm?e.constructor:void 0,r=n?F(n):"";if(r)switch(r){case hm:return Hi;case vm:return Gi;case wm:return Fi;case Cm:return Ri;case km:return qi}return t});var QC=_.Uint8Array,Mm="__lodash_hash_undefined__";function xm(e){return this.__data__.set(e,Mm),this}var Im=xm;function Am(e){return this.__data__.has(e)}var jm=Am;function Ur(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new ho;++t<n;)this.add(e[t])}Ur.prototype.add=Ur.prototype.push=Im;Ur.prototype.has=jm;var Qi=de?de.prototype:void 0,YC=Qi?Qi.valueOf:void 0,Em=Object.prototype,ZC=Em.hasOwnProperty,Sm=Object.prototype,WC=Sm.hasOwnProperty,KC=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JC=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XC=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Lm(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var Tr="@imgly/plugin-ai-generation",Nm=`
140
140
  <svg>
141
141
  <symbol
142
142
  fill="none"
@@ -197,8 +197,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
197
197
 
198
198
  </symbol>
199
199
  </svg>
200
- `,Nm=Lm,Yi="ly.img.ai.quickAction.order",et="ly.img.ai.quickAction.actions";function Tm(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Yi}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yi}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${et}.${t}`))e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{})[n]}}var $m=Tm,$r="ly.img.ai.inference.editMode",vo="ly.img.ai.inference.metadata";function wo(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Dm(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 Om({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 _m=Om;function zm({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 Pm=zm;function Um({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=Vm(r.engine,o,e),await a(n,r)}catch(l){throw ce(l)&&i(),l}finally{t&&i()}}}function Vm(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 Bm=Um;function Gm(e,t){switch(t.kind){case"text":return Fm(e,t);case"image":return Rm(e,t);case"video":return qm(e,t);case"audio":return Hm(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Fm(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(Vr(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}}}async function Rm(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=await n.engine.editor.getMimeType(u.uri);if(a.throwIfAborted(),s==="image/svg+xml")throw new Error("SVG images are not supported");let c=n.engine.block.getCropScaleX(o),d=n.engine.block.getCropScaleY(o),g=n.engine.block.getCropTranslationX(o),f=n.engine.block.getCropTranslationY(o),v=n.engine.block.getCropRotation(o),w=()=>{n.engine.block.setCropScaleX(o,c),n.engine.block.setCropScaleY(o,d),n.engine.block.setCropTranslationX(o,g),n.engine.block.setCropTranslationY(o,f),n.engine.block.setCropRotation(o,v)};if(Vr(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 h=e.url,p=await n.engine.editor.getMimeType(h),b=[{uri:await Qm(n,h,p),width:u.width,height:u.height}];n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w();let y=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",l),w()},m=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:y,onAfter:m,onCancel:()=>{y()},onApply:()=>{m()}}}}async function qm(e,t){throw new Error("Function not implemented.")}async function Hm(e,t){throw new Error("Function not implemented.")}async function Qm(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Ym(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function Ym(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var Zm=Gm;function Wm({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=Km(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 ce(u)&&l(),u}finally{t&&l()}}}function Km(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 Jm=Wm;function Xm(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 w=new co(n.engine,vo),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(wo({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=Dm(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{rt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Zi({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:k?.blockIds??g,confirmationComponentId:l},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw ce(M)||rt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{rt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Zi({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw ce(k)||rt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Zi(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:$r});let s=new co(n.engine,vo);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=lo([...o.output.middleware??[],t.debug?so():void 0,Pm({}),...i.confirmation?[i.lockDuringConfirmation?Bm({editMode:$r}):Jm({editMode:$r}),i.confirmation&&_m({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await Zm(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):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:w}}var e4=Xm;async function t4(e,t,n){await e.initialize(t);let r=await n4(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}`]:r4(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Nm),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await i4(e,o,n)}}function r4(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 n4(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 N2(r,e)),r}return n}}async function i4(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await o4(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),a4(e,e.input.quickActions,t,n)),r}async function o4(e,t,n,r){switch(t.type){case"custom":return L2(e,t,n,r);case"schema":return E2(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function a4(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=$m(a,o);t.actions.forEach(u=>{let s=u.enable??!0;a.feature.enable(wo({quickActionId:u.id,quickActionMenuId:o}),s),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:l}=e4({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)}var Wi=t4;function l4(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 s4=l4,u4="@imgly/plugin-ai-video-generation-web",$="ly.img.ai/video-generation",Dr="ly.img.ai.video-generation.fromType";function c4(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.${$}`]:"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($),g=t.ui.experimental.getGlobalStateValue(Dr)===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(Dr,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 Wi(o,{cesdk:t,engine:t.engine},n):void 0,s=i!=null?await Wi(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(Dr,"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(Ft(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(Ft(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 Video"}}),s4({cesdk:t,panelId:$})}}}}var d4=c4,g4=e=>({name:u4,version:"0.1.0",...d4(e)}),Co=g4;function Vo(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 dt(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=Vo(e,t.$ref),a={...dt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=dt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>dt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=dt(e,t[a],n));return r}return t}function p4(e){return dt(e,{...e})}function f4(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 m4(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return y4(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function y4(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 Bo=m4,b4="ly.img.ai",Gr="ly.img.ai/temp";async function h4(e,t){return e.engine.asset.findAllSources().includes(Gr)||e.engine.asset.addLocalSource(Gr),e.engine.asset.apply(Gr,t)}function Go(e){return`${b4}/${e}`}function v4(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 w4(){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 C4(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 Fo(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 Jr(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 he(e){return e instanceof Error&&e.name==="AbortError"}function Ro(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?k4(e,t,n,r,a,o):Ho(e,t,n,r,a,o);case"boolean":return Qo(e,t,n,r,a,o);case"number":case"integer":return Yo(e,t,n,r,a,o);case"object":return qo(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return M4(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function qo(e,t,n,r,a,o){let i=Bo(t.schema??{},r).reduce((l,u)=>{let s=Ro(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}function Ho(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=x4(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 k4(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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Fo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=l(s,f);return i.Select(s,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function Qo(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 Yo(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 w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function M4(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 y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Fo(M),icon:k[M]})}):(f[m]=()=>Ho(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>Qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>Yo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,w);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 x4(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var I4=Ro,A4="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Zo=A4;function j4(e,t,n){switch(t){case"image":return E4(e,n[t]);case"video":return S4(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function E4(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Zo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function S4(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Zo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var L4=j4;function N4(e,t){switch(e){case"image":return T4(t[e]);case"video":return $4(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function T4(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
201
- `,"+")}`}}function $4(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var D4=N4;async function O4(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 _4(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 z4(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 P4(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _4(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 z4(e,t,n){let r=t.width,a=t.height,o=await C4(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 P4(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 ko=O4;function Wo(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(w,h)=>l(s+1,w,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 U4(){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 Ko=U4;async function V4(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=w4(),v;if(u){if(v=L4(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await h4(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),y=l.engine.block.getPositionY(c),m=l.engine.block.duplicate(c);l.engine.block.setPositionX(m,b),l.engine.block.setPositionY(m,y),l.engine.block.destroy(c),c=m}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 w=Wo([...r.output.middleware??[],o.debug?Ko():void 0]),h;if(o.dryRun?h=await B4(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l})).result,Jr(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 ko(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 ko(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)&&(he(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}async function B4(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=D4(e,t);return await G4(3e3),n}async function G4(e){return new Promise(t=>{setTimeout(t,e)})}var F4=V4;function R4(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),q4(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:v4(e)}))}function q4(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 gt=R4;function Jo(e){return`${e}.generating`}function H4(e){return`${e}.abort`}function Q4(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(H4(c),()=>{}),f=l.global(Jo(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await F4(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;Y4(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(he(C))return;gt(C,{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(m,{provider:t,abort:h}):await m()}}),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 Y4(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 Xo=Q4;async function Z4(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=p4(t.document),l=Vo(i,t.inputReference);if(!f4(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=Bo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=I4(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Xo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Go(o),c),c}var W4=Z4;async function K4(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Jo(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Xo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Go(o),l),l}var J4=K4,X4=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;be(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=()=>{be(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 be(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),be(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 be(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]=be(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]=be(a,t,o)}return e}var e5=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)}},ea=e5,t5=typeof global=="object"&&global&&global.Object===Object&&global,ta=t5,r5=typeof self=="object"&&self&&self.Object===Object&&self,n5=ta||r5||Function("return this")(),z=n5,i5=z.Symbol,ve=i5,ra=Object.prototype,o5=ra.hasOwnProperty,a5=ra.toString,st=ve?ve.toStringTag:void 0;function l5(e){var t=o5.call(e,st),n=e[st];try{e[st]=void 0;var r=!0}catch{}var a=a5.call(e);return r&&(t?e[st]=n:delete e[st]),a}var s5=l5,u5=Object.prototype,c5=u5.toString;function d5(e){return c5.call(e)}var g5=d5,p5="[object Null]",f5="[object Undefined]",Mo=ve?ve.toStringTag:void 0;function m5(e){return e==null?e===void 0?f5:p5:Mo&&Mo in Object(e)?s5(e):g5(e)}var yt=m5;function y5(e){return e!=null&&typeof e=="object"}var Xr=y5,nk=Array.isArray;function b5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var na=b5,h5="[object AsyncFunction]",v5="[object Function]",w5="[object GeneratorFunction]",C5="[object Proxy]";function k5(e){if(!na(e))return!1;var t=yt(e);return t==v5||t==w5||t==h5||t==C5}var M5=k5,x5=z["__core-js_shared__"],Fr=x5,xo=function(){var e=/[^.]+$/.exec(Fr&&Fr.keys&&Fr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function I5(e){return!!xo&&xo in e}var A5=I5,j5=Function.prototype,E5=j5.toString;function S5(e){if(e!=null){try{return E5.call(e)}catch{}try{return e+""}catch{}}return""}var R=S5,L5=/[\\^$.*+?()[\]{}|]/g,N5=/^\[object .+?Constructor\]$/,T5=Function.prototype,$5=Object.prototype,D5=T5.toString,O5=$5.hasOwnProperty,_5=RegExp("^"+D5.call(O5).replace(L5,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z5(e){if(!na(e)||A5(e))return!1;var t=M5(e)?_5:N5;return t.test(R(e))}var P5=z5;function U5(e,t){return e?.[t]}var V5=U5;function B5(e,t){var n=V5(e,t);return P5(n)?n:void 0}var we=B5,G5=we(z,"WeakMap"),Qr=G5;function F5(e,t){return e===t||e!==e&&t!==t}var R5=F5,q5=9007199254740991;function H5(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q5}var Q5=H5,ik=Object.prototype,Y5="[object Arguments]";function Z5(e){return Xr(e)&&yt(e)==Y5}var Io=Z5,ia=Object.prototype,W5=ia.hasOwnProperty,K5=ia.propertyIsEnumerable,ok=Io(function(){return arguments}())?Io:function(e){return Xr(e)&&W5.call(e,"callee")&&!K5.call(e,"callee")},oa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ao=oa&&typeof module=="object"&&module&&!module.nodeType&&module,J5=Ao&&Ao.exports===oa,jo=J5?z.Buffer:void 0,ak=jo?jo.isBuffer:void 0,X5="[object Arguments]",ey="[object Array]",ty="[object Boolean]",ry="[object Date]",ny="[object Error]",iy="[object Function]",oy="[object Map]",ay="[object Number]",ly="[object Object]",sy="[object RegExp]",uy="[object Set]",cy="[object String]",dy="[object WeakMap]",gy="[object ArrayBuffer]",py="[object DataView]",fy="[object Float32Array]",my="[object Float64Array]",yy="[object Int8Array]",by="[object Int16Array]",hy="[object Int32Array]",vy="[object Uint8Array]",wy="[object Uint8ClampedArray]",Cy="[object Uint16Array]",ky="[object Uint32Array]",j={};j[fy]=j[my]=j[yy]=j[by]=j[hy]=j[vy]=j[wy]=j[Cy]=j[ky]=!0;j[X5]=j[ey]=j[gy]=j[ty]=j[py]=j[ry]=j[ny]=j[iy]=j[oy]=j[ay]=j[ly]=j[sy]=j[uy]=j[cy]=j[dy]=!1;function My(e){return Xr(e)&&Q5(e.length)&&!!j[yt(e)]}var xy=My;function Iy(e){return function(t){return e(t)}}var Ay=Iy,aa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pt=aa&&typeof module=="object"&&module&&!module.nodeType&&module,jy=pt&&pt.exports===aa,Rr=jy&&ta.process,Ey=function(){try{var e=pt&&pt.require&&pt.require("util").types;return e||Rr&&Rr.binding&&Rr.binding("util")}catch{}}(),Eo=Ey,So=Eo&&Eo.isTypedArray,lk=So?Ay(So):xy,Sy=Object.prototype,sk=Sy.hasOwnProperty;function Ly(e,t){return function(n){return e(t(n))}}var Ny=Ly,uk=Ny(Object.keys,Object),Ty=Object.prototype,ck=Ty.hasOwnProperty,$y=we(Object,"create"),ft=$y;function Dy(){this.__data__=ft?ft(null):{},this.size=0}var Oy=Dy;function _y(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zy=_y,Py="__lodash_hash_undefined__",Uy=Object.prototype,Vy=Uy.hasOwnProperty;function By(e){var t=this.__data__;if(ft){var n=t[e];return n===Py?void 0:n}return Vy.call(t,e)?t[e]:void 0}var Gy=By,Fy=Object.prototype,Ry=Fy.hasOwnProperty;function qy(e){var t=this.__data__;return ft?t[e]!==void 0:Ry.call(t,e)}var Hy=qy,Qy="__lodash_hash_undefined__";function Yy(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ft&&t===void 0?Qy:t,this}var Zy=Yy;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=Oy;Ce.prototype.delete=zy;Ce.prototype.get=Gy;Ce.prototype.has=Hy;Ce.prototype.set=Zy;var Lo=Ce;function Wy(){this.__data__=[],this.size=0}var Ky=Wy;function Jy(e,t){for(var n=e.length;n--;)if(R5(e[n][0],t))return n;return-1}var Zt=Jy,Xy=Array.prototype,e9=Xy.splice;function t9(e){var t=this.__data__,n=Zt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():e9.call(t,n,1),--this.size,!0}var r9=t9;function n9(e){var t=this.__data__,n=Zt(t,e);return n<0?void 0:t[n][1]}var i9=n9;function o9(e){return Zt(this.__data__,e)>-1}var a9=o9;function l9(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 s9=l9;function ke(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])}}ke.prototype.clear=Ky;ke.prototype.delete=r9;ke.prototype.get=i9;ke.prototype.has=a9;ke.prototype.set=s9;var Wt=ke,u9=we(z,"Map"),mt=u9;function c9(){this.size=0,this.__data__={hash:new Lo,map:new(mt||Wt),string:new Lo}}var d9=c9;function g9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p9=g9;function f9(e,t){var n=e.__data__;return p9(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Kt=f9;function m9(e){var t=Kt(this,e).delete(e);return this.size-=t?1:0,t}var y9=m9;function b9(e){return Kt(this,e).get(e)}var h9=b9;function v9(e){return Kt(this,e).has(e)}var w9=v9;function C9(e,t){var n=Kt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var k9=C9;function Me(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])}}Me.prototype.clear=d9;Me.prototype.delete=y9;Me.prototype.get=h9;Me.prototype.has=w9;Me.prototype.set=k9;var la=Me;function M9(){this.__data__=new Wt,this.size=0}var x9=M9;function I9(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var A9=I9;function j9(e){return this.__data__.get(e)}var E9=j9;function S9(e){return this.__data__.has(e)}var L9=S9,N9=200;function T9(e,t){var n=this.__data__;if(n instanceof Wt){var r=n.__data__;if(!mt||r.length<N9-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new la(r)}return n.set(e,t),this.size=n.size,this}var $9=T9;function bt(e){var t=this.__data__=new Wt(e);this.size=t.size}bt.prototype.clear=x9;bt.prototype.delete=A9;bt.prototype.get=E9;bt.prototype.has=L9;bt.prototype.set=$9;var D9=Object.prototype,dk=D9.propertyIsEnumerable,O9=we(z,"DataView"),Yr=O9,_9=we(z,"Promise"),Zr=_9,z9=we(z,"Set"),Wr=z9,No="[object Map]",P9="[object Object]",To="[object Promise]",$o="[object Set]",Do="[object WeakMap]",Oo="[object DataView]",U9=R(Yr),V9=R(mt),B9=R(Zr),G9=R(Wr),F9=R(Qr),ye=yt;(Yr&&ye(new Yr(new ArrayBuffer(1)))!=Oo||mt&&ye(new mt)!=No||Zr&&ye(Zr.resolve())!=To||Wr&&ye(new Wr)!=$o||Qr&&ye(new Qr)!=Do)&&(ye=function(e){var t=yt(e),n=t==P9?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case U9:return Oo;case V9:return No;case B9:return To;case G9:return $o;case F9:return Do}return t});var gk=z.Uint8Array,R9="__lodash_hash_undefined__";function q9(e){return this.__data__.set(e,R9),this}var H9=q9;function Q9(e){return this.__data__.has(e)}var Y9=Q9;function Kr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new la;++t<n;)this.add(e[t])}Kr.prototype.add=Kr.prototype.push=H9;Kr.prototype.has=Y9;var _o=ve?ve.prototype:void 0,pk=_o?_o.valueOf:void 0,Z9=Object.prototype,fk=Z9.hasOwnProperty,W9=Object.prototype,mk=W9.hasOwnProperty,yk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hk=new RegExp(/[A-Fa-f0-9]{2}/,"g"),qr="@imgly/plugin-ai-generation",K9=`
200
+ `,Tm=Nm,Yi="ly.img.ai.quickAction.order",et="ly.img.ai.quickAction.actions";function $m(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${Yi}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${Yi}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${et}.${t}`))e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${et}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${et}.${t}`,{})[n]}}var Dm=$m,$r="ly.img.ai.inference.editMode",vo="ly.img.ai.inference.metadata";function wo(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function Om(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 _m({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var zm=_m;function Pm({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 Um=Pm;function Vm({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=Bm(r.engine,o,e),await a(n,r)}catch(s){throw ce(s)&&i(),s}finally{t&&i()}}}function Bm(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var Gm=Vm;function Fm(e,t){switch(t.kind){case"text":return Rm(e,t);case"image":return qm(e,t);case"video":return Hm(e,t);case"audio":return Qm(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Rm(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(Vr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function qm(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(Vr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await Ym(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function Hm(e,t){throw new Error("Function not implemented.")}async function Qm(e,t){throw new Error("Function not implemented.")}async function Ym(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${Lm(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Zm=Fm;function Wm({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=Km(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 ce(u)&&s(),u}finally{t&&s()}}}function Km(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 Jm=Wm;function Xm(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new co(n.engine,vo),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(wo({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=Om(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{rt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Zi({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw ce(M)||rt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{rt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Zi({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw ce(k)||rt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Zi(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:$r});let l=new co(n.engine,vo);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=lo([...o.output.middleware??[],t.debug?so():void 0,Um({}),...i.confirmation?[i.lockDuringConfirmation?Gm({editMode:$r}):Jm({editMode:$r}),i.confirmation&&zm({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await Zm(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var e4=Xm;async function t4(e,t,n){await e.initialize(t);let r=await n4(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}`]:r4(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",Tm),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await i4(e,o,n)}}function r4(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 n4(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 N2(r,e)),r}return n}}async function i4(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await o4(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),a4(e,e.input.quickActions,t,n)),r}async function o4(e,t,n,r){switch(t.type){case"custom":return L2(e,t,n,r);case"schema":return E2(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function a4(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=Dm(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(wo({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=e4({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Wi=t4;function l4(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 s4=l4,u4="@imgly/plugin-ai-video-generation-web",$="ly.img.ai/video-generation",Dr="ly.img.ai.video-generation.fromType";function c4(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.${$}`]:"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 s(c){if(t!=null)return{success:{show:()=>{let d=t?.ui.isPanelOpen($),g=t.ui.experimental.getGlobalStateValue(Dr)===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(Dr,c),t.ui.openPanel($)}},duration:"long"}}}o!=null&&(o.output.notification=s("fromText")),i!=null&&(i.output.notification=s("fromImage"));let u=o!=null?await Wi(o,{cesdk:t,engine:t.engine},n):void 0,l=i!=null?await Wi(i,{cesdk:t,engine:t.engine},n):void 0;if(u?.renderBuilderFunctions?.panel==null&&l?.renderBuilderFunctions?.panel==null){n.debug&&console.log("No providers are initialized \u2013 doing nothing");return}if(u?.renderBuilderFunctions?.panel!=null&&l?.renderBuilderFunctions?.panel!=null)t.ui.registerPanel($,c=>{let{builder:d,experimental:g}=c,f=g.global(Dr,"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(Ft(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(Ft(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":{l?.renderBuilderFunctions?.panel?.(c);break}default:}});else{let c=u?.renderBuilderFunctions?.panel??l?.renderBuilderFunctions?.panel;if(c==null)return;t.ui.registerPanel($,c),t.i18n.setTranslations({en:{[`${$}.dock.label`]:"AI Video"}}),s4({cesdk:t,panelId:$})}}}}var d4=c4,g4=e=>({name:u4,version:"0.1.3",...d4(e)}),Co=g4;function Vo(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 dt(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=Vo(e,t.$ref),a={...dt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=dt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>dt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=dt(e,t[a],n));return r}return t}function p4(e){return dt(e,{...e})}function f4(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function m4(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return y4(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function y4(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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var Bo=m4,b4="ly.img.ai",Gr="ly.img.ai/temp";async function h4(e,t){return e.engine.asset.findAllSources().includes(Gr)||e.engine.asset.addLocalSource(Gr),e.engine.asset.apply(Gr,t)}function Go(e){return`${b4}/${e}`}function v4(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 w4(){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 C4(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 Fo(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 Jr(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 he(e){return e instanceof Error&&e.name==="AbortError"}function Ro(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?k4(e,t,n,r,a,o):Ho(e,t,n,r,a,o);case"boolean":return Qo(e,t,n,r,a,o);case"number":case"integer":return Yo(e,t,n,r,a,o);case"object":return qo(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return M4(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function qo(e,t,n,r,a,o){let i=Bo(t.schema??{},r).reduce((s,u)=>{let l=Ro(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function Ho(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=x4(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function k4(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Fo(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function Qo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function Yo(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function M4(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Fo(M),icon:k[M]})}):(f[m]=()=>Ho(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>Qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>Yo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>qo(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{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 x4(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var I4=Ro,A4="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Zo=A4;function j4(e,t,n){switch(t){case"image":return E4(e,n[t]);case"video":return S4(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function E4(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Zo,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function S4(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Zo,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var L4=j4;function N4(e,t){switch(e){case"image":return T4(t[e]);case"video":return $4(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function T4(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
201
+ `,"+")}`}}function $4(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var D4=N4;async function O4(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 _4(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 z4(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 P4(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _4(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 z4(e,t,n){let r=t.width,a=t.height,o=await C4(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 P4(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 ko=O4;function Wo(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function U4(){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 Ko=U4;async function V4(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=w4(),v;if(u){if(v=L4(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await h4(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Qt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=Wo([...r.output.middleware??[],o.debug?Ko():void 0]),h;if(o.dryRun?h=await B4(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,Jr(h))throw new Error("Streaming generation is not supported yet from a panel");if(Qt(s,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&&s.engine.block.isValid(c)&&(p=await ko(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Qt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await ko(f,e,g,h),Qt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(he(d)?s.engine.block.destroy(c):s.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}async function B4(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=D4(e,t);return await G4(3e3),n}async function G4(e){return new Promise(t=>{setTimeout(t,e)})}var F4=V4;function R4(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),q4(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:v4(e)}))}function q4(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 gt=R4;function Jo(e){return`${e}.generating`}function H4(e){return`${e}.abort`}function Q4(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(H4(c),()=>{}),f=s.global(Jo(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await F4(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;Y4(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(he(C))return;gt(C,{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(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Y4(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 Xo=Q4;async function Z4(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=p4(t.document),s=Vo(i,t.inputReference);if(!f4(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=Bo(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=I4(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Xo(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Go(o),c),c}var W4=Z4;async function K4(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Jo(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Xo(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Go(o),s),s}var J4=K4,X4=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let 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;be(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=()=>{be(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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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 be(e,r=>{n.add(r)}),await Promise.all([...n].map(async r=>{let a=await this.createBlobUrlFromStore(r);t[r]=a})),be(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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.active?1:0)),o}};function be(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]=be(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]=be(a,t,o)}return e}var e5=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)}},ea=e5,t5=typeof global=="object"&&global&&global.Object===Object&&global,ta=t5,r5=typeof self=="object"&&self&&self.Object===Object&&self,n5=ta||r5||Function("return this")(),z=n5,i5=z.Symbol,ve=i5,ra=Object.prototype,o5=ra.hasOwnProperty,a5=ra.toString,st=ve?ve.toStringTag:void 0;function l5(e){var t=o5.call(e,st),n=e[st];try{e[st]=void 0;var r=!0}catch{}var a=a5.call(e);return r&&(t?e[st]=n:delete e[st]),a}var s5=l5,u5=Object.prototype,c5=u5.toString;function d5(e){return c5.call(e)}var g5=d5,p5="[object Null]",f5="[object Undefined]",Mo=ve?ve.toStringTag:void 0;function m5(e){return e==null?e===void 0?f5:p5:Mo&&Mo in Object(e)?s5(e):g5(e)}var yt=m5;function y5(e){return e!=null&&typeof e=="object"}var Xr=y5,nk=Array.isArray;function b5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var na=b5,h5="[object AsyncFunction]",v5="[object Function]",w5="[object GeneratorFunction]",C5="[object Proxy]";function k5(e){if(!na(e))return!1;var t=yt(e);return t==v5||t==w5||t==h5||t==C5}var M5=k5,x5=z["__core-js_shared__"],Fr=x5,xo=function(){var e=/[^.]+$/.exec(Fr&&Fr.keys&&Fr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function I5(e){return!!xo&&xo in e}var A5=I5,j5=Function.prototype,E5=j5.toString;function S5(e){if(e!=null){try{return E5.call(e)}catch{}try{return e+""}catch{}}return""}var R=S5,L5=/[\\^$.*+?()[\]{}|]/g,N5=/^\[object .+?Constructor\]$/,T5=Function.prototype,$5=Object.prototype,D5=T5.toString,O5=$5.hasOwnProperty,_5=RegExp("^"+D5.call(O5).replace(L5,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z5(e){if(!na(e)||A5(e))return!1;var t=M5(e)?_5:N5;return t.test(R(e))}var P5=z5;function U5(e,t){return e?.[t]}var V5=U5;function B5(e,t){var n=V5(e,t);return P5(n)?n:void 0}var we=B5,G5=we(z,"WeakMap"),Qr=G5;function F5(e,t){return e===t||e!==e&&t!==t}var R5=F5,q5=9007199254740991;function H5(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q5}var Q5=H5,ik=Object.prototype,Y5="[object Arguments]";function Z5(e){return Xr(e)&&yt(e)==Y5}var Io=Z5,ia=Object.prototype,W5=ia.hasOwnProperty,K5=ia.propertyIsEnumerable,ok=Io(function(){return arguments}())?Io:function(e){return Xr(e)&&W5.call(e,"callee")&&!K5.call(e,"callee")},oa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ao=oa&&typeof module=="object"&&module&&!module.nodeType&&module,J5=Ao&&Ao.exports===oa,jo=J5?z.Buffer:void 0,ak=jo?jo.isBuffer:void 0,X5="[object Arguments]",ey="[object Array]",ty="[object Boolean]",ry="[object Date]",ny="[object Error]",iy="[object Function]",oy="[object Map]",ay="[object Number]",ly="[object Object]",sy="[object RegExp]",uy="[object Set]",cy="[object String]",dy="[object WeakMap]",gy="[object ArrayBuffer]",py="[object DataView]",fy="[object Float32Array]",my="[object Float64Array]",yy="[object Int8Array]",by="[object Int16Array]",hy="[object Int32Array]",vy="[object Uint8Array]",wy="[object Uint8ClampedArray]",Cy="[object Uint16Array]",ky="[object Uint32Array]",j={};j[fy]=j[my]=j[yy]=j[by]=j[hy]=j[vy]=j[wy]=j[Cy]=j[ky]=!0;j[X5]=j[ey]=j[gy]=j[ty]=j[py]=j[ry]=j[ny]=j[iy]=j[oy]=j[ay]=j[ly]=j[sy]=j[uy]=j[cy]=j[dy]=!1;function My(e){return Xr(e)&&Q5(e.length)&&!!j[yt(e)]}var xy=My;function Iy(e){return function(t){return e(t)}}var Ay=Iy,aa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pt=aa&&typeof module=="object"&&module&&!module.nodeType&&module,jy=pt&&pt.exports===aa,Rr=jy&&ta.process,Ey=function(){try{var e=pt&&pt.require&&pt.require("util").types;return e||Rr&&Rr.binding&&Rr.binding("util")}catch{}}(),Eo=Ey,So=Eo&&Eo.isTypedArray,lk=So?Ay(So):xy,Sy=Object.prototype,sk=Sy.hasOwnProperty;function Ly(e,t){return function(n){return e(t(n))}}var Ny=Ly,uk=Ny(Object.keys,Object),Ty=Object.prototype,ck=Ty.hasOwnProperty,$y=we(Object,"create"),ft=$y;function Dy(){this.__data__=ft?ft(null):{},this.size=0}var Oy=Dy;function _y(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zy=_y,Py="__lodash_hash_undefined__",Uy=Object.prototype,Vy=Uy.hasOwnProperty;function By(e){var t=this.__data__;if(ft){var n=t[e];return n===Py?void 0:n}return Vy.call(t,e)?t[e]:void 0}var Gy=By,Fy=Object.prototype,Ry=Fy.hasOwnProperty;function qy(e){var t=this.__data__;return ft?t[e]!==void 0:Ry.call(t,e)}var Hy=qy,Qy="__lodash_hash_undefined__";function Yy(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ft&&t===void 0?Qy:t,this}var Zy=Yy;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=Oy;Ce.prototype.delete=zy;Ce.prototype.get=Gy;Ce.prototype.has=Hy;Ce.prototype.set=Zy;var Lo=Ce;function Wy(){this.__data__=[],this.size=0}var Ky=Wy;function Jy(e,t){for(var n=e.length;n--;)if(R5(e[n][0],t))return n;return-1}var Zt=Jy,Xy=Array.prototype,e9=Xy.splice;function t9(e){var t=this.__data__,n=Zt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():e9.call(t,n,1),--this.size,!0}var r9=t9;function n9(e){var t=this.__data__,n=Zt(t,e);return n<0?void 0:t[n][1]}var i9=n9;function o9(e){return Zt(this.__data__,e)>-1}var a9=o9;function l9(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 s9=l9;function ke(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])}}ke.prototype.clear=Ky;ke.prototype.delete=r9;ke.prototype.get=i9;ke.prototype.has=a9;ke.prototype.set=s9;var Wt=ke,u9=we(z,"Map"),mt=u9;function c9(){this.size=0,this.__data__={hash:new Lo,map:new(mt||Wt),string:new Lo}}var d9=c9;function g9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p9=g9;function f9(e,t){var n=e.__data__;return p9(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Kt=f9;function m9(e){var t=Kt(this,e).delete(e);return this.size-=t?1:0,t}var y9=m9;function b9(e){return Kt(this,e).get(e)}var h9=b9;function v9(e){return Kt(this,e).has(e)}var w9=v9;function C9(e,t){var n=Kt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var k9=C9;function Me(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])}}Me.prototype.clear=d9;Me.prototype.delete=y9;Me.prototype.get=h9;Me.prototype.has=w9;Me.prototype.set=k9;var la=Me;function M9(){this.__data__=new Wt,this.size=0}var x9=M9;function I9(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var A9=I9;function j9(e){return this.__data__.get(e)}var E9=j9;function S9(e){return this.__data__.has(e)}var L9=S9,N9=200;function T9(e,t){var n=this.__data__;if(n instanceof Wt){var r=n.__data__;if(!mt||r.length<N9-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new la(r)}return n.set(e,t),this.size=n.size,this}var $9=T9;function bt(e){var t=this.__data__=new Wt(e);this.size=t.size}bt.prototype.clear=x9;bt.prototype.delete=A9;bt.prototype.get=E9;bt.prototype.has=L9;bt.prototype.set=$9;var D9=Object.prototype,dk=D9.propertyIsEnumerable,O9=we(z,"DataView"),Yr=O9,_9=we(z,"Promise"),Zr=_9,z9=we(z,"Set"),Wr=z9,No="[object Map]",P9="[object Object]",To="[object Promise]",$o="[object Set]",Do="[object WeakMap]",Oo="[object DataView]",U9=R(Yr),V9=R(mt),B9=R(Zr),G9=R(Wr),F9=R(Qr),ye=yt;(Yr&&ye(new Yr(new ArrayBuffer(1)))!=Oo||mt&&ye(new mt)!=No||Zr&&ye(Zr.resolve())!=To||Wr&&ye(new Wr)!=$o||Qr&&ye(new Qr)!=Do)&&(ye=function(e){var t=yt(e),n=t==P9?e.constructor:void 0,r=n?R(n):"";if(r)switch(r){case U9:return Oo;case V9:return No;case B9:return To;case G9:return $o;case F9:return Do}return t});var gk=z.Uint8Array,R9="__lodash_hash_undefined__";function q9(e){return this.__data__.set(e,R9),this}var H9=q9;function Q9(e){return this.__data__.has(e)}var Y9=Q9;function Kr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new la;++t<n;)this.add(e[t])}Kr.prototype.add=Kr.prototype.push=H9;Kr.prototype.has=Y9;var _o=ve?ve.prototype:void 0,pk=_o?_o.valueOf:void 0,Z9=Object.prototype,fk=Z9.hasOwnProperty,W9=Object.prototype,mk=W9.hasOwnProperty,yk=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bk=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hk=new RegExp(/[A-Fa-f0-9]{2}/,"g");function K9(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var qr="@imgly/plugin-ai-generation",J9=`
202
202
  <svg>
203
203
  <symbol
204
204
  fill="none"
@@ -259,7 +259,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
259
259
 
260
260
  </symbol>
261
261
  </svg>
262
- `,J9=K9,zo="ly.img.ai.quickAction.order",ut="ly.img.ai.quickAction.actions";function X9(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${zo}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${zo}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${ut}.${t}`))e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{})[n]}}var sa=X9,Hr="ly.img.ai.inference.editMode",ua="ly.img.ai.inference.metadata";function ca(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function e3(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 t3({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 r3=t3;function n3({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 i3=n3;function o3({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=a3(r.engine,o,e),await a(n,r)}catch(l){throw he(l)&&i(),l}finally{t&&i()}}}function a3(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 l3=o3;function s3(e,t){switch(t.kind){case"text":return u3(e,t);case"image":return c3(e,t);case"video":return d3(e,t);case"audio":return g3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function u3(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(Jr(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}}}async function c3(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=await n.engine.editor.getMimeType(u.uri);if(a.throwIfAborted(),s==="image/svg+xml")throw new Error("SVG images are not supported");let c=n.engine.block.getCropScaleX(o),d=n.engine.block.getCropScaleY(o),g=n.engine.block.getCropTranslationX(o),f=n.engine.block.getCropTranslationY(o),v=n.engine.block.getCropRotation(o),w=()=>{n.engine.block.setCropScaleX(o,c),n.engine.block.setCropScaleY(o,d),n.engine.block.setCropTranslationX(o,g),n.engine.block.setCropTranslationY(o,f),n.engine.block.setCropRotation(o,v)};if(Jr(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 h=e.url,p=await n.engine.editor.getMimeType(h),b=[{uri:await p3(n,h,p),width:u.width,height:u.height}];n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w();let y=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",l),w()},m=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:y,onAfter:m,onCancel:()=>{y()},onApply:()=>{m()}}}}async function d3(e,t){throw new Error("Function not implemented.")}async function g3(e,t){throw new Error("Function not implemented.")}async function p3(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${f3(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function f3(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var m3=s3;function y3({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=b3(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 he(u)&&l(),u}finally{t&&l()}}}function b3(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 h3=y3;function v3(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 w=new ea(n.engine,ua),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(ca({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=e3(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{gt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Po({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:k?.blockIds??g,confirmationComponentId:l},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw he(M)||gt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{gt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Po({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw he(k)||gt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Po(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:Hr});let s=new ea(n.engine,ua);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Wo([...o.output.middleware??[],t.debug?Ko():void 0,i3({}),...i.confirmation?[i.lockDuringConfirmation?l3({editMode:Hr}):h3({editMode:Hr}),i.confirmation&&r3({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await m3(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):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:w}}var w3=v3;async function C3(e,t,n){await e.initialize(t);let r=await M3(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}`]:k3(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",J9),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await x3(e,o,n)}}function k3(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 M3(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 X4(r,e)),r}return n}}async function x3(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await I3(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),A3(e,e.input.quickActions,t,n)),r}async function I3(e,t,n,r){switch(t.type){case"custom":return J4(e,t,n,r);case"schema":return W4(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function A3(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=sa(a,o);t.actions.forEach(u=>{let s=u.enable??!0;a.feature.enable(ca({quickActionId:u.id,quickActionMenuId:o}),s),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:l}=w3({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)}var Uo=C3,j3="@imgly/plugin-ai-audio-generation-web",ct="ly.img.ai/audio-generation/speech",Yt="ly.img.ai/audio-generation/sound";function E3(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.${ct}`]:"AI Voice",[`panel.${Yt}`]:"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(ct),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(ct)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Yt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Yt)}}}});let l=o!=null?await Uo(o,{cesdk:t,engine:t.engine},n):void 0,u=i!=null?await Uo(i,{cesdk:t,engine:t.engine},n):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Yt,u.renderBuilderFunctions.panel),l?.renderBuilderFunctions?.panel!=null&&(S3(t,s=>{t.ui.openPanel(ct),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,s)}),t.ui.registerPanel(ct,l.renderBuilderFunctions.panel))}}}function S3(e,t){let n=sa(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 L3=E3,N3=e=>({name:j3,version:"0.1.0",...L3(e)}),da=N3;var T3="@imgly/plugin-ai-text-generation",$3=`
262
+ `,X9=J9,zo="ly.img.ai.quickAction.order",ut="ly.img.ai.quickAction.actions";function eb(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${zo}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${zo}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${ut}.${t}`))e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${ut}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${ut}.${t}`,{})[n]}}var sa=eb,Hr="ly.img.ai.inference.editMode",ua="ly.img.ai.inference.metadata";function ca(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function tb(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 rb({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var nb=rb;function ib({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 ob=ib;function ab({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=lb(r.engine,o,e),await a(n,r)}catch(s){throw he(s)&&i(),s}finally{t&&i()}}}function lb(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var sb=ab;function ub(e,t){switch(t.kind){case"text":return cb(e,t);case"image":return db(e,t);case"video":return gb(e,t);case"audio":return pb(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function cb(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(Jr(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function db(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(Jr(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await fb(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function gb(e,t){throw new Error("Function not implemented.")}async function pb(e,t){throw new Error("Function not implemented.")}async function fb(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${K9(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var mb=ub;function yb({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=bb(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 he(u)&&s(),u}finally{t&&s()}}}function bb(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 hb=yb;function vb(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new ea(n.engine,ua),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(ca({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=tb(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{gt(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Po({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw he(M)||gt(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{gt(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Po({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw he(k)||gt(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Po(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:Hr});let l=new ea(n.engine,ua);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Wo([...o.output.middleware??[],t.debug?Ko():void 0,ob({}),...i.confirmation?[i.lockDuringConfirmation?sb({editMode:Hr}):hb({editMode:Hr}),i.confirmation&&nb({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await mb(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var wb=vb;async function Cb(e,t,n){await e.initialize(t);let r=await Mb(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}`]:kb(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",X9),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await xb(e,o,n)}}function kb(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 Mb(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 X4(r,e)),r}return n}}async function xb(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Ib(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Ab(e,e.input.quickActions,t,n)),r}async function Ib(e,t,n,r){switch(t.type){case"custom":return J4(e,t,n,r);case"schema":return W4(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Ab(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=sa(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(ca({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=wb({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Uo=Cb,jb="@imgly/plugin-ai-audio-generation-web",ct="ly.img.ai/audio-generation/speech",Yt="ly.img.ai/audio-generation/sound";function Eb(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.${ct}`]:"AI Voice",[`panel.${Yt}`]:"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(ct),message:"ly.img.ai.audio-generation.speech.success",action:{label:"ly.img.ai.audio-generation.speech.success.action",onClick:()=>{t.ui.openPanel(ct)}},duration:"long"}}),i!=null&&(i.output.notification={success:{show:()=>!t?.ui.isPanelOpen(Yt),message:"ly.img.ai.audio-generation.sound.success",action:{label:"ly.img.ai.audio-generation.sound.success.action",onClick:()=>{t.ui.openPanel(Yt)}}}});let s=o!=null?await Uo(o,{cesdk:t,engine:t.engine},n):void 0,u=i!=null?await Uo(i,{cesdk:t,engine:t.engine},n):void 0;u?.renderBuilderFunctions?.panel!=null&&t.ui.registerPanel(Yt,u.renderBuilderFunctions.panel),s?.renderBuilderFunctions?.panel!=null&&(Sb(t,l=>{t.ui.openPanel(ct),t.ui.experimental.setGlobalStateValue(`${o?.id}.prompt`,l)}),t.ui.registerPanel(ct,s.renderBuilderFunctions.panel))}}}function Sb(e,t){let n=sa(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(),s=e.engine.block.getString(i,"text/text");t(s),o.closeMenu()}})}}),n.setQuickActionMenuOrder([...n.getQuickActionMenuOrder(),"ly.img.separator",r])}var Lb=Eb,Nb=e=>({name:jb,version:"0.1.3",...Lb(e)}),da=Nb;var Tb="@imgly/plugin-ai-text-generation",$b=`
263
263
  <svg>
264
264
  <symbol
265
265
  fill="none"
@@ -335,8 +335,8 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=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
- `,D3=$3;function Sa(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 wt(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=Sa(e,t.$ref),a={...wt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=wt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>wt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=wt(e,t[a],n));return r}return t}function O3(e){return wt(e,{...e})}function _3(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 z3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return P3(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function P3(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 La=z3,U3="ly.img.ai",en="ly.img.ai/temp";async function V3(e,t){return e.engine.asset.findAllSources().includes(en)||e.engine.asset.addLocalSource(en),e.engine.asset.apply(en,t)}function Na(e){return`${U3}/${e}`}function B3(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 G3(){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 F3(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 Ta(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 dn(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 Ae(e){return e instanceof Error&&e.name==="AbortError"}function $a(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?R3(e,t,n,r,a,o):Oa(e,t,n,r,a,o);case"boolean":return _a(e,t,n,r,a,o);case"number":case"integer":return za(e,t,n,r,a,o);case"object":return Da(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return q3(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Da(e,t,n,r,a,o){let i=La(t.schema??{},r).reduce((l,u)=>{let s=$a(e,u,n,r,a,o);return s!=null&&(l[u.id]=s()),l},{});return()=>({id:t.id,type:"object",value:i})}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=l(s,t.schema.default??""),g=H3(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 R3(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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Ta(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=l(s,f);return i.Select(s,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function _a(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 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.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 w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(s,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(s,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function q3(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 y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Ta(M),icon:k[M]})}):(f[m]=()=>Oa(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>_a(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>za(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>Da(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=l(s,w);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 H3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Q3=$a,Y3="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Pa=Y3;function Z3(e,t,n){switch(t){case"image":return W3(e,n[t]);case"video":return K3(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function W3(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function K3(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var J3=Z3;function X3(e,t){switch(e){case"image":return eb(t[e]);case"video":return tb(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function eb(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
339
- `,"+")}`}}function tb(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var rb=X3;async function nb(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 ib(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 ob(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 ab(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function ib(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 ob(e,t,n){let r=t.width,a=t.height,o=await F3(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 ab(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 ga=nb;function Ua(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(w,h)=>l(s+1,w,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 lb(){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 Va=lb;async function sb(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=G3(),v;if(u){if(v=J3(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await V3(l,v),c!=null&&r.kind==="video"){let b=l.engine.block.getPositionX(c),y=l.engine.block.getPositionY(c),m=l.engine.block.duplicate(c);l.engine.block.setPositionX(m,b),l.engine.block.setPositionY(m,y),l.engine.block.destroy(c),c=m}if(Jt(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 w=Ua([...r.output.middleware??[],o.debug?Va():void 0]),h;if(o.dryRun?h=await ub(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:l})).result,dn(h))throw new Error("Streaming generation is not supported yet from a panel");if(Jt(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 ga(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)),Jt(l,i,c))return{status:"aborted"};if(s!=null){if(p==null&&(p=await ga(f,e,g,h),Jt(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)&&(Ae(d)?l.engine.block.destroy(c):l.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Jt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function ub(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=rb(e,t);return await cb(3e3),n}async function cb(e){return new Promise(t=>{setTimeout(t,e)})}var db=sb;function gb(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),pb(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:B3(e)}))}function pb(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 Ct=gb;function Ba(e){return`${e}.generating`}function fb(e){return`${e}.abort`}function mb(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(fb(c),()=>{}),f=l.global(Ba(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await db(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;yb(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(Ae(C))return;Ct(C,{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(m,{provider:t,abort:h}):await m()}}),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 yb(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 Ga=mb;async function bb(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=O3(t.document),l=Sa(i,t.inputReference);if(!_3(l,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=La(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{s.forEach(p=>{let b=Q3(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ga(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Na(o),c),c}var hb=bb;async function vb(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,l=u=>{let{state:s}=u,c=s(Ba(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ga(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Na(o),l),l}var wb=vb,Cb=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 kb=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)}},Fa=kb,Mb=typeof global=="object"&&global&&global.Object===Object&&global,Ra=Mb,xb=typeof self=="object"&&self&&self.Object===Object&&self,Ib=Ra||xb||Function("return this")(),P=Ib,Ab=P.Symbol,je=Ab,qa=Object.prototype,jb=qa.hasOwnProperty,Eb=qa.toString,ht=je?je.toStringTag:void 0;function Sb(e){var t=jb.call(e,ht),n=e[ht];try{e[ht]=void 0;var r=!0}catch{}var a=Eb.call(e);return r&&(t?e[ht]=n:delete e[ht]),a}var Lb=Sb,Nb=Object.prototype,Tb=Nb.toString;function $b(e){return Tb.call(e)}var Db=$b,Ob="[object Null]",_b="[object Undefined]",pa=je?je.toStringTag:void 0;function zb(e){return e==null?e===void 0?_b:Ob:pa&&pa in Object(e)?Lb(e):Db(e)}var It=zb;function Pb(e){return e!=null&&typeof e=="object"}var gn=Pb,kk=Array.isArray;function Ub(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ha=Ub,Vb="[object AsyncFunction]",Bb="[object Function]",Gb="[object GeneratorFunction]",Fb="[object Proxy]";function Rb(e){if(!Ha(e))return!1;var t=It(e);return t==Bb||t==Gb||t==Vb||t==Fb}var qb=Rb,Hb=P["__core-js_shared__"],tn=Hb,fa=function(){var e=/[^.]+$/.exec(tn&&tn.keys&&tn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Qb(e){return!!fa&&fa in e}var Yb=Qb,Zb=Function.prototype,Wb=Zb.toString;function Kb(e){if(e!=null){try{return Wb.call(e)}catch{}try{return e+""}catch{}}return""}var q=Kb,Jb=/[\\^$.*+?()[\]{}|]/g,Xb=/^\[object .+?Constructor\]$/,e7=Function.prototype,t7=Object.prototype,r7=e7.toString,n7=t7.hasOwnProperty,i7=RegExp("^"+r7.call(n7).replace(Jb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function o7(e){if(!Ha(e)||Yb(e))return!1;var t=qb(e)?i7:Xb;return t.test(q(e))}var a7=o7;function l7(e,t){return e?.[t]}var s7=l7;function u7(e,t){var n=s7(e,t);return a7(n)?n:void 0}var Ee=u7,c7=Ee(P,"WeakMap"),an=c7;function d7(e,t){return e===t||e!==e&&t!==t}var g7=d7,p7=9007199254740991;function f7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=p7}var m7=f7,Mk=Object.prototype,y7="[object Arguments]";function b7(e){return gn(e)&&It(e)==y7}var ma=b7,Qa=Object.prototype,h7=Qa.hasOwnProperty,v7=Qa.propertyIsEnumerable,xk=ma(function(){return arguments}())?ma:function(e){return gn(e)&&h7.call(e,"callee")&&!v7.call(e,"callee")},Ya=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ya=Ya&&typeof module=="object"&&module&&!module.nodeType&&module,w7=ya&&ya.exports===Ya,ba=w7?P.Buffer:void 0,Ik=ba?ba.isBuffer:void 0,C7="[object Arguments]",k7="[object Array]",M7="[object Boolean]",x7="[object Date]",I7="[object Error]",A7="[object Function]",j7="[object Map]",E7="[object Number]",S7="[object Object]",L7="[object RegExp]",N7="[object Set]",T7="[object String]",$7="[object WeakMap]",D7="[object ArrayBuffer]",O7="[object DataView]",_7="[object Float32Array]",z7="[object Float64Array]",P7="[object Int8Array]",U7="[object Int16Array]",V7="[object Int32Array]",B7="[object Uint8Array]",G7="[object Uint8ClampedArray]",F7="[object Uint16Array]",R7="[object Uint32Array]",E={};E[_7]=E[z7]=E[P7]=E[U7]=E[V7]=E[B7]=E[G7]=E[F7]=E[R7]=!0;E[C7]=E[k7]=E[D7]=E[M7]=E[O7]=E[x7]=E[I7]=E[A7]=E[j7]=E[E7]=E[S7]=E[L7]=E[N7]=E[T7]=E[$7]=!1;function q7(e){return gn(e)&&m7(e.length)&&!!E[It(e)]}var H7=q7;function Q7(e){return function(t){return e(t)}}var Y7=Q7,Za=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kt=Za&&typeof module=="object"&&module&&!module.nodeType&&module,Z7=kt&&kt.exports===Za,rn=Z7&&Ra.process,W7=function(){try{var e=kt&&kt.require&&kt.require("util").types;return e||rn&&rn.binding&&rn.binding("util")}catch{}}(),ha=W7,va=ha&&ha.isTypedArray,Ak=va?Y7(va):H7,K7=Object.prototype,jk=K7.hasOwnProperty;function J7(e,t){return function(n){return e(t(n))}}var X7=J7,Ek=X7(Object.keys,Object),eh=Object.prototype,Sk=eh.hasOwnProperty,th=Ee(Object,"create"),Mt=th;function rh(){this.__data__=Mt?Mt(null):{},this.size=0}var nh=rh;function ih(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var oh=ih,ah="__lodash_hash_undefined__",lh=Object.prototype,sh=lh.hasOwnProperty;function uh(e){var t=this.__data__;if(Mt){var n=t[e];return n===ah?void 0:n}return sh.call(t,e)?t[e]:void 0}var ch=uh,dh=Object.prototype,gh=dh.hasOwnProperty;function ph(e){var t=this.__data__;return Mt?t[e]!==void 0:gh.call(t,e)}var fh=ph,mh="__lodash_hash_undefined__";function yh(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Mt&&t===void 0?mh:t,this}var bh=yh;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=nh;Se.prototype.delete=oh;Se.prototype.get=ch;Se.prototype.has=fh;Se.prototype.set=bh;var wa=Se;function hh(){this.__data__=[],this.size=0}var vh=hh;function wh(e,t){for(var n=e.length;n--;)if(g7(e[n][0],t))return n;return-1}var Xt=wh,Ch=Array.prototype,kh=Ch.splice;function Mh(e){var t=this.__data__,n=Xt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():kh.call(t,n,1),--this.size,!0}var xh=Mh;function Ih(e){var t=this.__data__,n=Xt(t,e);return n<0?void 0:t[n][1]}var Ah=Ih;function jh(e){return Xt(this.__data__,e)>-1}var Eh=jh;function Sh(e,t){var n=this.__data__,r=Xt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Lh=Sh;function Le(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])}}Le.prototype.clear=vh;Le.prototype.delete=xh;Le.prototype.get=Ah;Le.prototype.has=Eh;Le.prototype.set=Lh;var er=Le,Nh=Ee(P,"Map"),xt=Nh;function Th(){this.size=0,this.__data__={hash:new wa,map:new(xt||er),string:new wa}}var $h=Th;function Dh(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Oh=Dh;function _h(e,t){var n=e.__data__;return Oh(t)?n[typeof t=="string"?"string":"hash"]:n.map}var tr=_h;function zh(e){var t=tr(this,e).delete(e);return this.size-=t?1:0,t}var Ph=zh;function Uh(e){return tr(this,e).get(e)}var Vh=Uh;function Bh(e){return tr(this,e).has(e)}var Gh=Bh;function Fh(e,t){var n=tr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Rh=Fh;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=$h;Ne.prototype.delete=Ph;Ne.prototype.get=Vh;Ne.prototype.has=Gh;Ne.prototype.set=Rh;var Wa=Ne;function qh(){this.__data__=new er,this.size=0}var Hh=qh;function Qh(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Yh=Qh;function Zh(e){return this.__data__.get(e)}var Wh=Zh;function Kh(e){return this.__data__.has(e)}var Jh=Kh,Xh=200;function e8(e,t){var n=this.__data__;if(n instanceof er){var r=n.__data__;if(!xt||r.length<Xh-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Wa(r)}return n.set(e,t),this.size=n.size,this}var t8=e8;function At(e){var t=this.__data__=new er(e);this.size=t.size}At.prototype.clear=Hh;At.prototype.delete=Yh;At.prototype.get=Wh;At.prototype.has=Jh;At.prototype.set=t8;var r8=Object.prototype,Lk=r8.propertyIsEnumerable,n8=Ee(P,"DataView"),ln=n8,i8=Ee(P,"Promise"),sn=i8,o8=Ee(P,"Set"),un=o8,Ca="[object Map]",a8="[object Object]",ka="[object Promise]",Ma="[object Set]",xa="[object WeakMap]",Ia="[object DataView]",l8=q(ln),s8=q(xt),u8=q(sn),c8=q(un),d8=q(an),xe=It;(ln&&xe(new ln(new ArrayBuffer(1)))!=Ia||xt&&xe(new xt)!=Ca||sn&&xe(sn.resolve())!=ka||un&&xe(new un)!=Ma||an&&xe(new an)!=xa)&&(xe=function(e){var t=It(e),n=t==a8?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case l8:return Ia;case s8:return Ca;case u8:return ka;case c8:return Ma;case d8:return xa}return t});var Nk=P.Uint8Array,g8="__lodash_hash_undefined__";function p8(e){return this.__data__.set(e,g8),this}var f8=p8;function m8(e){return this.__data__.has(e)}var y8=m8;function cn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Wa;++t<n;)this.add(e[t])}cn.prototype.add=cn.prototype.push=f8;cn.prototype.has=y8;var Aa=je?je.prototype:void 0,Tk=Aa?Aa.valueOf:void 0,b8=Object.prototype,$k=b8.hasOwnProperty,h8=Object.prototype,Dk=h8.hasOwnProperty,Ok=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_k=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zk=new RegExp(/[A-Fa-f0-9]{2}/,"g"),nn="@imgly/plugin-ai-generation",v8=`
338
+ `,Db=$b;function Sa(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 wt(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=Sa(e,t.$ref),a={...wt(e,r,n)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(a[o]=wt(e,t[o],n));return a}if(Array.isArray(t))return t.map(r=>wt(e,r,n));if(typeof t=="object"){let r={};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=wt(e,t[a],n));return r}return t}function Ob(e){return wt(e,{...e})}function _b(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 s of r.type)if(typeof s!="string"||!i.includes(s))return n(`Array of types contains invalid value: ${s}. 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 s=0;s<r[i].length;s++){let u=r[i][s];if(typeof u!="object"||u===null)return n(`Item ${s} 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 s=r.required[i];if(typeof s!="string")return n(`Item ${i} in required array must be a string, got ${typeof s}`)}}return!0}function zb(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let n=[];return Pb(e,t)??(Object.entries(e.properties).forEach(r=>{let a=r[0],o=r[1];n.push({id:a,schema:o})}),n)}function Pb(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 s=e.properties?.[i];s!=null&&n.push({id:i,schema:s})}),n.length===0)throw new Error(`Could not find any properties with order extension keyword(s) ${r.join(", ")}`);return n}var La=zb,Ub="ly.img.ai",en="ly.img.ai/temp";async function Vb(e,t){return e.engine.asset.findAllSources().includes(en)||e.engine.asset.addLocalSource(en),e.engine.asset.apply(en,t)}function Na(e){return`${Ub}/${e}`}function Bb(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 Gb(){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 Fb(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 s=document.createElement("canvas");s.width=i.videoWidth,s.height=i.videoHeight;let u=s.getContext("2d");if(!u){document.body.removeChild(i),o(new Error("Failed to create canvas context"));return}u.drawImage(i,0,0,s.width,s.height);try{let l=s.toDataURL(n,r);document.body.removeChild(i),a(l)}catch(l){document.body.removeChild(i),o(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{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 Ta(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 dn(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 Ae(e){return e instanceof Error&&e.name==="AbortError"}function $a(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?Rb(e,t,n,r,a,o):Oa(e,t,n,r,a,o);case"boolean":return _a(e,t,n,r,a,o);case"number":case"integer":return za(e,t,n,r,a,o);case"object":return Da(e,t,n,r,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return qb(e,t,n,r,a,o);break}default:console.error(`Unsupported property type: ${i}`)}}function Da(e,t,n,r,a,o){let i=La(t.schema??{},r).reduce((s,u)=>{let l=$a(e,u,n,r,a,o);return l!=null&&(s[u.id]=l()),s},{});return()=>({id:t.id,type:"object",value:i})}function Oa(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=s(l,t.schema.default??""),g=Hb(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return i[f](l,{inputLabel:c,placeholder:a.i18n?.prompt,...d}),()=>({id:t.id,type:"string",value:d.value})}function Rb(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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"]:{},g=(t.schema.enum??[]).map(w=>({id:w,label:d[w]??Ta(w)})),f=t.schema.default!=null?g.find(w=>w.id===t.schema.default)??g[0]:g[0],v=s(l,f);return i.Select(l,{inputLabel:c,values:g,...v}),()=>({id:t.id,type:"string",value:v.value.id})}function _a(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=!!t.schema.default,g=s(l,d);return i.Checkbox(l,{inputLabel:c,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function za(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,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=s(l,f);if(d!=null&&g!=null){let w=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(w=t.schema["x-imgly-step"]),i.Slider(l,{inputLabel:c,min:d,max:g,step:w,...v})}else i.NumberInput(l,{inputLabel:c,min:d,max:g,...v});return()=>({id:t.id,type:"integer",value:v.value})}function qb(e,t,n,r,a,o){let{builder:i,experimental:{global:s}}=e,{id:u}=t,l=`${n.id}.${u}`,c=t.schema.title??l,d=t.schema.anyOf??[],g=[],f={},v={};d.forEach((p,b)=>{let y=p.title??"common.custom",m=`${n.id}.${u}.anyOf[${b}]`,C="x-imgly-enum-labels"in t.schema&&typeof t.schema["x-imgly-enum-labels"]=="object"?t.schema["x-imgly-enum-labels"]:{},k="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:C[M]??Ta(M),icon:k[M]})}):(f[m]=()=>Oa(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="boolean"?(f[m]=()=>_a(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="integer"?(f[m]=()=>za(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]})):p.type==="array"||p.type==="object"&&(f[m]=()=>Da(e,{id:m,schema:{...p,title:y}},n,r,a,o),g.push({id:m,label:C[y]??y,icon:k[y]}))});let w=t.schema.default!=null?g.find(p=>p.id===t.schema.default)??g[0]:g[0],h=s(l,w);if(i.Select(l,{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 Hb(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Qb=$a,Yb="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Pa=Yb;function Zb(e,t,n){switch(t){case"image":return Wb(e,n[t]);case"video":return Kb(e,n[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Wb(e,t){let n=t.width,r=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:n,height:r}}}function Kb(e,t){let n=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:Pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:n,height:r}}}var Jb=Zb;function Xb(e,t){switch(e){case"image":return e3(t[e]);case"video":return t3(t[e]);default:throw new Error(`Unsupported output kind for creating dry run output: ${e}`)}}function e3(e){let t=e.width,n=e.height,r=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image";return{kind:"image",url:`https://placehold.co/${t}x${n}/000000/FFF?text=${r.replace(" ","+").replace(`
339
+ `,"+")}`}}function t3(e){return{kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"}}var r3=Xb;async function n3(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 i3(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 o3(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 a3(e,n[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function i3(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 o3(e,t,n){let r=t.width,a=t.height,o=await Fb(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 a3(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 ga=n3;function Ua(e){let t=e.filter(n=>!!n);return n=>async(r,a)=>{let o=[],i=l=>{o.push(l)},s=async(l,c,d)=>{if(l>=t.length)return n(c,d);let g=t[l],f=async(w,h)=>s(l+1,w,h),v={...d,addDisposer:i};return g(c,v,f)},u={...a,addDisposer:i};return{result:await s(0,r,u),dispose:async()=>{for(let l=o.length-1;l>=0;l--)try{await o[l]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function l3(){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 Va=l3;async function s3(e,t,n,r,a,o,i){let{cesdk:s,createPlaceholderBlock:u,historyAssetSourceId:l}=a,c;try{o.debug&&console.group(`Starting Generation for '${e}'`);let d=t(),g=await n(d.input),f=Gb(),v;if(u){if(v=Jb(f,e,g),o.debug&&console.log("Adding as asset to scene:",JSON.stringify(v,void 0,2)),c=await Vb(s,v),c!=null&&r.kind==="video"){let b=s.engine.block.getPositionX(c),y=s.engine.block.getPositionY(c),m=s.engine.block.duplicate(c);s.engine.block.setPositionX(m,b),s.engine.block.setPositionY(m,y),s.engine.block.destroy(c),c=m}if(Jt(s,i,c))return{status:"aborted"};if(c==null)throw new Error("Could not create placeholder block");s.engine.block.setState(c,{type:"Pending",progress:0})}let w=Ua([...r.output.middleware??[],o.debug?Va():void 0]),h;if(o.dryRun?h=await u3(e,g):h=(await w(r.output.generate)(d.input,{abortSignal:i,engine:a.engine,cesdk:s})).result,dn(h))throw new Error("Streaming generation is not supported yet from a panel");if(Jt(s,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&&s.engine.block.isValid(c)&&(p=await ga(f,e,g,h),o.debug&&console.log("Updating asset in scene:",JSON.stringify(p,void 0,2)),await s.engine.asset.defaultApplyAssetToBlock(p,c)),Jt(s,i,c))return{status:"aborted"};if(l!=null){if(p==null&&(p=await ga(f,e,g,h),Jt(s,i,c)))return{status:"aborted"};let b={...p,id:`${Date.now()}-${p.id}`,label:p.label!=null?{en:p.label}:{},tags:{}};s.engine.asset.addAssetToSource(l,b)}return c!=null&&s.engine.block.isValid(c)&&s.engine.block.setState(c,{type:"Ready"}),{status:"success",output:h}}catch(d){throw c!=null&&s.engine.block.isValid(c)&&(Ae(d)?s.engine.block.destroy(c):s.engine.block.setState(c,{type:"Error",error:"Unknown"})),d}finally{o.debug&&console.groupEnd()}}function Jt(e,t,n){return t.aborted?(n!=null&&e.engine.block.isValid(n)&&e.engine.block.destroy(n),!0):!1}async function u3(e,t){console.log("[DRY RUN]: Requesting dummy AI generation with block inputs: ",JSON.stringify(t,void 0,2));let n=r3(e,t);return await c3(3e3),n}async function c3(e){return new Promise(t=>{setTimeout(t,e)})}var d3=s3;function g3(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),p3(r,a.output.notification,()=>({input:o?.().input,error:e}))||r.ui.showNotification({type:"error",message:Bb(e)}))}function p3(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 Ct=g3;function Ba(e){return`${e}.generating`}function f3(e){return`${e}.abort`}function m3(e,t,n,r,a,o){let{builder:i,experimental:s}=e,{cesdk:u,includeHistoryLibrary:l=!0}=a,{id:c,output:{abortable:d}}=t,g=s.global(f3(c),()=>{}),f=s.global(Ba(c),!1),v,w=f.value&&d,h=()=>{w&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},p;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let y=n();p=a.requiredInputs.every(m=>!y.input[m])}let b=s.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:w?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${c}.abort`,"common.cancel"],onClick:()=>{let y=u.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:m})=>{u.ui.closeDialog(m),b.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:m})=>{h(),u.ui.closeDialog(m),b.setValue(void 0)}}});b.setValue(y)}}:void 0,onClick:async()=>{v=new AbortController;let y=v.signal,m=async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),v?.abort()});let C=await d3(t.kind,n,r,t,a,o,y);if(C.status==="aborted")return;let k=t.output.notification;y3(u,k,()=>({input:n().input,output:C.output}))}catch(C){if(Ae(C))return;Ct(C,{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(m,{provider:t,abort:h}):await m()}}),t.output.generationHintText!=null&&i.Text(`${c}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),l&&a.historyAssetLibraryEntryId!=null&&i.Library(`${c}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function y3(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 Ga=m3;async function b3(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=Ob(t.document),s=Sa(i,t.inputReference);if(!_b(s,r.debug))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let u=s,l=La(u,t),c=d=>{let{builder:g}=d,f=[];g.Section(`${o}.schema.section`,{children:()=>{l.forEach(p=>{let b=Qb(d,p,e,t,n,r);b!=null&&(Array.isArray(b)?f.push(...b):f.push(b))})}});let v=f.map(p=>p()),w=p=>p.type==="object"?Object.entries(p.value).reduce((b,[y,m])=>(b[y]=w(m),b),{}):p.value,h=v.reduce((p,b)=>(p[b.id]=w(b),p),{});Ga(d,e,()=>({input:h}),()=>t.getBlockInput(h),{...n,requiredInputs:u.required,createPlaceholderBlock:t.userFlow==="placeholder"},r)};return a.ui.registerPanel(Na(o),c),c}var h3=b3;async function v3(e,t,n,r){let{cesdk:a}=n,{id:o}=e,i=t.render,s=u=>{let{state:l}=u,c=l(Ba(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=i(u,{cesdk:a,isGenerating:c});return Ga(u,e,d,g,{...n,includeHistoryLibrary:t.includeHistoryLibrary??!0,createPlaceholderBlock:t.userFlow==="placeholder"},r),d};return a.ui.registerPanel(Na(o),s),s}var w3=v3,C3=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,l)=>{let c=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[c]&&(d=l.label[c]),l.tags!=null&&typeof l.tags=="object"&&l.tags[c]&&(g=l.tags[c]);let f={...l,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),s=o<t.length?n+1:void 0;return{assets:i,currentPage:n,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let 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 s=o.meta?.insertedAt||o._insertedAt||Date.now(),u=i.meta?.insertedAt||i._insertedAt||Date.now();return e==="asc"?s-u:u-s}),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(" "),s=e.label?.toLowerCase()??"",u=e.tags?.map(l=>l.toLowerCase())??[];if(!i.every(l=>s.includes(l)||u.some(c=>c.includes(l))))return!1}if(r){let i=Array.isArray(r)?r:[r];if(i.length>0&&(!e.tags||!i.every(s=>e.tags?.includes(s))))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,s)=>{let u,l;return r==="id"?(u=i.id,l=s.id):(u=i.meta?.[r]??null,l=s.meta?.[r]??null),u==null?n==="Ascending"?-1:1:l==null?n==="Ascending"?1:-1:typeof u=="string"&&typeof l=="string"?n==="Ascending"?u.localeCompare(l):l.localeCompare(u):n==="Ascending"?u<l?-1:u>l?1:0:u>l?-1:u<l?1:0}):n==="Descending"&&o.reverse(),a&&o.sort((i,s)=>i.active&&!s.active?-1:!i.active&&s.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 k3=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)}},Fa=k3,M3=typeof global=="object"&&global&&global.Object===Object&&global,Ra=M3,x3=typeof self=="object"&&self&&self.Object===Object&&self,I3=Ra||x3||Function("return this")(),P=I3,A3=P.Symbol,je=A3,qa=Object.prototype,j3=qa.hasOwnProperty,E3=qa.toString,ht=je?je.toStringTag:void 0;function S3(e){var t=j3.call(e,ht),n=e[ht];try{e[ht]=void 0;var r=!0}catch{}var a=E3.call(e);return r&&(t?e[ht]=n:delete e[ht]),a}var L3=S3,N3=Object.prototype,T3=N3.toString;function $3(e){return T3.call(e)}var D3=$3,O3="[object Null]",_3="[object Undefined]",pa=je?je.toStringTag:void 0;function z3(e){return e==null?e===void 0?_3:O3:pa&&pa in Object(e)?L3(e):D3(e)}var It=z3;function P3(e){return e!=null&&typeof e=="object"}var gn=P3,kk=Array.isArray;function U3(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ha=U3,V3="[object AsyncFunction]",B3="[object Function]",G3="[object GeneratorFunction]",F3="[object Proxy]";function R3(e){if(!Ha(e))return!1;var t=It(e);return t==B3||t==G3||t==V3||t==F3}var q3=R3,H3=P["__core-js_shared__"],tn=H3,fa=function(){var e=/[^.]+$/.exec(tn&&tn.keys&&tn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Q3(e){return!!fa&&fa in e}var Y3=Q3,Z3=Function.prototype,W3=Z3.toString;function K3(e){if(e!=null){try{return W3.call(e)}catch{}try{return e+""}catch{}}return""}var q=K3,J3=/[\\^$.*+?()[\]{}|]/g,X3=/^\[object .+?Constructor\]$/,e7=Function.prototype,t7=Object.prototype,r7=e7.toString,n7=t7.hasOwnProperty,i7=RegExp("^"+r7.call(n7).replace(J3,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function o7(e){if(!Ha(e)||Y3(e))return!1;var t=q3(e)?i7:X3;return t.test(q(e))}var a7=o7;function l7(e,t){return e?.[t]}var s7=l7;function u7(e,t){var n=s7(e,t);return a7(n)?n:void 0}var Ee=u7,c7=Ee(P,"WeakMap"),an=c7;function d7(e,t){return e===t||e!==e&&t!==t}var g7=d7,p7=9007199254740991;function f7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=p7}var m7=f7,Mk=Object.prototype,y7="[object Arguments]";function b7(e){return gn(e)&&It(e)==y7}var ma=b7,Qa=Object.prototype,h7=Qa.hasOwnProperty,v7=Qa.propertyIsEnumerable,xk=ma(function(){return arguments}())?ma:function(e){return gn(e)&&h7.call(e,"callee")&&!v7.call(e,"callee")},Ya=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ya=Ya&&typeof module=="object"&&module&&!module.nodeType&&module,w7=ya&&ya.exports===Ya,ba=w7?P.Buffer:void 0,Ik=ba?ba.isBuffer:void 0,C7="[object Arguments]",k7="[object Array]",M7="[object Boolean]",x7="[object Date]",I7="[object Error]",A7="[object Function]",j7="[object Map]",E7="[object Number]",S7="[object Object]",L7="[object RegExp]",N7="[object Set]",T7="[object String]",$7="[object WeakMap]",D7="[object ArrayBuffer]",O7="[object DataView]",_7="[object Float32Array]",z7="[object Float64Array]",P7="[object Int8Array]",U7="[object Int16Array]",V7="[object Int32Array]",B7="[object Uint8Array]",G7="[object Uint8ClampedArray]",F7="[object Uint16Array]",R7="[object Uint32Array]",E={};E[_7]=E[z7]=E[P7]=E[U7]=E[V7]=E[B7]=E[G7]=E[F7]=E[R7]=!0;E[C7]=E[k7]=E[D7]=E[M7]=E[O7]=E[x7]=E[I7]=E[A7]=E[j7]=E[E7]=E[S7]=E[L7]=E[N7]=E[T7]=E[$7]=!1;function q7(e){return gn(e)&&m7(e.length)&&!!E[It(e)]}var H7=q7;function Q7(e){return function(t){return e(t)}}var Y7=Q7,Za=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kt=Za&&typeof module=="object"&&module&&!module.nodeType&&module,Z7=kt&&kt.exports===Za,rn=Z7&&Ra.process,W7=function(){try{var e=kt&&kt.require&&kt.require("util").types;return e||rn&&rn.binding&&rn.binding("util")}catch{}}(),ha=W7,va=ha&&ha.isTypedArray,Ak=va?Y7(va):H7,K7=Object.prototype,jk=K7.hasOwnProperty;function J7(e,t){return function(n){return e(t(n))}}var X7=J7,Ek=X7(Object.keys,Object),eh=Object.prototype,Sk=eh.hasOwnProperty,th=Ee(Object,"create"),Mt=th;function rh(){this.__data__=Mt?Mt(null):{},this.size=0}var nh=rh;function ih(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var oh=ih,ah="__lodash_hash_undefined__",lh=Object.prototype,sh=lh.hasOwnProperty;function uh(e){var t=this.__data__;if(Mt){var n=t[e];return n===ah?void 0:n}return sh.call(t,e)?t[e]:void 0}var ch=uh,dh=Object.prototype,gh=dh.hasOwnProperty;function ph(e){var t=this.__data__;return Mt?t[e]!==void 0:gh.call(t,e)}var fh=ph,mh="__lodash_hash_undefined__";function yh(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Mt&&t===void 0?mh:t,this}var bh=yh;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=nh;Se.prototype.delete=oh;Se.prototype.get=ch;Se.prototype.has=fh;Se.prototype.set=bh;var wa=Se;function hh(){this.__data__=[],this.size=0}var vh=hh;function wh(e,t){for(var n=e.length;n--;)if(g7(e[n][0],t))return n;return-1}var Xt=wh,Ch=Array.prototype,kh=Ch.splice;function Mh(e){var t=this.__data__,n=Xt(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():kh.call(t,n,1),--this.size,!0}var xh=Mh;function Ih(e){var t=this.__data__,n=Xt(t,e);return n<0?void 0:t[n][1]}var Ah=Ih;function jh(e){return Xt(this.__data__,e)>-1}var Eh=jh;function Sh(e,t){var n=this.__data__,r=Xt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Lh=Sh;function Le(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])}}Le.prototype.clear=vh;Le.prototype.delete=xh;Le.prototype.get=Ah;Le.prototype.has=Eh;Le.prototype.set=Lh;var er=Le,Nh=Ee(P,"Map"),xt=Nh;function Th(){this.size=0,this.__data__={hash:new wa,map:new(xt||er),string:new wa}}var $h=Th;function Dh(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Oh=Dh;function _h(e,t){var n=e.__data__;return Oh(t)?n[typeof t=="string"?"string":"hash"]:n.map}var tr=_h;function zh(e){var t=tr(this,e).delete(e);return this.size-=t?1:0,t}var Ph=zh;function Uh(e){return tr(this,e).get(e)}var Vh=Uh;function Bh(e){return tr(this,e).has(e)}var Gh=Bh;function Fh(e,t){var n=tr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Rh=Fh;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=$h;Ne.prototype.delete=Ph;Ne.prototype.get=Vh;Ne.prototype.has=Gh;Ne.prototype.set=Rh;var Wa=Ne;function qh(){this.__data__=new er,this.size=0}var Hh=qh;function Qh(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var Yh=Qh;function Zh(e){return this.__data__.get(e)}var Wh=Zh;function Kh(e){return this.__data__.has(e)}var Jh=Kh,Xh=200;function e8(e,t){var n=this.__data__;if(n instanceof er){var r=n.__data__;if(!xt||r.length<Xh-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Wa(r)}return n.set(e,t),this.size=n.size,this}var t8=e8;function At(e){var t=this.__data__=new er(e);this.size=t.size}At.prototype.clear=Hh;At.prototype.delete=Yh;At.prototype.get=Wh;At.prototype.has=Jh;At.prototype.set=t8;var r8=Object.prototype,Lk=r8.propertyIsEnumerable,n8=Ee(P,"DataView"),ln=n8,i8=Ee(P,"Promise"),sn=i8,o8=Ee(P,"Set"),un=o8,Ca="[object Map]",a8="[object Object]",ka="[object Promise]",Ma="[object Set]",xa="[object WeakMap]",Ia="[object DataView]",l8=q(ln),s8=q(xt),u8=q(sn),c8=q(un),d8=q(an),xe=It;(ln&&xe(new ln(new ArrayBuffer(1)))!=Ia||xt&&xe(new xt)!=Ca||sn&&xe(sn.resolve())!=ka||un&&xe(new un)!=Ma||an&&xe(new an)!=xa)&&(xe=function(e){var t=It(e),n=t==a8?e.constructor:void 0,r=n?q(n):"";if(r)switch(r){case l8:return Ia;case s8:return Ca;case u8:return ka;case c8:return Ma;case d8:return xa}return t});var Nk=P.Uint8Array,g8="__lodash_hash_undefined__";function p8(e){return this.__data__.set(e,g8),this}var f8=p8;function m8(e){return this.__data__.has(e)}var y8=m8;function cn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Wa;++t<n;)this.add(e[t])}cn.prototype.add=cn.prototype.push=f8;cn.prototype.has=y8;var Aa=je?je.prototype:void 0,Tk=Aa?Aa.valueOf:void 0,b8=Object.prototype,$k=b8.hasOwnProperty,h8=Object.prototype,Dk=h8.hasOwnProperty,Ok=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_k=new RegExp(/[A-Fa-f0-9]{1}/,"g"),zk=new RegExp(/[A-Fa-f0-9]{2}/,"g");function v8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var nn="@imgly/plugin-ai-generation",w8=`
340
340
  <svg>
341
341
  <symbol
342
342
  fill="none"
@@ -397,7 +397,7 @@ var xl="ly.img.ai";function $t(e){return`${xl}/${e}`}var Il=typeof global=="obje
397
397
 
398
398
  </symbol>
399
399
  </svg>
400
- `,w8=v8,ja="ly.img.ai.quickAction.order",vt="ly.img.ai.quickAction.actions";function C8(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ja}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ja}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${vt}.${t}`))e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{})[n]}}var Ka=C8,on="ly.img.ai.inference.editMode",Ja="ly.img.ai.inference.metadata";function Xa(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function k8(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 M8({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 x8=M8;function I8({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 A8=I8;function j8({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=E8(r.engine,o,e),await a(n,r)}catch(l){throw Ae(l)&&i(),l}finally{t&&i()}}}function E8(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 S8=j8;function L8(e,t){switch(t.kind){case"text":return N8(e,t);case"image":return T8(e,t);case"video":return $8(e,t);case"audio":return D8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function N8(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(s=>n.engine.block.getString(s,"text/text")),i;if(dn(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}}}async function T8(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=await n.engine.editor.getMimeType(u.uri);if(a.throwIfAborted(),s==="image/svg+xml")throw new Error("SVG images are not supported");let c=n.engine.block.getCropScaleX(o),d=n.engine.block.getCropScaleY(o),g=n.engine.block.getCropTranslationX(o),f=n.engine.block.getCropTranslationY(o),v=n.engine.block.getCropRotation(o),w=()=>{n.engine.block.setCropScaleX(o,c),n.engine.block.setCropScaleY(o,d),n.engine.block.setCropTranslationX(o,g),n.engine.block.setCropTranslationY(o,f),n.engine.block.setCropRotation(o,v)};if(dn(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 h=e.url,p=await n.engine.editor.getMimeType(h),b=[{uri:await O8(n,h,p),width:u.width,height:u.height}];n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w();let y=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",l),w()},m=()=>{n.engine.block.setSourceSet(i,"fill/image/sourceSet",b),w()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:y,onAfter:m,onCancel:()=>{y()},onApply:()=>{m()}}}}async function $8(e,t){throw new Error("Function not implemented.")}async function D8(e,t){throw new Error("Function not implemented.")}async function O8(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${_8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}function _8(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}var z8=L8;function P8({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=U8(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 Ae(u)&&l(),u}finally{t&&l()}}}function U8(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 V8=P8;function B8(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 w=new Fa(n.engine,Ja),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Xa({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=k8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Ct(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Ea({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:k?.blockIds??g,confirmationComponentId:l},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw Ae(M)||Ct(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Ct(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Ea({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:s(),blockIds:C?.blockIds??g,confirmationComponentId:l},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw Ae(k)||Ct(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Ea(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:on});let s=new Fa(n.engine,Ja);a.forEach(p=>{s.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ua([...o.output.middleware??[],t.debug?Va():void 0,A8({}),...i.confirmation?[i.lockDuringConfirmation?S8({editMode:on}):V8({editMode:on}),i.confirmation&&x8({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await z8(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{s.set(p,{status:"confirmation",quickActionId:i.id})}):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:w}}var G8=B8;async function F8(e,t,n){await e.initialize(t);let r=await q8(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}`]:R8(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",w8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await H8(e,o,n)}}function R8(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 q8(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 Cb(r,e)),r}return n}}async function H8(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Q8(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Y8(e,e.input.quickActions,t,n)),r}async function Q8(e,t,n,r){switch(t.type){case"custom":return wb(e,t,n,r);case"schema":return hb(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Y8(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=Ka(a,o);t.actions.forEach(u=>{let s=u.enable??!0;a.feature.enable(Xa({quickActionId:u.id,quickActionMenuId:o}),s),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:l}=G8({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${l}`)}var Z8=F8,W8="@imgly/plugin-ai-text-generation-web",K8=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});Z8(n,{cesdk:t,engine:t.engine},{debug:!0,dryRun:!1});let r=Ka(t,"text");r.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...r.getQuickActionMenuOrder()]),t.ui.addIconSet(T3,D3),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..."}})}}),J8=e=>({name:W8,version:"0.1.0",...K8(e)}),el=J8;var wn=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 X8=typeof global=="object"&&global&&global.Object===Object&&global,ml=X8,e6=typeof self=="object"&&self&&self.Object===Object&&self,t6=ml||e6||Function("return this")(),U=t6,r6=U.Symbol,$e=r6,yl=Object.prototype,n6=yl.hasOwnProperty,i6=yl.toString,jt=$e?$e.toStringTag:void 0;function o6(e){var t=n6.call(e,jt),n=e[jt];try{e[jt]=void 0;var r=!0}catch{}var a=i6.call(e);return r&&(t?e[jt]=n:delete e[jt]),a}var a6=o6,l6=Object.prototype,s6=l6.toString;function u6(e){return s6.call(e)}var c6=u6,d6="[object Null]",g6="[object Undefined]",tl=$e?$e.toStringTag:void 0;function p6(e){return e==null?e===void 0?g6:d6:tl&&tl in Object(e)?a6(e):c6(e)}var Nt=p6;function f6(e){return e!=null&&typeof e=="object"}var Cn=f6,Bk=Array.isArray;function m6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bl=m6,y6="[object AsyncFunction]",b6="[object Function]",h6="[object GeneratorFunction]",v6="[object Proxy]";function w6(e){if(!bl(e))return!1;var t=Nt(e);return t==b6||t==h6||t==y6||t==v6}var C6=w6,k6=U["__core-js_shared__"],pn=k6,rl=function(){var e=/[^.]+$/.exec(pn&&pn.keys&&pn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function M6(e){return!!rl&&rl in e}var x6=M6,I6=Function.prototype,A6=I6.toString;function j6(e){if(e!=null){try{return A6.call(e)}catch{}try{return e+""}catch{}}return""}var H=j6,E6=/[\\^$.*+?()[\]{}|]/g,S6=/^\[object .+?Constructor\]$/,L6=Function.prototype,N6=Object.prototype,T6=L6.toString,$6=N6.hasOwnProperty,D6=RegExp("^"+T6.call($6).replace(E6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O6(e){if(!bl(e)||x6(e))return!1;var t=C6(e)?D6:S6;return t.test(H(e))}var _6=O6;function z6(e,t){return e?.[t]}var P6=z6;function U6(e,t){var n=P6(e,t);return _6(n)?n:void 0}var De=U6,V6=De(U,"WeakMap"),mn=V6;function B6(e,t){return e===t||e!==e&&t!==t}var G6=B6,F6=9007199254740991;function R6(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F6}var q6=R6;var Gk=Object.prototype;var H6="[object Arguments]";function Q6(e){return Cn(e)&&Nt(e)==H6}var nl=Q6,hl=Object.prototype,Y6=hl.hasOwnProperty,Z6=hl.propertyIsEnumerable,Fk=nl(function(){return arguments}())?nl:function(e){return Cn(e)&&Y6.call(e,"callee")&&!Z6.call(e,"callee")};var vl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,il=vl&&typeof module=="object"&&module&&!module.nodeType&&module,W6=il&&il.exports===vl,ol=W6?U.Buffer:void 0,Rk=ol?ol.isBuffer:void 0;var K6="[object Arguments]",J6="[object Array]",X6="[object Boolean]",ev="[object Date]",tv="[object Error]",rv="[object Function]",nv="[object Map]",iv="[object Number]",ov="[object Object]",av="[object RegExp]",lv="[object Set]",sv="[object String]",uv="[object WeakMap]",cv="[object ArrayBuffer]",dv="[object DataView]",gv="[object Float32Array]",pv="[object Float64Array]",fv="[object Int8Array]",mv="[object Int16Array]",yv="[object Int32Array]",bv="[object Uint8Array]",hv="[object Uint8ClampedArray]",vv="[object Uint16Array]",wv="[object Uint32Array]",S={};S[gv]=S[pv]=S[fv]=S[mv]=S[yv]=S[bv]=S[hv]=S[vv]=S[wv]=!0;S[K6]=S[J6]=S[cv]=S[X6]=S[dv]=S[ev]=S[tv]=S[rv]=S[nv]=S[iv]=S[ov]=S[av]=S[lv]=S[sv]=S[uv]=!1;function Cv(e){return Cn(e)&&q6(e.length)&&!!S[Nt(e)]}var kv=Cv;function Mv(e){return function(t){return e(t)}}var xv=Mv,wl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Et=wl&&typeof module=="object"&&module&&!module.nodeType&&module,Iv=Et&&Et.exports===wl,fn=Iv&&ml.process,Av=function(){try{var e=Et&&Et.require&&Et.require("util").types;return e||fn&&fn.binding&&fn.binding("util")}catch{}}(),al=Av,ll=al&&al.isTypedArray,qk=ll?xv(ll):kv;var jv=Object.prototype,Hk=jv.hasOwnProperty;function Ev(e,t){return function(n){return e(t(n))}}var Sv=Ev,Qk=Sv(Object.keys,Object);var Lv=Object.prototype,Yk=Lv.hasOwnProperty;var Nv=De(Object,"create"),St=Nv;function Tv(){this.__data__=St?St(null):{},this.size=0}var $v=Tv;function Dv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ov=Dv,_v="__lodash_hash_undefined__",zv=Object.prototype,Pv=zv.hasOwnProperty;function Uv(e){var t=this.__data__;if(St){var n=t[e];return n===_v?void 0:n}return Pv.call(t,e)?t[e]:void 0}var Vv=Uv,Bv=Object.prototype,Gv=Bv.hasOwnProperty;function Fv(e){var t=this.__data__;return St?t[e]!==void 0:Gv.call(t,e)}var Rv=Fv,qv="__lodash_hash_undefined__";function Hv(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=St&&t===void 0?qv:t,this}var Qv=Hv;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=$v;Oe.prototype.delete=Ov;Oe.prototype.get=Vv;Oe.prototype.has=Rv;Oe.prototype.set=Qv;var sl=Oe;function Yv(){this.__data__=[],this.size=0}var Zv=Yv;function Wv(e,t){for(var n=e.length;n--;)if(G6(e[n][0],t))return n;return-1}var rr=Wv,Kv=Array.prototype,Jv=Kv.splice;function Xv(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Jv.call(t,n,1),--this.size,!0}var ew=Xv;function tw(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var rw=tw;function nw(e){return rr(this.__data__,e)>-1}var iw=nw;function ow(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 aw=ow;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=Zv;_e.prototype.delete=ew;_e.prototype.get=rw;_e.prototype.has=iw;_e.prototype.set=aw;var nr=_e,lw=De(U,"Map"),Lt=lw;function sw(){this.size=0,this.__data__={hash:new sl,map:new(Lt||nr),string:new sl}}var uw=sw;function cw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dw=cw;function gw(e,t){var n=e.__data__;return dw(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=gw;function pw(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var fw=pw;function mw(e){return ir(this,e).get(e)}var yw=mw;function bw(e){return ir(this,e).has(e)}var hw=bw;function vw(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var ww=vw;function ze(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])}}ze.prototype.clear=uw;ze.prototype.delete=fw;ze.prototype.get=yw;ze.prototype.has=hw;ze.prototype.set=ww;var Cl=ze;function Cw(){this.__data__=new nr,this.size=0}var kw=Cw;function Mw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var xw=Mw;function Iw(e){return this.__data__.get(e)}var Aw=Iw;function jw(e){return this.__data__.has(e)}var Ew=jw,Sw=200;function Lw(e,t){var n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!Lt||r.length<Sw-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Cl(r)}return n.set(e,t),this.size=n.size,this}var Nw=Lw;function Tt(e){var t=this.__data__=new nr(e);this.size=t.size}Tt.prototype.clear=kw;Tt.prototype.delete=xw;Tt.prototype.get=Aw;Tt.prototype.has=Ew;Tt.prototype.set=Nw;var Tw=Object.prototype,Zk=Tw.propertyIsEnumerable;var $w=De(U,"DataView"),yn=$w,Dw=De(U,"Promise"),bn=Dw,Ow=De(U,"Set"),hn=Ow,ul="[object Map]",_w="[object Object]",cl="[object Promise]",dl="[object Set]",gl="[object WeakMap]",pl="[object DataView]",zw=H(yn),Pw=H(Lt),Uw=H(bn),Vw=H(hn),Bw=H(mn),Te=Nt;(yn&&Te(new yn(new ArrayBuffer(1)))!=pl||Lt&&Te(new Lt)!=ul||bn&&Te(bn.resolve())!=cl||hn&&Te(new hn)!=dl||mn&&Te(new mn)!=gl)&&(Te=function(e){var t=Nt(e),n=t==_w?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case zw:return pl;case Pw:return ul;case Uw:return cl;case Vw:return dl;case Bw:return gl}return t});var Wk=U.Uint8Array;var Gw="__lodash_hash_undefined__";function Fw(e){return this.__data__.set(e,Gw),this}var Rw=Fw;function qw(e){return this.__data__.has(e)}var Hw=qw;function vn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Cl;++t<n;)this.add(e[t])}vn.prototype.add=vn.prototype.push=Rw;vn.prototype.has=Hw;var fl=$e?$e.prototype:void 0,Kk=fl?fl.valueOf:void 0;var Qw=Object.prototype,Jk=Qw.hasOwnProperty;var Yw=Object.prototype,Xk=Yw.hasOwnProperty;var 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");var kn=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(y=>y.groups&&u.some(m=>y.groups?.includes(m)))),s&&s.length>0&&(g=g.filter(y=>!y.groups||!s.some(m=>y.groups?.includes(m)))),i){let y=i.toLowerCase();g=g.filter(m=>{let C=m.label?.[a]?.toLowerCase(),k=m.tags?.[a]||[];return C&&C.includes(y)||k.some(M=>M.toLowerCase().includes(y))})}if(l&&l.length>0){let y=Array.isArray(l)?l:[l];g=g.filter(m=>{let C=m.tags?.[a]||[];return y.some(k=>C.includes(k))})}o&&g.sort((y,m)=>{let C=this.activeAssetIds.has(y.id),k=this.activeAssetIds.has(m.id);return C&&!k?-1:!C&&k?1:0}),d&&d!=="id"?g.sort((y,m)=>{let C=y.meta?.[d],k=m.meta?.[d];return C===void 0?1:k===void 0?-1:typeof C=="string"&&typeof k=="string"?c==="Descending"?k.localeCompare(C):C.localeCompare(k):typeof C=="number"&&typeof k=="number"?c==="Descending"?k-C:C-k:0}):d==="id"&&g.sort((y,m)=>c==="Descending"?m.id.localeCompare(y.id):y.id.localeCompare(m.id));let f=g.length,v=n*r,w=v+r,p=g.slice(v,w).map(y=>({id:y.id,groups:y.groups,meta:y.meta,payload:y.payload,locale:a,label:y.label?.[a],tags:y.tags?.[a],active:this.activeAssetIds.has(y.id)})),b=w<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=Zw(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 kl(e,t,n=[]){return new kn(e,t,n)}function Zw(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 Mn="ly.img.ai.apps";var L=$t("apps"),or=512,ar=128,Ml=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 Ww(t,{isVideoMode:n,baseURL:a,debug:e.debug}),i=await Q(t,o,r.text2text),l=await Q(t,o,r.text2image),u=await Q(t,o,r.image2image),s,c,d,g;n&&(s=await Q(t,o,r.text2video),c=await Q(t,o,r.image2video),d=await Q(t,o,r.text2speech),g=await Q(t,o,r.text2sound),t.addPlugin(Co({text2video:s,image2video:c})),t.addPlugin(da({text2speech:d,text2sound:g}))),i!=null&&t.addPlugin(el({provider:i})),t.addPlugin(Ti({text2image:l,image2image:u})),Jw(t,{text2text:i,text2image:l,image2image:u,text2video:s,image2video:c,text2speech:d,text2sound:g},n),Xw(t)}});async function Q(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(`${L}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(L);try{return await l(o,i)}finally{e.engine.asset.assetSourceContentsChanged(L),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${L}.isGenerating`,!1)}};r.output.middleware=[...r.output.middleware??[],a]}return()=>Promise.resolve(r)}async function Ww(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;Kw(e);let o;n&&(o=kl(L,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:or,height:ar}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:or,height:ar}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:or,height:ar}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:or,height:ar}}]),e.engine.asset.addSource(o),e.ui.registerPanel(L,({builder:l})=>{l.Library(L,{entries:[L],onSelect:async u=>{e.ui.openPanel($t(u.id))}})}),e.ui.addAssetLibraryEntry({id:L,sourceIds:[L],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:l})=>l,cardLabelPosition:()=>"inside"}));let i=`${L}.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(L),c=u.global(`${L}.isGenerating`,!1);l.Button(`${L}.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(L):e.ui.openPanel(L)}})})):e.ui.registerComponent(i,({builder:l,experimental:u})=>{let s=$t("image-generation"),c=u.global(`${L}.isGenerating`,!1),d=e.ui.isPanelOpen(s);l.Button(`${L}.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 Kw(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"),w=u;w==null&&d.length===1&&(w=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:w,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===L||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function Jw(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new wn("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 wn("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 Xw(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.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 eC=e=>({name:Mn,version:"0.1.0",...Ml(e)}),CM=eC;export{CM as default};
400
+ `,C8=w8,ja="ly.img.ai.quickAction.order",vt="ly.img.ai.quickAction.actions";function k8(e,t){return{id:t,setQuickActionMenuOrder:n=>{e.ui.experimental.setGlobalStateValue(`${ja}.${t}`,n)},getQuickActionMenuOrder:()=>e.ui.experimental.getGlobalStateValue(`${ja}.${t}`,[]),registerQuickAction:n=>{if(!e.ui.experimental.hasGlobalStateValue(`${vt}.${t}`))e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{[n.id]:n});else{let r=e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{});e.ui.experimental.setGlobalStateValue(`${vt}.${t}`,{...r,[n.id]:n})}},getQuickAction:n=>e.ui.experimental.getGlobalStateValue(`${vt}.${t}`,{})[n]}}var Ka=k8,on="ly.img.ai.inference.editMode",Ja="ly.img.ai.inference.metadata";function Xa(e){return`ly.img.ai.quickAction.${e.quickActionMenuId}.${e.quickActionId}`}function M8(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 x8({alwaysOnTop:e=!0,disableClipping:t=!0}){return async(n,r,a)=>{let o={},i={},s=e||t?r.blockIds??r.engine.block.findAllSelected():[];return s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&(o[u]=r.engine.block.isAlwaysOnTop(u),r.engine.block.setAlwaysOnTop(u,!0)),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&(i[l]=r.engine.block.isClipped(l),r.engine.block.setClipped(l,!1))}}),r.addDisposer(async()=>{s.forEach(u=>{if(r.engine.block.isValid(u)&&e&&r.engine.block.setAlwaysOnTop(u,o[u]),t){let l=r.engine.block.getParent(u);l!=null&&r.engine.block.getType(l)!=="//ly.img.ubq/scene"&&i[l]!=null&&r.engine.block.setClipped(l,i[l])}})}),await a(n,r)}}var I8=x8;function A8({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 j8=A8;function E8({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=S8(r.engine,o,e),await a(n,r)}catch(s){throw Ae(s)&&i(),s}finally{t&&i()}}}function S8(e,t,n){let r=e.editor.getGlobalScope("editor/select"),a=e.editor.getEditMode();s(),e.editor.setGlobalScope("editor/select","Deny"),e.editor.setEditMode(n);let o=e.editor.createHistory(),i=e.editor.getActiveHistory();e.editor.setActiveHistory(o);function s(){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)}),l=e.block.onSelectionChanged(s);return()=>{r!=null&&e.editor.setGlobalScope("editor/select",r),e.editor.setEditMode(a),e.editor.setActiveHistory(i),e.editor.destroyHistory(o),l(),u()}}var L8=E8;function N8(e,t){switch(t.kind){case"text":return T8(e,t);case"image":return $8(e,t);case"video":return D8(e,t);case"audio":return O8(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function T8(e,t){let{cesdk:n,blockIds:r,abortSignal:a}=t,o=r.map(l=>n.engine.block.getString(l,"text/text")),i;if(dn(e)){let l="";for await(let c of e){if(a.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),r.forEach(d=>{n.engine.block.setString(d,"text/text",l)}),i={kind:"text",text:l}}}else i=e;if(i==null||i.kind!=="text")throw new Error("Output kind from generation is not text");let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",i.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",o[c])})};return{consumedGenerationResult:i,applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:s}}}async function $8(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),s=n.engine.block.getSourceSet(i,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=n.engine.block.getString(i,"fill/image/imageFileURI"));let c=await n.engine.editor.getMimeType(u?.uri??l);if(a.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let d=n.engine.block.getCropScaleX(o),g=n.engine.block.getCropScaleY(o),f=n.engine.block.getCropTranslationX(o),v=n.engine.block.getCropTranslationY(o),w=n.engine.block.getCropRotation(o),h=()=>{n.engine.block.setCropScaleX(o,d),n.engine.block.setCropScaleY(o,g),n.engine.block.setCropTranslationX(o,f),n.engine.block.setCropTranslationY(o,v),n.engine.block.setCropRotation(o,w)};if(dn(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 p=e.url,b=await n.engine.editor.getMimeType(p),y=await _8(n,p,b),m=u?[{uri:y,width:u.width,height:u.height}]:void 0,C=y;m==null?n.engine.block.setString(i,"fill/image/imageFileURI",C):n.engine.block.setSourceSet(i,"fill/image/sourceSet",m),h();let k=()=>{if(s==null){if(l==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",l)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",s);h()},M=()=>{if(m==null){if(C==null)throw new Error("No image URI found");n.engine.block.setString(i,"fill/image/imageFileURI",C)}else n.engine.block.setSourceSet(i,"fill/image/sourceSet",m);h()};return{consumedGenerationResult:e,applyCallbacks:{onBefore:k,onAfter:M,onCancel:()=>{k()},onApply:()=>{M()}}}}async function D8(e,t){throw new Error("Function not implemented.")}async function O8(e,t){throw new Error("Function not implemented.")}async function _8(e,t,n){let r=await(await fetch(t)).blob(),a=new File([r],`image.${v8(n)}`,{type:n}),o=await e.unstable_upload(a,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var z8=N8;function P8({editMode:e,automaticallyUnlock:t=!1,showNotification:n=!0}){return async(r,a,o)=>{let i=a.blockIds??a.engine.block.findAllSelected(),s=()=>{};t||a.addDisposer(async()=>{s?.()});try{s=U8(a.engine,i,e);let u=await o(r,a);if(n){let l=a.engine.block.findAllSelected();i.some(c=>l.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 Ae(u)&&s(),u}finally{t&&s()}}}function U8(e,t,n){function r(){let i=e.block.findAllSelected();return t.some(s=>i.includes(s))}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 V8=P8;function B8(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 s=`${i}.canvasnMenu`,u={unlock:()=>{},abort:()=>{},applyCallbacks:void 0},l=()=>{let d=new AbortController,g=d.signal;return u.abort=()=>{d.abort()},g};n.ui.registerComponent(s,({builder:d,engine:g,state:f})=>{let v=g.block.findAllSelected();if(v.length===0)return null;let w=new Fa(n.engine,Ja),h=w.get(v[0]);if(h==null)return null;let p=()=>{v.forEach(b=>{w.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"),y=u.applyCallbacks?.onCancel;y!=null&&d.Button(`${i}.cancel`,{icon:"@imgly/Cross",tooltip:`${o}.cancel`,onClick:()=>{u.unlock(),y(),p()}});let m=u.applyCallbacks?.onBefore,C=u.applyCallbacks?.onAfter;m!=null&&C!=null&&d.ButtonGroup(`${i}.compare`,{children:()=>{d.Button(`${i}.compare.before`,{label:`${i}.before`,variant:"regular",isActive:b.value==="before",onClick:()=>{m(),b.setValue("before")}}),d.Button(`${i}.compare.after`,{label:`${i}.after`,variant:"regular",isActive:b.value==="after",onClick:()=>{C(),b.setValue("after")}})}});let k=u.applyCallbacks?.onApply;k!=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(),k(),g.editor.addUndoStep()}});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 y=r.getQuickAction(b);if(y==null||!n.feature.isEnabled(Xa({quickActionId:b,quickActionMenuId:r.id}),{engine:d.engine}))return null;let m=y.scopes;return m!=null&&m.length>0&&!g.every(C=>m.every(k=>d.engine.block.isAllowedByScope(C,k)))?null:y}).filter(b=>b!=null);if(f=M8(f),f.length===0||f.every(b=>b==="ly.img.separator"))return null;let{builder:v,experimental:w,state:h}=d,p=h(`${o}.toggleExpandedState`,void 0);w.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 y=p.value,m=r.getQuickAction(y);if(m!=null&&m.renderExpanded!=null){m.renderExpanded(d,{blockIds:g,closeMenu:b,toggleExpand:()=>{p.setValue(void 0)},handleGenerationError:C=>{Ct(C,{cesdk:n,provider:a},t)},generate:async(C,k)=>{try{let{returnValue:M,applyCallbacks:N,dispose:V}=await Ea({input:C,quickAction:m,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:k?.blockIds??g,confirmationComponentId:s},t);return u.unlock=V,u.applyCallbacks=N,M}catch(M){throw Ae(M)||Ct(M,{cesdk:n,provider:a},t),M}}});return}}w.builder.Menu(`${o}.menu`,{children:()=>{f.forEach(y=>{y==="ly.img.separator"?v.Separator(`${o}.separator.${Math.random().toString()}`):y.render(d,{blockIds:g,closeMenu:b,handleGenerationError:m=>{Ct(m,{cesdk:n,provider:a},t)},toggleExpand:()=>{p.setValue(y.id)},generate:async(m,C)=>{try{let{returnValue:k,applyCallbacks:M,dispose:N}=await Ea({input:m,quickAction:y,quickActionMenu:r,provider:a,cesdk:n,abortSignal:l(),blockIds:C?.blockIds??g,confirmationComponentId:s},t);return u.unlock=N,u.applyCallbacks=M,k}catch(k){throw Ae(k)||Ct(k,{cesdk:n,provider:a},t),k}}})})}})}})}})}),{canvasMenuComponentId:c}}async function Ea(e,t){let{cesdk:n,input:r,blockIds:a,provider:o,quickAction:i,confirmationComponentId:s,abortSignal:u}=e;i.confirmation&&n.ui.setCanvasMenuOrder([s],{editMode:on});let l=new Fa(n.engine,Ja);a.forEach(p=>{l.set(p,{status:"processing",quickActionId:i.id})});let c={cesdk:n,engine:n.engine,abortSignal:u},d=Ua([...o.output.middleware??[],t.debug?Va():void 0,j8({}),...i.confirmation?[i.lockDuringConfirmation?L8({editMode:on}):V8({editMode:on}),i.confirmation&&I8({})]:[]]),{result:g,dispose:f}=await d(o.output.generate)(r,c),{consumedGenerationResult:v,applyCallbacks:w}=await z8(g,{abortSignal:u,kind:o.kind,blockIds:a,cesdk:n});i.confirmation?a.forEach(p=>{l.set(p,{status:"confirmation",quickActionId:i.id})}):a.forEach(p=>{l.clear(p)});let h=()=>{f(),a.forEach(p=>{l.clear(p)})};return u.addEventListener("abort",h),{dispose:h,returnValue:v,applyCallbacks:w}}var G8=B8;async function F8(e,t,n){await e.initialize(t);let r=await q8(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}`]:R8(e)}});let i="@imgly/plugin-ai-generation.iconSetAdded";return t.cesdk.ui.experimental.hasGlobalStateValue(i)||(t.cesdk.ui.addIconSet("@imgly/plugin-ai-generation",C8),t.cesdk.ui.experimental.setGlobalStateValue(i,!0)),{renderBuilderFunctions:await H8(e,o,n)}}function R8(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 q8(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 C3(r,e)),r}return n}}async function H8(e,t,n){let r={panel:void 0};return e.input?.panel!=null&&(r.panel=await Q8(e,e.input.panel,t,n)),e.input?.quickActions!=null&&(n.debug&&console.log(`Initializing quick actions for provider '${e.kind}' (${e.id})`),Y8(e,e.input.quickActions,t,n)),r}async function Q8(e,t,n,r){switch(t.type){case"custom":return w3(e,t,n,r);case"schema":return h3(e,t,n,r);default:r.debug&&console.warn(`Invalid panel input type '${t.type}' - skipping`)}}async function Y8(e,t,n,r){let{cesdk:a}=n,o=e.kind,i=Ka(a,o);t.actions.forEach(u=>{let l=u.enable??!0;a.feature.enable(Xa({quickActionId:u.id,quickActionMenuId:o}),l),i.registerQuickAction(u),r.debug&&console.log(`Registered quick action: '${u.id}' (v${u.version}) to menu '${o}'`)});let{canvasMenuComponentId:s}=G8({cesdk:a,quickActionMenu:i,provider:e},r);r.debug&&console.log(`Registered quick action menu component: ${s}`)}var Z8=F8,W8="@imgly/plugin-ai-text-generation-web",K8=e=>({async initialize({cesdk:t}){if(t==null)return;let n=await e.provider?.({cesdk:t});Z8(n,{cesdk:t,engine:t.engine},{debug:!0,dryRun:!1});let r=Ka(t,"text");r.setQuickActionMenuOrder(["improve","fix","shorter","longer","ly.img.separator","changeTone","translate","ly.img.separator","changeTextTo",...r.getQuickActionMenuOrder()]),t.ui.addIconSet(Tb,Db),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..."}})}}),J8=e=>({name:W8,version:"0.1.3",...K8(e)}),el=J8;var wn=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,s=i+o,u=r.slice(i,s),l=s<r.length?a+1:void 0;return{assets:u,currentPage:a,nextPage:l,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 X8=typeof global=="object"&&global&&global.Object===Object&&global,ml=X8,e6=typeof self=="object"&&self&&self.Object===Object&&self,t6=ml||e6||Function("return this")(),U=t6,r6=U.Symbol,$e=r6,yl=Object.prototype,n6=yl.hasOwnProperty,i6=yl.toString,jt=$e?$e.toStringTag:void 0;function o6(e){var t=n6.call(e,jt),n=e[jt];try{e[jt]=void 0;var r=!0}catch{}var a=i6.call(e);return r&&(t?e[jt]=n:delete e[jt]),a}var a6=o6,l6=Object.prototype,s6=l6.toString;function u6(e){return s6.call(e)}var c6=u6,d6="[object Null]",g6="[object Undefined]",tl=$e?$e.toStringTag:void 0;function p6(e){return e==null?e===void 0?g6:d6:tl&&tl in Object(e)?a6(e):c6(e)}var Nt=p6;function f6(e){return e!=null&&typeof e=="object"}var Cn=f6,Bk=Array.isArray;function m6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bl=m6,y6="[object AsyncFunction]",b6="[object Function]",h6="[object GeneratorFunction]",v6="[object Proxy]";function w6(e){if(!bl(e))return!1;var t=Nt(e);return t==b6||t==h6||t==y6||t==v6}var C6=w6,k6=U["__core-js_shared__"],pn=k6,rl=function(){var e=/[^.]+$/.exec(pn&&pn.keys&&pn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function M6(e){return!!rl&&rl in e}var x6=M6,I6=Function.prototype,A6=I6.toString;function j6(e){if(e!=null){try{return A6.call(e)}catch{}try{return e+""}catch{}}return""}var H=j6,E6=/[\\^$.*+?()[\]{}|]/g,S6=/^\[object .+?Constructor\]$/,L6=Function.prototype,N6=Object.prototype,T6=L6.toString,$6=N6.hasOwnProperty,D6=RegExp("^"+T6.call($6).replace(E6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function O6(e){if(!bl(e)||x6(e))return!1;var t=C6(e)?D6:S6;return t.test(H(e))}var _6=O6;function z6(e,t){return e?.[t]}var P6=z6;function U6(e,t){var n=P6(e,t);return _6(n)?n:void 0}var De=U6,V6=De(U,"WeakMap"),mn=V6;function B6(e,t){return e===t||e!==e&&t!==t}var G6=B6,F6=9007199254740991;function R6(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F6}var q6=R6;var Gk=Object.prototype;var H6="[object Arguments]";function Q6(e){return Cn(e)&&Nt(e)==H6}var nl=Q6,hl=Object.prototype,Y6=hl.hasOwnProperty,Z6=hl.propertyIsEnumerable,Fk=nl(function(){return arguments}())?nl:function(e){return Cn(e)&&Y6.call(e,"callee")&&!Z6.call(e,"callee")};var vl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,il=vl&&typeof module=="object"&&module&&!module.nodeType&&module,W6=il&&il.exports===vl,ol=W6?U.Buffer:void 0,Rk=ol?ol.isBuffer:void 0;var K6="[object Arguments]",J6="[object Array]",X6="[object Boolean]",ev="[object Date]",tv="[object Error]",rv="[object Function]",nv="[object Map]",iv="[object Number]",ov="[object Object]",av="[object RegExp]",lv="[object Set]",sv="[object String]",uv="[object WeakMap]",cv="[object ArrayBuffer]",dv="[object DataView]",gv="[object Float32Array]",pv="[object Float64Array]",fv="[object Int8Array]",mv="[object Int16Array]",yv="[object Int32Array]",bv="[object Uint8Array]",hv="[object Uint8ClampedArray]",vv="[object Uint16Array]",wv="[object Uint32Array]",S={};S[gv]=S[pv]=S[fv]=S[mv]=S[yv]=S[bv]=S[hv]=S[vv]=S[wv]=!0;S[K6]=S[J6]=S[cv]=S[X6]=S[dv]=S[ev]=S[tv]=S[rv]=S[nv]=S[iv]=S[ov]=S[av]=S[lv]=S[sv]=S[uv]=!1;function Cv(e){return Cn(e)&&q6(e.length)&&!!S[Nt(e)]}var kv=Cv;function Mv(e){return function(t){return e(t)}}var xv=Mv,wl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Et=wl&&typeof module=="object"&&module&&!module.nodeType&&module,Iv=Et&&Et.exports===wl,fn=Iv&&ml.process,Av=function(){try{var e=Et&&Et.require&&Et.require("util").types;return e||fn&&fn.binding&&fn.binding("util")}catch{}}(),al=Av,ll=al&&al.isTypedArray,qk=ll?xv(ll):kv;var jv=Object.prototype,Hk=jv.hasOwnProperty;function Ev(e,t){return function(n){return e(t(n))}}var Sv=Ev,Qk=Sv(Object.keys,Object);var Lv=Object.prototype,Yk=Lv.hasOwnProperty;var Nv=De(Object,"create"),St=Nv;function Tv(){this.__data__=St?St(null):{},this.size=0}var $v=Tv;function Dv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ov=Dv,_v="__lodash_hash_undefined__",zv=Object.prototype,Pv=zv.hasOwnProperty;function Uv(e){var t=this.__data__;if(St){var n=t[e];return n===_v?void 0:n}return Pv.call(t,e)?t[e]:void 0}var Vv=Uv,Bv=Object.prototype,Gv=Bv.hasOwnProperty;function Fv(e){var t=this.__data__;return St?t[e]!==void 0:Gv.call(t,e)}var Rv=Fv,qv="__lodash_hash_undefined__";function Hv(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=St&&t===void 0?qv:t,this}var Qv=Hv;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=$v;Oe.prototype.delete=Ov;Oe.prototype.get=Vv;Oe.prototype.has=Rv;Oe.prototype.set=Qv;var sl=Oe;function Yv(){this.__data__=[],this.size=0}var Zv=Yv;function Wv(e,t){for(var n=e.length;n--;)if(G6(e[n][0],t))return n;return-1}var rr=Wv,Kv=Array.prototype,Jv=Kv.splice;function Xv(e){var t=this.__data__,n=rr(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Jv.call(t,n,1),--this.size,!0}var ew=Xv;function tw(e){var t=this.__data__,n=rr(t,e);return n<0?void 0:t[n][1]}var rw=tw;function nw(e){return rr(this.__data__,e)>-1}var iw=nw;function ow(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 aw=ow;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=Zv;_e.prototype.delete=ew;_e.prototype.get=rw;_e.prototype.has=iw;_e.prototype.set=aw;var nr=_e,lw=De(U,"Map"),Lt=lw;function sw(){this.size=0,this.__data__={hash:new sl,map:new(Lt||nr),string:new sl}}var uw=sw;function cw(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dw=cw;function gw(e,t){var n=e.__data__;return dw(t)?n[typeof t=="string"?"string":"hash"]:n.map}var ir=gw;function pw(e){var t=ir(this,e).delete(e);return this.size-=t?1:0,t}var fw=pw;function mw(e){return ir(this,e).get(e)}var yw=mw;function bw(e){return ir(this,e).has(e)}var hw=bw;function vw(e,t){var n=ir(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var ww=vw;function ze(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])}}ze.prototype.clear=uw;ze.prototype.delete=fw;ze.prototype.get=yw;ze.prototype.has=hw;ze.prototype.set=ww;var Cl=ze;function Cw(){this.__data__=new nr,this.size=0}var kw=Cw;function Mw(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var xw=Mw;function Iw(e){return this.__data__.get(e)}var Aw=Iw;function jw(e){return this.__data__.has(e)}var Ew=jw,Sw=200;function Lw(e,t){var n=this.__data__;if(n instanceof nr){var r=n.__data__;if(!Lt||r.length<Sw-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Cl(r)}return n.set(e,t),this.size=n.size,this}var Nw=Lw;function Tt(e){var t=this.__data__=new nr(e);this.size=t.size}Tt.prototype.clear=kw;Tt.prototype.delete=xw;Tt.prototype.get=Aw;Tt.prototype.has=Ew;Tt.prototype.set=Nw;var Tw=Object.prototype,Zk=Tw.propertyIsEnumerable;var $w=De(U,"DataView"),yn=$w,Dw=De(U,"Promise"),bn=Dw,Ow=De(U,"Set"),hn=Ow,ul="[object Map]",_w="[object Object]",cl="[object Promise]",dl="[object Set]",gl="[object WeakMap]",pl="[object DataView]",zw=H(yn),Pw=H(Lt),Uw=H(bn),Vw=H(hn),Bw=H(mn),Te=Nt;(yn&&Te(new yn(new ArrayBuffer(1)))!=pl||Lt&&Te(new Lt)!=ul||bn&&Te(bn.resolve())!=cl||hn&&Te(new hn)!=dl||mn&&Te(new mn)!=gl)&&(Te=function(e){var t=Nt(e),n=t==_w?e.constructor:void 0,r=n?H(n):"";if(r)switch(r){case zw:return pl;case Pw:return ul;case Uw:return cl;case Vw:return dl;case Bw:return gl}return t});var Wk=U.Uint8Array;var Gw="__lodash_hash_undefined__";function Fw(e){return this.__data__.set(e,Gw),this}var Rw=Fw;function qw(e){return this.__data__.has(e)}var Hw=qw;function vn(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Cl;++t<n;)this.add(e[t])}vn.prototype.add=vn.prototype.push=Rw;vn.prototype.has=Hw;var fl=$e?$e.prototype:void 0,Kk=fl?fl.valueOf:void 0;var Qw=Object.prototype,Jk=Qw.hasOwnProperty;var Yw=Object.prototype,Xk=Yw.hasOwnProperty;var 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");var kn=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:s,groups:u,excludeGroups:l,sortingOrder:c,sortKey:d}=t,g=[...this.assets];if(u&&u.length>0&&(g=g.filter(y=>y.groups&&u.some(m=>y.groups?.includes(m)))),l&&l.length>0&&(g=g.filter(y=>!y.groups||!l.some(m=>y.groups?.includes(m)))),i){let y=i.toLowerCase();g=g.filter(m=>{let C=m.label?.[a]?.toLowerCase(),k=m.tags?.[a]||[];return C&&C.includes(y)||k.some(M=>M.toLowerCase().includes(y))})}if(s&&s.length>0){let y=Array.isArray(s)?s:[s];g=g.filter(m=>{let C=m.tags?.[a]||[];return y.some(k=>C.includes(k))})}o&&g.sort((y,m)=>{let C=this.activeAssetIds.has(y.id),k=this.activeAssetIds.has(m.id);return C&&!k?-1:!C&&k?1:0}),d&&d!=="id"?g.sort((y,m)=>{let C=y.meta?.[d],k=m.meta?.[d];return C===void 0?1:k===void 0?-1:typeof C=="string"&&typeof k=="string"?c==="Descending"?k.localeCompare(C):C.localeCompare(k):typeof C=="number"&&typeof k=="number"?c==="Descending"?k-C:C-k:0}):d==="id"&&g.sort((y,m)=>c==="Descending"?m.id.localeCompare(y.id):y.id.localeCompare(m.id));let f=g.length,v=n*r,w=v+r,p=g.slice(v,w).map(y=>({id:y.id,groups:y.groups,meta:y.meta,payload:y.payload,locale:a,label:y.label?.[a],tags:y.tags?.[a],active:this.activeAssetIds.has(y.id)})),b=w<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=Zw(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 kl(e,t,n=[]){return new kn(e,t,n)}function Zw(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 Mn="ly.img.ai.apps";var L=$t("apps"),or=512,ar=128,Ml=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 Ww(t,{isVideoMode:n,baseURL:a,debug:e.debug}),i=await Q(t,o,r.text2text),s=await Q(t,o,r.text2image),u=await Q(t,o,r.image2image),l,c,d,g;n&&(l=await Q(t,o,r.text2video),c=await Q(t,o,r.image2video),d=await Q(t,o,r.text2speech),g=await Q(t,o,r.text2sound),t.addPlugin(Co({text2video:l,image2video:c})),t.addPlugin(da({text2speech:d,text2sound:g}))),i!=null&&t.addPlugin(el({provider:i})),t.addPlugin(Ti({text2image:s,image2image:u})),Jw(t,{text2text:i,text2image:s,image2image:u,text2video:l,image2video:c,text2speech:d,text2sound:g},n),Xw(t)}});async function Q(e,t,n){if(n==null)return;let r=await n({cesdk:e});if(t!=null){let a=async(o,i,s)=>{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(`${L}.isGenerating`,!0),t.setAssetLoading(u,!0),e.engine.asset.assetSourceContentsChanged(L);try{return await s(o,i)}finally{e.engine.asset.assetSourceContentsChanged(L),t.setAssetLoading(u,!1),e.ui.experimental.setGlobalStateValue(`${L}.isGenerating`,!1)}};r.output.middleware=[...r.output.middleware??[],a]}return()=>Promise.resolve(r)}async function Ww(e,t){let{isVideoMode:n,debug:r,baseURL:a}=t;Kw(e);let o;n&&(o=kl(L,e,[{id:"image-generation",label:{en:"Generate Image"},meta:{label:"Generate Image",thumbUri:`${a}GenerateImage.png`,width:or,height:ar}},{id:"video-generation",label:{en:"Generate Video"},meta:{label:"Generate Video",thumbUri:`${a}GenerateVideo.png`,width:or,height:ar}},{id:"audio-generation/sound",label:{en:"Generate Sound"},meta:{label:"Generate Sound",thumbUri:`${a}GenerateSound.png`,width:or,height:ar}},{id:"audio-generation/speech",label:{en:"AI Voice"},meta:{label:"AI Voice",thumbUri:`${a}AIVoice.png`,width:or,height:ar}}]),e.engine.asset.addSource(o),e.ui.registerPanel(L,({builder:s})=>{s.Library(L,{entries:[L],onSelect:async u=>{e.ui.openPanel($t(u.id))}})}),e.ui.addAssetLibraryEntry({id:L,sourceIds:[L],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:s})=>s,cardLabelPosition:()=>"inside"}));let i=`${L}.dock`;return n?(r&&console.log("Registering AI App Dock Button",i),e.ui.registerComponent(i,({builder:s,experimental:u})=>{let l=e.ui.isPanelOpen(L),c=u.global(`${L}.isGenerating`,!1);s.Button(`${L}.dock.button`,{label:"AI",isSelected:l,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(d=>{d.startsWith("ly.img.ai/")&&e.ui.closePanel(d),!l&&d==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(d)}),l?e.ui.closePanel(L):e.ui.openPanel(L)}})})):e.ui.registerComponent(i,({builder:s,experimental:u})=>{let l=$t("image-generation"),c=u.global(`${L}.isGenerating`,!1),d=e.ui.isPanelOpen(l);s.Button(`${L}.dock.button`,{label:"AI",isSelected:d,icon:c.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{d?e.ui.closePanel(l):e.ui.openPanel(l)}})}),{activeAssetSource:o}}function Kw(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:s,icon:u,entries:l}=r;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${a}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${a}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let c=n.scene.getMode(),d=l.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=s;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"),w=u;w==null&&d.length===1&&(w=e.ui.getAssetLibraryEntry(d[0])?.icon),t(i??o,{label:g,icon:w,isDisabled:v,isSelected:f,onClick:()=>{f?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===L||h.startsWith("ly.img.ai/"))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}async function Jw(e,t,n){let r=await t.text2image?.({cesdk:e}),a=await t.image2image?.({cesdk:e}),o=new wn("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 s=await t.text2video?.({cesdk:e}),u=await t.image2video?.({cesdk:e}),l=new wn("ly.img.ai/video-generation.history",e,[s!=null?`${s.id}.history`:void 0,u!=null?`${u?.id}.history`:void 0].filter(Boolean));e.engine.asset.addSource(l);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 Xw(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.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 eC=e=>({name:Mn,version:"0.1.3",...Ml(e)}),CM=eC;export{CM as default};
401
401
  /*! Bundled license information:
402
402
 
403
403
  @imgly/plugin-ai-generation-web/dist/index.mjs: