@imgly/codesign-mcp 0.3.5 → 0.3.6-canary.20260918142011.g0ea31ce

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.
Files changed (73) hide show
  1. package/assets/ai-plugins/apps.mjs +112 -46
  2. package/assets/ai-plugins/image-gateway.mjs +19 -8
  3. package/assets/ai-plugins/text-gateway.mjs +15 -4
  4. package/assets/ai-plugins/version.json +1 -1
  5. package/assets/docs/api/SKILL.md +6 -6
  6. package/assets/docs/api/signatures-extended.d.ts +18 -6
  7. package/assets/docs/api/signatures.d.ts +75 -11
  8. package/assets/docs/guide/SKILL.md +4 -4
  9. package/assets/docs/guide/api/AssetAPI.md +10 -6
  10. package/assets/docs/guide/api/BlockAPI.md +125 -5
  11. package/assets/docs/guide/api/EditorAPI.md +21 -0
  12. package/assets/docs/guide/api/SceneAPI.md +3 -0
  13. package/assets/docs/guide/api/node/classes/assetapi.md +13 -9
  14. package/assets/docs/guide/api/node/classes/blockapi.md +218 -12
  15. package/assets/docs/guide/api/node/classes/editorapi.md +82 -0
  16. package/assets/docs/guide/api/node/classes/engineactions.md +7 -5
  17. package/assets/docs/guide/api/node/classes/sceneapi.md +4 -0
  18. package/assets/docs/guide/api/node/interfaces/configuration.md +1 -1
  19. package/assets/docs/guide/api/node/interfaces/settings.md +10 -0
  20. package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +1 -0
  21. package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +3 -0
  22. package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +1 -0
  23. package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +1 -0
  24. package/assets/docs/guide/api/node/type-aliases/enumvalues.md +1 -0
  25. package/assets/docs/guide/api/node/type-aliases/exportoptions.md +10 -0
  26. package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +17 -0
  27. package/assets/docs/guide/api/node/type-aliases/scenecolorconversionmode.md +18 -0
  28. package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +2 -0
  29. package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +4 -0
  30. package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +1 -0
  31. package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +1 -0
  32. package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +1 -1
  33. package/assets/docs/guide/api/node/variables/design_block_types.md +1 -1
  34. package/assets/docs/guide/api/node/variables/fill_types.md +1 -1
  35. package/assets/docs/guide/api/node/variables/scenecolorconversionmodevalues.md +18 -0
  36. package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +1 -1
  37. package/assets/docs/guide/api/node.md +2 -0
  38. package/assets/docs/guide/api/types.md +1 -1
  39. package/assets/docs/guide/concepts/error-catalog.md +14 -0
  40. package/assets/docs/guide/concepts/exclusion-areas.md +90 -0
  41. package/assets/docs/guide/concepts/import-export.md +1 -1
  42. package/assets/docs/guide/concepts/pages.md +22 -0
  43. package/assets/docs/guide/concepts/scenes.md +1 -0
  44. package/assets/docs/guide/concepts/terminology.md +1 -0
  45. package/assets/docs/guide/concepts.md +1 -0
  46. package/assets/docs/guide/configuration.md +4 -4
  47. package/assets/docs/guide/create-composition/group-and-ungroup.md +2 -2
  48. package/assets/docs/guide/create-composition/position-and-align.md +2 -0
  49. package/assets/docs/guide/export-save-publish/export/to-pdf.md +28 -0
  50. package/assets/docs/guide/export-save-publish/for-printing.md +8 -0
  51. package/assets/docs/guide/fills/overview.md +1 -0
  52. package/assets/docs/guide/import-media/source-sets.md +79 -0
  53. package/assets/docs/guide/licensing.md +6 -0
  54. package/assets/docs/guide/settings.md +11 -1
  55. package/assets/docs/guide/text/edit.md +6 -1
  56. package/assets/docs/guide/text/language-support.md +4 -2
  57. package/assets/docs/guide/text/styling.md +57 -1
  58. package/assets/docs/guide/to-v1-19.md +1 -1
  59. package/assets/docs/guide/{to-v1-82-fonts.md → to-v1-82.md} +10 -10
  60. package/assets/docs/guide/upgrade.md +1 -1
  61. package/dist/assets/inline.generated.d.ts.map +1 -1
  62. package/dist/assets/inline.generated.js +56 -53
  63. package/dist/assets/inline.generated.js.map +1 -1
  64. package/dist/cli/release-flags.generated.d.ts +1 -1
  65. package/dist/cli/release-flags.generated.js +1 -1
  66. package/dist/cli/release-flags.generated.js.map +1 -1
  67. package/dist/cli/trial-license.generated.d.ts +1 -1
  68. package/dist/cli/trial-license.generated.js +1 -1
  69. package/dist/cli/trial-license.generated.js.map +1 -1
  70. package/dist/design/props.generated.d.ts.map +1 -1
  71. package/dist/design/props.generated.js +34 -0
  72. package/dist/design/props.generated.js.map +1 -1
  73. package/package.json +10 -17
@@ -1,7 +1,7 @@
1
- var Xf=typeof global=="object"&&global&&global.Object===Object&&global,_s=Xf,ey=typeof self=="object"&&self&&self.Object===Object&&self,ty=_s||ey||Function("return this")(),K=ty,ry=K.Symbol,He=ry,Ts=Object.prototype,iy=Ts.hasOwnProperty,ny=Ts.toString,mr=He?He.toStringTag:void 0;function oy(e){var t=iy.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=ny.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var ay=oy,ly=Object.prototype,sy=ly.toString;function uy(e){return sy.call(e)}var cy=uy,dy="[object Null]",py="[object Undefined]",hs=He?He.toStringTag:void 0;function gy(e){return e==null?e===void 0?py:dy:hs&&hs in Object(e)?ay(e):cy(e)}var wr=gy;function fy(e){return e!=null&&typeof e=="object"}var Uo=fy,qK=Array.isArray;function yy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ls=yy,my="[object AsyncFunction]",hy="[object Function]",by="[object GeneratorFunction]",vy="[object Proxy]";function wy(e){if(!Ls(e))return!1;var t=wr(e);return t==hy||t==by||t==my||t==vy}var ky=wy,xy=K["__core-js_shared__"],To=xy,bs=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iy(e){return!!bs&&bs in e}var Ay=Iy,Cy=Function.prototype,Sy=Cy.toString;function My(e){if(e!=null){try{return Sy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=My,jy=/[\\^$.*+?()[\]{}|]/g,$y=/^\[object .+?Constructor\]$/,Ey=Function.prototype,_y=Object.prototype,Ty=Ey.toString,Ly=_y.hasOwnProperty,Oy=RegExp("^"+Ty.call(Ly).replace(jy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ny(e){if(!Ls(e)||Ay(e))return!1;var t=ky(e)?Oy:$y;return t.test($e(e))}var Dy=Ny;function Py(e,t){return e?.[t]}var zy=Py;function Uy(e,t){var r=zy(e,t);return Dy(r)?r:void 0}var Ze=Uy,Ry=Ze(K,"WeakMap"),Oo=Ry;function Fy(e,t){return e===t||e!==e&&t!==t}var Vy=Fy,By=9007199254740991;function qy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=By}var Gy=qy;var GK=Object.prototype;var Yy="[object Arguments]";function Hy(e){return Uo(e)&&wr(e)==Yy}var vs=Hy,Os=Object.prototype,Zy=Os.hasOwnProperty,Qy=Os.propertyIsEnumerable,YK=vs(function(){return arguments}())?vs:function(e){return Uo(e)&&Zy.call(e,"callee")&&!Qy.call(e,"callee")};var Ns=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ws=Ns&&typeof module=="object"&&module&&!module.nodeType&&module,Wy=ws&&ws.exports===Ns,ks=Wy?K.Buffer:void 0,HK=ks?ks.isBuffer:void 0;var Ky="[object Arguments]",Jy="[object Array]",Xy="[object Boolean]",em="[object Date]",tm="[object Error]",rm="[object Function]",im="[object Map]",nm="[object Number]",om="[object Object]",am="[object RegExp]",lm="[object Set]",sm="[object String]",um="[object WeakMap]",cm="[object ArrayBuffer]",dm="[object DataView]",pm="[object Float32Array]",gm="[object Float64Array]",fm="[object Int8Array]",ym="[object Int16Array]",mm="[object Int32Array]",hm="[object Uint8Array]",bm="[object Uint8ClampedArray]",vm="[object Uint16Array]",wm="[object Uint32Array]",T={};T[pm]=T[gm]=T[fm]=T[ym]=T[mm]=T[hm]=T[bm]=T[vm]=T[wm]=!0;T[Ky]=T[Jy]=T[cm]=T[Xy]=T[dm]=T[em]=T[tm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=!1;function km(e){return Uo(e)&&Gy(e.length)&&!!T[wr(e)]}var xm=km;function Im(e){return function(t){return e(t)}}var Am=Im,Ds=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Ds&&typeof module=="object"&&module&&!module.nodeType&&module,Cm=hr&&hr.exports===Ds,Lo=Cm&&_s.process,Sm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||Lo&&Lo.binding&&Lo.binding("util")}catch{}}(),xs=Sm,Is=xs&&xs.isTypedArray,ZK=Is?Am(Is):xm;var Mm=Object.prototype,QK=Mm.hasOwnProperty;function jm(e,t){return function(r){return e(t(r))}}var $m=jm,WK=$m(Object.keys,Object);var Em=Object.prototype,KK=Em.hasOwnProperty;var _m=Ze(Object,"create"),br=_m;function Tm(){this.__data__=br?br(null):{},this.size=0}var Lm=Tm;function Om(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Nm=Om,Dm="__lodash_hash_undefined__",Pm=Object.prototype,zm=Pm.hasOwnProperty;function Um(e){var t=this.__data__;if(br){var r=t[e];return r===Dm?void 0:r}return zm.call(t,e)?t[e]:void 0}var Rm=Um,Fm=Object.prototype,Vm=Fm.hasOwnProperty;function Bm(e){var t=this.__data__;return br?t[e]!==void 0:Vm.call(t,e)}var qm=Bm,Gm="__lodash_hash_undefined__";function Ym(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=br&&t===void 0?Gm:t,this}var Hm=Ym;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=Lm;Qe.prototype.delete=Nm;Qe.prototype.get=Rm;Qe.prototype.has=qm;Qe.prototype.set=Hm;var As=Qe;function Zm(){this.__data__=[],this.size=0}var Qm=Zm;function Wm(e,t){for(var r=e.length;r--;)if(Vy(e[r][0],t))return r;return-1}var bn=Wm,Km=Array.prototype,Jm=Km.splice;function Xm(e){var t=this.__data__,r=bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Jm.call(t,r,1),--this.size,!0}var eh=Xm;function th(e){var t=this.__data__,r=bn(t,e);return r<0?void 0:t[r][1]}var rh=th;function ih(e){return bn(this.__data__,e)>-1}var nh=ih;function oh(e,t){var r=this.__data__,i=bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ah=oh;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=Qm;We.prototype.delete=eh;We.prototype.get=rh;We.prototype.has=nh;We.prototype.set=ah;var vn=We,lh=Ze(K,"Map"),vr=lh;function sh(){this.size=0,this.__data__={hash:new As,map:new(vr||vn),string:new As}}var uh=sh;function ch(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dh=ch;function ph(e,t){var r=e.__data__;return dh(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=ph;function gh(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var fh=gh;function yh(e){return wn(this,e).get(e)}var mh=yh;function hh(e){return wn(this,e).has(e)}var bh=hh;function vh(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wh=vh;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=uh;Ke.prototype.delete=fh;Ke.prototype.get=mh;Ke.prototype.has=bh;Ke.prototype.set=wh;var Ps=Ke;function kh(){this.__data__=new vn,this.size=0}var xh=kh;function Ih(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ah=Ih;function Ch(e){return this.__data__.get(e)}var Sh=Ch;function Mh(e){return this.__data__.has(e)}var jh=Mh,$h=200;function Eh(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<$h-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ps(i)}return r.set(e,t),this.size=r.size,this}var _h=Eh;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=xh;kr.prototype.delete=Ah;kr.prototype.get=Sh;kr.prototype.has=jh;kr.prototype.set=_h;var Th=Object.prototype,JK=Th.propertyIsEnumerable;var Lh=Ze(K,"DataView"),No=Lh,Oh=Ze(K,"Promise"),Do=Oh,Nh=Ze(K,"Set"),Po=Nh,Cs="[object Map]",Dh="[object Object]",Ss="[object Promise]",Ms="[object Set]",js="[object WeakMap]",$s="[object DataView]",Ph=$e(No),zh=$e(vr),Uh=$e(Do),Rh=$e(Po),Fh=$e(Oo),Ye=wr;(No&&Ye(new No(new ArrayBuffer(1)))!=$s||vr&&Ye(new vr)!=Cs||Do&&Ye(Do.resolve())!=Ss||Po&&Ye(new Po)!=Ms||Oo&&Ye(new Oo)!=js)&&(Ye=function(e){var t=wr(e),r=t==Dh?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ph:return $s;case zh:return Cs;case Uh:return Ss;case Rh:return Ms;case Fh:return js}return t});var XK=K.Uint8Array;var Vh="__lodash_hash_undefined__";function Bh(e){return this.__data__.set(e,Vh),this}var qh=Bh;function Gh(e){return this.__data__.has(e)}var Yh=Gh;function zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ps;++t<r;)this.add(e[t])}zo.prototype.add=zo.prototype.push=qh;zo.prototype.has=Yh;var Es=He?He.prototype:void 0,eJ=Es?Es.valueOf:void 0;var Hh=Object.prototype,tJ=Hh.hasOwnProperty;var Zh=Object.prototype,rJ=Zh.hasOwnProperty;var iJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),nJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),oJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Qh(e){return e!==void 0}var zs=Qh;var Wh=typeof global=="object"&&global&&global.Object===Object&&global,Xs=Wh,Kh=typeof self=="object"&&self&&self.Object===Object&&self,Jh=Xs||Kh||Function("return this")(),J=Jh,Xh=J.Symbol,Xe=Xh,eu=Object.prototype,eb=eu.hasOwnProperty,tb=eu.toString,xr=Xe?Xe.toStringTag:void 0;function rb(e){var t=eb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=tb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var ib=rb,nb=Object.prototype,ob=nb.toString;function ab(e){return ob.call(e)}var lb=ab,sb="[object Null]",ub="[object Undefined]",Us=Xe?Xe.toStringTag:void 0;function cb(e){return e==null?e===void 0?ub:sb:Us&&Us in Object(e)?ib(e):lb(e)}var Sr=cb;function db(e){return e!=null&&typeof e=="object"}var Zo=db,lJ=Array.isArray;function pb(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var tu=pb,gb="[object AsyncFunction]",fb="[object Function]",yb="[object GeneratorFunction]",mb="[object Proxy]";function hb(e){if(!tu(e))return!1;var t=Sr(e);return t==fb||t==yb||t==gb||t==mb}var bb=hb,vb=J["__core-js_shared__"],Ro=vb,Rs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function wb(e){return!!Rs&&Rs in e}var kb=wb,xb=Function.prototype,Ib=xb.toString;function Ab(e){if(e!=null){try{return Ib.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Ab,Cb=/[\\^$.*+?()[\]{}|]/g,Sb=/^\[object .+?Constructor\]$/,Mb=Function.prototype,jb=Object.prototype,$b=Mb.toString,Eb=jb.hasOwnProperty,_b=RegExp("^"+$b.call(Eb).replace(Cb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tb(e){if(!tu(e)||kb(e))return!1;var t=bb(e)?_b:Sb;return t.test(Ee(e))}var Lb=Tb;function Ob(e,t){return e?.[t]}var Nb=Ob;function Db(e,t){var r=Nb(e,t);return Lb(r)?r:void 0}var et=Db,Pb=et(J,"WeakMap"),Bo=Pb;function zb(e,t){return e===t||e!==e&&t!==t}var Ub=zb,Rb=9007199254740991;function Fb(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Rb}var Vb=Fb,sJ=Object.prototype,Bb="[object Arguments]";function qb(e){return Zo(e)&&Sr(e)==Bb}var Fs=qb,ru=Object.prototype,Gb=ru.hasOwnProperty,Yb=ru.propertyIsEnumerable,uJ=Fs(function(){return arguments}())?Fs:function(e){return Zo(e)&&Gb.call(e,"callee")&&!Yb.call(e,"callee")},iu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vs=iu&&typeof module=="object"&&module&&!module.nodeType&&module,Hb=Vs&&Vs.exports===iu,Bs=Hb?J.Buffer:void 0,cJ=Bs?Bs.isBuffer:void 0,Zb="[object Arguments]",Qb="[object Array]",Wb="[object Boolean]",Kb="[object Date]",Jb="[object Error]",Xb="[object Function]",e0="[object Map]",t0="[object Number]",r0="[object Object]",i0="[object RegExp]",n0="[object Set]",o0="[object String]",a0="[object WeakMap]",l0="[object ArrayBuffer]",s0="[object DataView]",u0="[object Float32Array]",c0="[object Float64Array]",d0="[object Int8Array]",p0="[object Int16Array]",g0="[object Int32Array]",f0="[object Uint8Array]",y0="[object Uint8ClampedArray]",m0="[object Uint16Array]",h0="[object Uint32Array]",L={};L[u0]=L[c0]=L[d0]=L[p0]=L[g0]=L[f0]=L[y0]=L[m0]=L[h0]=!0;L[Zb]=L[Qb]=L[l0]=L[Wb]=L[s0]=L[Kb]=L[Jb]=L[Xb]=L[e0]=L[t0]=L[r0]=L[i0]=L[n0]=L[o0]=L[a0]=!1;function b0(e){return Zo(e)&&Vb(e.length)&&!!L[Sr(e)]}var v0=b0;function w0(e){return function(t){return e(t)}}var k0=w0,nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=nu&&typeof module=="object"&&module&&!module.nodeType&&module,x0=Ir&&Ir.exports===nu,Fo=x0&&Xs.process,I0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Fo&&Fo.binding&&Fo.binding("util")}catch{}}(),qs=I0,Gs=qs&&qs.isTypedArray,dJ=Gs?k0(Gs):v0,A0=Object.prototype,pJ=A0.hasOwnProperty;function C0(e,t){return function(r){return e(t(r))}}var S0=C0,gJ=S0(Object.keys,Object),M0=Object.prototype,fJ=M0.hasOwnProperty,j0=et(Object,"create"),Ar=j0;function $0(){this.__data__=Ar?Ar(null):{},this.size=0}var E0=$0;function _0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var T0=_0,L0="__lodash_hash_undefined__",O0=Object.prototype,N0=O0.hasOwnProperty;function D0(e){var t=this.__data__;if(Ar){var r=t[e];return r===L0?void 0:r}return N0.call(t,e)?t[e]:void 0}var P0=D0,z0=Object.prototype,U0=z0.hasOwnProperty;function R0(e){var t=this.__data__;return Ar?t[e]!==void 0:U0.call(t,e)}var F0=R0,V0="__lodash_hash_undefined__";function B0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ar&&t===void 0?V0:t,this}var q0=B0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=E0;tt.prototype.delete=T0;tt.prototype.get=P0;tt.prototype.has=F0;tt.prototype.set=q0;var Ys=tt;function G0(){this.__data__=[],this.size=0}var Y0=G0;function H0(e,t){for(var r=e.length;r--;)if(Ub(e[r][0],t))return r;return-1}var kn=H0,Z0=Array.prototype,Q0=Z0.splice;function W0(e){var t=this.__data__,r=kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Q0.call(t,r,1),--this.size,!0}var K0=W0;function J0(e){var t=this.__data__,r=kn(t,e);return r<0?void 0:t[r][1]}var X0=J0;function e2(e){return kn(this.__data__,e)>-1}var t2=e2;function r2(e,t){var r=this.__data__,i=kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var i2=r2;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=Y0;rt.prototype.delete=K0;rt.prototype.get=X0;rt.prototype.has=t2;rt.prototype.set=i2;var xn=rt,n2=et(J,"Map"),Cr=n2;function o2(){this.size=0,this.__data__={hash:new Ys,map:new(Cr||xn),string:new Ys}}var a2=o2;function l2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var s2=l2;function u2(e,t){var r=e.__data__;return s2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var In=u2;function c2(e){var t=In(this,e).delete(e);return this.size-=t?1:0,t}var d2=c2;function p2(e){return In(this,e).get(e)}var g2=p2;function f2(e){return In(this,e).has(e)}var y2=f2;function m2(e,t){var r=In(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var h2=m2;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=a2;it.prototype.delete=d2;it.prototype.get=g2;it.prototype.has=y2;it.prototype.set=h2;var ou=it;function b2(){this.__data__=new xn,this.size=0}var v2=b2;function w2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var k2=w2;function x2(e){return this.__data__.get(e)}var I2=x2;function A2(e){return this.__data__.has(e)}var C2=A2,S2=200;function M2(e,t){var r=this.__data__;if(r instanceof xn){var i=r.__data__;if(!Cr||i.length<S2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ou(i)}return r.set(e,t),this.size=r.size,this}var j2=M2;function Mr(e){var t=this.__data__=new xn(e);this.size=t.size}Mr.prototype.clear=v2;Mr.prototype.delete=k2;Mr.prototype.get=I2;Mr.prototype.has=C2;Mr.prototype.set=j2;var $2=Object.prototype,yJ=$2.propertyIsEnumerable,E2=et(J,"DataView"),qo=E2,_2=et(J,"Promise"),Go=_2,T2=et(J,"Set"),Yo=T2,Hs="[object Map]",L2="[object Object]",Zs="[object Promise]",Qs="[object Set]",Ws="[object WeakMap]",Ks="[object DataView]",O2=Ee(qo),N2=Ee(Cr),D2=Ee(Go),P2=Ee(Yo),z2=Ee(Bo),Je=Sr;(qo&&Je(new qo(new ArrayBuffer(1)))!=Ks||Cr&&Je(new Cr)!=Hs||Go&&Je(Go.resolve())!=Zs||Yo&&Je(new Yo)!=Qs||Bo&&Je(new Bo)!=Ws)&&(Je=function(e){var t=Sr(e),r=t==L2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case O2:return Ks;case N2:return Hs;case D2:return Zs;case P2:return Qs;case z2:return Ws}return t});var mJ=J.Uint8Array,U2="__lodash_hash_undefined__";function R2(e){return this.__data__.set(e,U2),this}var F2=R2;function V2(e){return this.__data__.has(e)}var B2=V2;function Ho(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ou;++t<r;)this.add(e[t])}Ho.prototype.add=Ho.prototype.push=F2;Ho.prototype.has=B2;var Js=Xe?Xe.prototype:void 0,hJ=Js?Js.valueOf:void 0,q2=Object.prototype,bJ=q2.hasOwnProperty,G2=Object.prototype,vJ=G2.hasOwnProperty,wJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),kJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function au(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var An=class lu{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new lu),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var Y2="ly.img.ai";function su(e){return`${Y2}.${e}`}function uu(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
1
+ var ty=typeof global=="object"&&global&&global.Object===Object&&global,Ls=ty,ry=typeof self=="object"&&self&&self.Object===Object&&self,iy=Ls||ry||Function("return this")(),K=iy,ny=K.Symbol,Ze=ny,Ts=Object.prototype,oy=Ts.hasOwnProperty,ay=Ts.toString,br=Ze?Ze.toStringTag:void 0;function ly(e){var t=oy.call(e,br),r=e[br];try{e[br]=void 0;var i=!0}catch{}var n=ay.call(e);return i&&(t?e[br]=r:delete e[br]),n}var sy=ly,uy=Object.prototype,cy=uy.toString;function dy(e){return cy.call(e)}var py=dy,gy="[object Null]",fy="[object Undefined]",hs=Ze?Ze.toStringTag:void 0;function yy(e){return e==null?e===void 0?fy:gy:hs&&hs in Object(e)?sy(e):py(e)}var kr=yy;function my(e){return e!=null&&typeof e=="object"}var Ro=my,fJ=Array.isArray;function by(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Os=by,hy="[object AsyncFunction]",vy="[object Function]",wy="[object GeneratorFunction]",ky="[object Proxy]";function xy(e){if(!Os(e))return!1;var t=kr(e);return t==vy||t==wy||t==hy||t==ky}var Iy=xy,Cy=K["__core-js_shared__"],To=Cy,vs=function(){var e=/[^.]+$/.exec(To&&To.keys&&To.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ay(e){return!!vs&&vs in e}var Sy=Ay,My=Function.prototype,jy=My.toString;function $y(e){if(e!=null){try{return jy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=$y,_y=/[\\^$.*+?()[\]{}|]/g,Ey=/^\[object .+?Constructor\]$/,Ly=Function.prototype,Ty=Object.prototype,Oy=Ly.toString,Ny=Ty.hasOwnProperty,Dy=RegExp("^"+Oy.call(Ny).replace(_y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Py(e){if(!Os(e)||Sy(e))return!1;var t=Iy(e)?Dy:Ey;return t.test($e(e))}var zy=Py;function Uy(e,t){return e?.[t]}var Ry=Uy;function Fy(e,t){var r=Ry(e,t);return zy(r)?r:void 0}var Qe=Fy,Vy=Qe(K,"WeakMap"),No=Vy;function By(e,t){return e===t||e!==e&&t!==t}var qy=By,Gy=9007199254740991;function Hy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gy}var Yy=Hy;var yJ=Object.prototype;var Zy="[object Arguments]";function Qy(e){return Ro(e)&&kr(e)==Zy}var ws=Qy,Ns=Object.prototype,Wy=Ns.hasOwnProperty,Ky=Ns.propertyIsEnumerable,mJ=ws(function(){return arguments}())?ws:function(e){return Ro(e)&&Wy.call(e,"callee")&&!Ky.call(e,"callee")};var Ds=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ks=Ds&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=ks&&ks.exports===Ds,xs=Jy?K.Buffer:void 0,bJ=xs?xs.isBuffer:void 0;var Xy="[object Arguments]",em="[object Array]",tm="[object Boolean]",rm="[object Date]",im="[object Error]",nm="[object Function]",om="[object Map]",am="[object Number]",lm="[object Object]",sm="[object RegExp]",um="[object Set]",cm="[object String]",dm="[object WeakMap]",pm="[object ArrayBuffer]",gm="[object DataView]",fm="[object Float32Array]",ym="[object Float64Array]",mm="[object Int8Array]",bm="[object Int16Array]",hm="[object Int32Array]",vm="[object Uint8Array]",wm="[object Uint8ClampedArray]",km="[object Uint16Array]",xm="[object Uint32Array]",T={};T[fm]=T[ym]=T[mm]=T[bm]=T[hm]=T[vm]=T[wm]=T[km]=T[xm]=!0;T[Xy]=T[em]=T[pm]=T[tm]=T[gm]=T[rm]=T[im]=T[nm]=T[om]=T[am]=T[lm]=T[sm]=T[um]=T[cm]=T[dm]=!1;function Im(e){return Ro(e)&&Yy(e.length)&&!!T[kr(e)]}var Cm=Im;function Am(e){return function(t){return e(t)}}var Sm=Am,Ps=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hr=Ps&&typeof module=="object"&&module&&!module.nodeType&&module,Mm=hr&&hr.exports===Ps,Oo=Mm&&Ls.process,jm=function(){try{var e=hr&&hr.require&&hr.require("util").types;return e||Oo&&Oo.binding&&Oo.binding("util")}catch{}}(),Is=jm,Cs=Is&&Is.isTypedArray,hJ=Cs?Sm(Cs):Cm;var $m=Object.prototype,vJ=$m.hasOwnProperty;function _m(e,t){return function(r){return e(t(r))}}var Em=_m,wJ=Em(Object.keys,Object);var Lm=Object.prototype,kJ=Lm.hasOwnProperty;var Tm=Qe(Object,"create"),vr=Tm;function Om(){this.__data__=vr?vr(null):{},this.size=0}var Nm=Om;function Dm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Pm=Dm,zm="__lodash_hash_undefined__",Um=Object.prototype,Rm=Um.hasOwnProperty;function Fm(e){var t=this.__data__;if(vr){var r=t[e];return r===zm?void 0:r}return Rm.call(t,e)?t[e]:void 0}var Vm=Fm,Bm=Object.prototype,qm=Bm.hasOwnProperty;function Gm(e){var t=this.__data__;return vr?t[e]!==void 0:qm.call(t,e)}var Hm=Gm,Ym="__lodash_hash_undefined__";function Zm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vr&&t===void 0?Ym:t,this}var Qm=Zm;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=Nm;We.prototype.delete=Pm;We.prototype.get=Vm;We.prototype.has=Hm;We.prototype.set=Qm;var As=We;function Wm(){this.__data__=[],this.size=0}var Km=Wm;function Jm(e,t){for(var r=e.length;r--;)if(qy(e[r][0],t))return r;return-1}var gn=Jm,Xm=Array.prototype,eb=Xm.splice;function tb(e){var t=this.__data__,r=gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eb.call(t,r,1),--this.size,!0}var rb=tb;function ib(e){var t=this.__data__,r=gn(t,e);return r<0?void 0:t[r][1]}var nb=ib;function ob(e){return gn(this.__data__,e)>-1}var ab=ob;function lb(e,t){var r=this.__data__,i=gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sb=lb;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=Km;Ke.prototype.delete=rb;Ke.prototype.get=nb;Ke.prototype.has=ab;Ke.prototype.set=sb;var fn=Ke,ub=Qe(K,"Map"),wr=ub;function cb(){this.size=0,this.__data__={hash:new As,map:new(wr||fn),string:new As}}var db=cb;function pb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gb=pb;function fb(e,t){var r=e.__data__;return gb(t)?r[typeof t=="string"?"string":"hash"]:r.map}var yn=fb;function yb(e){var t=yn(this,e).delete(e);return this.size-=t?1:0,t}var mb=yb;function bb(e){return yn(this,e).get(e)}var hb=bb;function vb(e){return yn(this,e).has(e)}var wb=vb;function kb(e,t){var r=yn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xb=kb;function Je(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Je.prototype.clear=db;Je.prototype.delete=mb;Je.prototype.get=hb;Je.prototype.has=wb;Je.prototype.set=xb;var zs=Je;function Ib(){this.__data__=new fn,this.size=0}var Cb=Ib;function Ab(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Sb=Ab;function Mb(e){return this.__data__.get(e)}var jb=Mb;function $b(e){return this.__data__.has(e)}var _b=$b,Eb=200;function Lb(e,t){var r=this.__data__;if(r instanceof fn){var i=r.__data__;if(!wr||i.length<Eb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zs(i)}return r.set(e,t),this.size=r.size,this}var Tb=Lb;function xr(e){var t=this.__data__=new fn(e);this.size=t.size}xr.prototype.clear=Cb;xr.prototype.delete=Sb;xr.prototype.get=jb;xr.prototype.has=_b;xr.prototype.set=Tb;var Ob=Object.prototype,xJ=Ob.propertyIsEnumerable;var Nb=Qe(K,"DataView"),Do=Nb,Db=Qe(K,"Promise"),Po=Db,Pb=Qe(K,"Set"),zo=Pb,Ss="[object Map]",zb="[object Object]",Ms="[object Promise]",js="[object Set]",$s="[object WeakMap]",_s="[object DataView]",Ub=$e(Do),Rb=$e(wr),Fb=$e(Po),Vb=$e(zo),Bb=$e(No),Ye=kr;(Do&&Ye(new Do(new ArrayBuffer(1)))!=_s||wr&&Ye(new wr)!=Ss||Po&&Ye(Po.resolve())!=Ms||zo&&Ye(new zo)!=js||No&&Ye(new No)!=$s)&&(Ye=function(e){var t=kr(e),r=t==zb?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Ub:return _s;case Rb:return Ss;case Fb:return Ms;case Vb:return js;case Bb:return $s}return t});var IJ=K.Uint8Array;var qb="__lodash_hash_undefined__";function Gb(e){return this.__data__.set(e,qb),this}var Hb=Gb;function Yb(e){return this.__data__.has(e)}var Zb=Yb;function Uo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zs;++t<r;)this.add(e[t])}Uo.prototype.add=Uo.prototype.push=Hb;Uo.prototype.has=Zb;var Es=Ze?Ze.prototype:void 0,CJ=Es?Es.valueOf:void 0;var Qb=Object.prototype,AJ=Qb.hasOwnProperty;var Wb=Object.prototype,SJ=Wb.hasOwnProperty;var MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Kb(e){return e!==void 0}var Us=Kb;var Jb=typeof global=="object"&&global&&global.Object===Object&&global,eu=Jb,Xb=typeof self=="object"&&self&&self.Object===Object&&self,eh=eu||Xb||Function("return this")(),J=eh,th=J.Symbol,et=th,tu=Object.prototype,rh=tu.hasOwnProperty,ih=tu.toString,Ir=et?et.toStringTag:void 0;function nh(e){var t=rh.call(e,Ir),r=e[Ir];try{e[Ir]=void 0;var i=!0}catch{}var n=ih.call(e);return i&&(t?e[Ir]=r:delete e[Ir]),n}var oh=nh,ah=Object.prototype,lh=ah.toString;function sh(e){return lh.call(e)}var uh=sh,ch="[object Null]",dh="[object Undefined]",Rs=et?et.toStringTag:void 0;function ph(e){return e==null?e===void 0?dh:ch:Rs&&Rs in Object(e)?oh(e):uh(e)}var Mr=ph;function gh(e){return e!=null&&typeof e=="object"}var Qo=gh,EJ=Array.isArray;function fh(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ru=fh,yh="[object AsyncFunction]",mh="[object Function]",bh="[object GeneratorFunction]",hh="[object Proxy]";function vh(e){if(!ru(e))return!1;var t=Mr(e);return t==mh||t==bh||t==yh||t==hh}var wh=vh,kh=J["__core-js_shared__"],Fo=kh,Fs=function(){var e=/[^.]+$/.exec(Fo&&Fo.keys&&Fo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function xh(e){return!!Fs&&Fs in e}var Ih=xh,Ch=Function.prototype,Ah=Ch.toString;function Sh(e){if(e!=null){try{return Ah.call(e)}catch{}try{return e+""}catch{}}return""}var _e=Sh,Mh=/[\\^$.*+?()[\]{}|]/g,jh=/^\[object .+?Constructor\]$/,$h=Function.prototype,_h=Object.prototype,Eh=$h.toString,Lh=_h.hasOwnProperty,Th=RegExp("^"+Eh.call(Lh).replace(Mh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oh(e){if(!ru(e)||Ih(e))return!1;var t=wh(e)?Th:jh;return t.test(_e(e))}var Nh=Oh;function Dh(e,t){return e?.[t]}var Ph=Dh;function zh(e,t){var r=Ph(e,t);return Nh(r)?r:void 0}var tt=zh,Uh=tt(J,"WeakMap"),qo=Uh;function Rh(e,t){return e===t||e!==e&&t!==t}var Fh=Rh,Vh=9007199254740991;function Bh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vh}var qh=Bh,LJ=Object.prototype,Gh="[object Arguments]";function Hh(e){return Qo(e)&&Mr(e)==Gh}var Vs=Hh,iu=Object.prototype,Yh=iu.hasOwnProperty,Zh=iu.propertyIsEnumerable,TJ=Vs(function(){return arguments}())?Vs:function(e){return Qo(e)&&Yh.call(e,"callee")&&!Zh.call(e,"callee")},nu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bs=nu&&typeof module=="object"&&module&&!module.nodeType&&module,Qh=Bs&&Bs.exports===nu,qs=Qh?J.Buffer:void 0,OJ=qs?qs.isBuffer:void 0,Wh="[object Arguments]",Kh="[object Array]",Jh="[object Boolean]",Xh="[object Date]",e0="[object Error]",t0="[object Function]",r0="[object Map]",i0="[object Number]",n0="[object Object]",o0="[object RegExp]",a0="[object Set]",l0="[object String]",s0="[object WeakMap]",u0="[object ArrayBuffer]",c0="[object DataView]",d0="[object Float32Array]",p0="[object Float64Array]",g0="[object Int8Array]",f0="[object Int16Array]",y0="[object Int32Array]",m0="[object Uint8Array]",b0="[object Uint8ClampedArray]",h0="[object Uint16Array]",v0="[object Uint32Array]",O={};O[d0]=O[p0]=O[g0]=O[f0]=O[y0]=O[m0]=O[b0]=O[h0]=O[v0]=!0;O[Wh]=O[Kh]=O[u0]=O[Jh]=O[c0]=O[Xh]=O[e0]=O[t0]=O[r0]=O[i0]=O[n0]=O[o0]=O[a0]=O[l0]=O[s0]=!1;function w0(e){return Qo(e)&&qh(e.length)&&!!O[Mr(e)]}var k0=w0;function x0(e){return function(t){return e(t)}}var I0=x0,ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Cr=ou&&typeof module=="object"&&module&&!module.nodeType&&module,C0=Cr&&Cr.exports===ou,Vo=C0&&eu.process,A0=function(){try{var e=Cr&&Cr.require&&Cr.require("util").types;return e||Vo&&Vo.binding&&Vo.binding("util")}catch{}}(),Gs=A0,Hs=Gs&&Gs.isTypedArray,NJ=Hs?I0(Hs):k0,S0=Object.prototype,DJ=S0.hasOwnProperty;function M0(e,t){return function(r){return e(t(r))}}var j0=M0,PJ=j0(Object.keys,Object),$0=Object.prototype,zJ=$0.hasOwnProperty,_0=tt(Object,"create"),Ar=_0;function E0(){this.__data__=Ar?Ar(null):{},this.size=0}var L0=E0;function T0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O0=T0,N0="__lodash_hash_undefined__",D0=Object.prototype,P0=D0.hasOwnProperty;function z0(e){var t=this.__data__;if(Ar){var r=t[e];return r===N0?void 0:r}return P0.call(t,e)?t[e]:void 0}var U0=z0,R0=Object.prototype,F0=R0.hasOwnProperty;function V0(e){var t=this.__data__;return Ar?t[e]!==void 0:F0.call(t,e)}var B0=V0,q0="__lodash_hash_undefined__";function G0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ar&&t===void 0?q0:t,this}var H0=G0;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=L0;rt.prototype.delete=O0;rt.prototype.get=U0;rt.prototype.has=B0;rt.prototype.set=H0;var Ys=rt;function Y0(){this.__data__=[],this.size=0}var Z0=Y0;function Q0(e,t){for(var r=e.length;r--;)if(Fh(e[r][0],t))return r;return-1}var mn=Q0,W0=Array.prototype,K0=W0.splice;function J0(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():K0.call(t,r,1),--this.size,!0}var X0=J0;function e2(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var t2=e2;function r2(e){return mn(this.__data__,e)>-1}var i2=r2;function n2(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var o2=n2;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=Z0;it.prototype.delete=X0;it.prototype.get=t2;it.prototype.has=i2;it.prototype.set=o2;var bn=it,a2=tt(J,"Map"),Sr=a2;function l2(){this.size=0,this.__data__={hash:new Ys,map:new(Sr||bn),string:new Ys}}var s2=l2;function u2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var c2=u2;function d2(e,t){var r=e.__data__;return c2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=d2;function p2(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var g2=p2;function f2(e){return hn(this,e).get(e)}var y2=f2;function m2(e){return hn(this,e).has(e)}var b2=m2;function h2(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var v2=h2;function nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}nt.prototype.clear=s2;nt.prototype.delete=g2;nt.prototype.get=y2;nt.prototype.has=b2;nt.prototype.set=v2;var au=nt;function w2(){this.__data__=new bn,this.size=0}var k2=w2;function x2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var I2=x2;function C2(e){return this.__data__.get(e)}var A2=C2;function S2(e){return this.__data__.has(e)}var M2=S2,j2=200;function $2(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!Sr||i.length<j2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new au(i)}return r.set(e,t),this.size=r.size,this}var _2=$2;function jr(e){var t=this.__data__=new bn(e);this.size=t.size}jr.prototype.clear=k2;jr.prototype.delete=I2;jr.prototype.get=A2;jr.prototype.has=M2;jr.prototype.set=_2;var E2=Object.prototype,UJ=E2.propertyIsEnumerable,L2=tt(J,"DataView"),Go=L2,T2=tt(J,"Promise"),Ho=T2,O2=tt(J,"Set"),Yo=O2,Zs="[object Map]",N2="[object Object]",Qs="[object Promise]",Ws="[object Set]",Ks="[object WeakMap]",Js="[object DataView]",D2=_e(Go),P2=_e(Sr),z2=_e(Ho),U2=_e(Yo),R2=_e(qo),Xe=Mr;(Go&&Xe(new Go(new ArrayBuffer(1)))!=Js||Sr&&Xe(new Sr)!=Zs||Ho&&Xe(Ho.resolve())!=Qs||Yo&&Xe(new Yo)!=Ws||qo&&Xe(new qo)!=Ks)&&(Xe=function(e){var t=Mr(e),r=t==N2?e.constructor:void 0,i=r?_e(r):"";if(i)switch(i){case D2:return Js;case P2:return Zs;case z2:return Qs;case U2:return Ws;case R2:return Ks}return t});var RJ=J.Uint8Array,F2="__lodash_hash_undefined__";function V2(e){return this.__data__.set(e,F2),this}var B2=V2;function q2(e){return this.__data__.has(e)}var G2=q2;function Zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new au;++t<r;)this.add(e[t])}Zo.prototype.add=Zo.prototype.push=B2;Zo.prototype.has=G2;var Xs=et?et.prototype:void 0,FJ=Xs?Xs.valueOf:void 0,H2=Object.prototype,VJ=H2.hasOwnProperty,Y2=Object.prototype,BJ=Y2.hasOwnProperty,qJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),GJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),HJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lu(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var vn=class su{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new su),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var Z2="ly.img.ai";function uu(e){return`${Z2}.${e}`}function cu(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
2
2
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
3
3
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
4
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Vo="@imgly/plugin-ai-generation",IJ=`
4
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Bo="@imgly/plugin-ai-generation",YJ=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -19,7 +19,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
19
19
  fill="none"
20
20
  xmlns="http://www.w3.org/2000/svg"
21
21
  viewBox="0 0 24 24"
22
- id="${Vo}/image"
22
+ id="${Bo}/image"
23
23
  >
24
24
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
25
25
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -31,7 +31,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
31
31
  fill="none"
32
32
  xmlns="http://www.w3.org/2000/svg"
33
33
  viewBox="0 0 24 24"
34
- id="${Vo}/video"
34
+ id="${Bo}/video"
35
35
  >
36
36
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
37
37
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -42,11 +42,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
42
42
  fill="none"
43
43
  xmlns="http://www.w3.org/2000/svg"
44
44
  viewBox="0 0 24 24"
45
- id="${Vo}/audio"
45
+ id="${Bo}/audio"
46
46
  >
47
47
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
48
48
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
49
49
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
50
+ </symbol>
51
+ <symbol
52
+ fill="none"
53
+ xmlns="http://www.w3.org/2000/svg"
54
+ viewBox="0 0 24 24"
55
+ id="@imgly/ImageAdd"
56
+ >
57
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
58
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
59
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
60
+
50
61
  </symbol>
51
62
  <symbol
52
63
  fill="none"
@@ -62,10 +73,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
62
73
 
63
74
  </symbol>
64
75
  </svg>
65
- `;var AJ=5*60*1e3;var cu={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var Z2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var Q2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},W2=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)}},rc=W2,K2=typeof global=="object"&&global&&global.Object===Object&&global,ic=K2,J2=typeof self=="object"&&self&&self.Object===Object&&self,X2=ic||J2||Function("return this")(),X=X2,e4=X.Symbol,lt=e4,nc=Object.prototype,t4=nc.hasOwnProperty,r4=nc.toString,jr=lt?lt.toStringTag:void 0;function i4(e){var t=t4.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=r4.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var n4=i4,o4=Object.prototype,a4=o4.toString;function l4(e){return a4.call(e)}var s4=l4,u4="[object Null]",c4="[object Undefined]",du=lt?lt.toStringTag:void 0;function d4(e){return e==null?e===void 0?c4:u4:du&&du in Object(e)?n4(e):s4(e)}var Br=d4;function p4(e){return e!=null&&typeof e=="object"}var ha=p4,MJ=Array.isArray;function g4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var oc=g4,f4="[object AsyncFunction]",y4="[object Function]",m4="[object GeneratorFunction]",h4="[object Proxy]";function b4(e){if(!oc(e))return!1;var t=Br(e);return t==y4||t==m4||t==f4||t==h4}var v4=b4,w4=X["__core-js_shared__"],Qo=w4,pu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function k4(e){return!!pu&&pu in e}var x4=k4,I4=Function.prototype,A4=I4.toString;function C4(e){if(e!=null){try{return A4.call(e)}catch{}try{return e+""}catch{}}return""}var Te=C4,S4=/[\\^$.*+?()[\]{}|]/g,M4=/^\[object .+?Constructor\]$/,j4=Function.prototype,$4=Object.prototype,E4=j4.toString,_4=$4.hasOwnProperty,T4=RegExp("^"+E4.call(_4).replace(S4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function L4(e){if(!oc(e)||x4(e))return!1;var t=v4(e)?T4:M4;return t.test(Te(e))}var O4=L4;function N4(e,t){return e?.[t]}var D4=N4;function P4(e,t){var r=D4(e,t);return O4(r)?r:void 0}var ut=P4,z4=ut(X,"WeakMap"),na=z4;function U4(e,t){return e===t||e!==e&&t!==t}var R4=U4,F4=9007199254740991;function V4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=F4}var B4=V4,jJ=Object.prototype,q4="[object Arguments]";function G4(e){return ha(e)&&Br(e)==q4}var gu=G4,ac=Object.prototype,Y4=ac.hasOwnProperty,H4=ac.propertyIsEnumerable,$J=gu(function(){return arguments}())?gu:function(e){return ha(e)&&Y4.call(e,"callee")&&!H4.call(e,"callee")},lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fu=lc&&typeof module=="object"&&module&&!module.nodeType&&module,Z4=fu&&fu.exports===lc,yu=Z4?X.Buffer:void 0,EJ=yu?yu.isBuffer:void 0,Q4="[object Arguments]",W4="[object Array]",K4="[object Boolean]",J4="[object Date]",X4="[object Error]",e5="[object Function]",t5="[object Map]",r5="[object Number]",i5="[object Object]",n5="[object RegExp]",o5="[object Set]",a5="[object String]",l5="[object WeakMap]",s5="[object ArrayBuffer]",u5="[object DataView]",c5="[object Float32Array]",d5="[object Float64Array]",p5="[object Int8Array]",g5="[object Int16Array]",f5="[object Int32Array]",y5="[object Uint8Array]",m5="[object Uint8ClampedArray]",h5="[object Uint16Array]",b5="[object Uint32Array]",O={};O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=O[h5]=O[b5]=!0;O[Q4]=O[W4]=O[s5]=O[K4]=O[u5]=O[J4]=O[X4]=O[e5]=O[t5]=O[r5]=O[i5]=O[n5]=O[o5]=O[a5]=O[l5]=!1;function v5(e){return ha(e)&&B4(e.length)&&!!O[Br(e)]}var w5=v5;function k5(e){return function(t){return e(t)}}var x5=k5,sc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=sc&&typeof module=="object"&&module&&!module.nodeType&&module,I5=Dr&&Dr.exports===sc,Wo=I5&&ic.process,A5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),mu=A5,hu=mu&&mu.isTypedArray,_J=hu?x5(hu):w5,C5=Object.prototype,TJ=C5.hasOwnProperty;function S5(e,t){return function(r){return e(t(r))}}var M5=S5,LJ=M5(Object.keys,Object),j5=Object.prototype,OJ=j5.hasOwnProperty,$5=ut(Object,"create"),zr=$5;function E5(){this.__data__=zr?zr(null):{},this.size=0}var _5=E5;function T5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var L5=T5,O5="__lodash_hash_undefined__",N5=Object.prototype,D5=N5.hasOwnProperty;function P5(e){var t=this.__data__;if(zr){var r=t[e];return r===O5?void 0:r}return D5.call(t,e)?t[e]:void 0}var z5=P5,U5=Object.prototype,R5=U5.hasOwnProperty;function F5(e){var t=this.__data__;return zr?t[e]!==void 0:R5.call(t,e)}var V5=F5,B5="__lodash_hash_undefined__";function q5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?B5:t,this}var G5=q5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=_5;ct.prototype.delete=L5;ct.prototype.get=z5;ct.prototype.has=V5;ct.prototype.set=G5;var bu=ct;function Y5(){this.__data__=[],this.size=0}var H5=Y5;function Z5(e,t){for(var r=e.length;r--;)if(R4(e[r][0],t))return r;return-1}var Ln=Z5,Q5=Array.prototype,W5=Q5.splice;function K5(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():W5.call(t,r,1),--this.size,!0}var J5=K5;function X5(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var ev=X5;function tv(e){return Ln(this.__data__,e)>-1}var rv=tv;function iv(e,t){var r=this.__data__,i=Ln(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var nv=iv;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=H5;dt.prototype.delete=J5;dt.prototype.get=ev;dt.prototype.has=rv;dt.prototype.set=nv;var On=dt,ov=ut(X,"Map"),Ur=ov;function av(){this.size=0,this.__data__={hash:new bu,map:new(Ur||On),string:new bu}}var lv=av;function sv(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var uv=sv;function cv(e,t){var r=e.__data__;return uv(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=cv;function dv(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var pv=dv;function gv(e){return Nn(this,e).get(e)}var fv=gv;function yv(e){return Nn(this,e).has(e)}var mv=yv;function hv(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var bv=hv;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=lv;pt.prototype.delete=pv;pt.prototype.get=fv;pt.prototype.has=mv;pt.prototype.set=bv;var uc=pt;function vv(){this.__data__=new On,this.size=0}var wv=vv;function kv(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xv=kv;function Iv(e){return this.__data__.get(e)}var Av=Iv;function Cv(e){return this.__data__.has(e)}var Sv=Cv,Mv=200;function jv(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<Mv-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new uc(i)}return r.set(e,t),this.size=r.size,this}var $v=jv;function qr(e){var t=this.__data__=new On(e);this.size=t.size}qr.prototype.clear=wv;qr.prototype.delete=xv;qr.prototype.get=Av;qr.prototype.has=Sv;qr.prototype.set=$v;var Ev=Object.prototype,NJ=Ev.propertyIsEnumerable,_v=ut(X,"DataView"),oa=_v,Tv=ut(X,"Promise"),aa=Tv,Lv=ut(X,"Set"),la=Lv,vu="[object Map]",Ov="[object Object]",wu="[object Promise]",ku="[object Set]",xu="[object WeakMap]",Iu="[object DataView]",Nv=Te(oa),Dv=Te(Ur),Pv=Te(aa),zv=Te(la),Uv=Te(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=Iu||Ur&&nt(new Ur)!=vu||aa&&nt(aa.resolve())!=wu||la&&nt(new la)!=ku||na&&nt(new na)!=xu)&&(nt=function(e){var t=Br(e),r=t==Ov?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case Nv:return Iu;case Dv:return vu;case Pv:return wu;case zv:return ku;case Uv:return xu}return t});var DJ=X.Uint8Array,Rv="__lodash_hash_undefined__";function Fv(e){return this.__data__.set(e,Rv),this}var Vv=Fv;function Bv(e){return this.__data__.has(e)}var qv=Bv;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new uc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=Vv;sa.prototype.has=qv;var Au=lt?lt.prototype:void 0,PJ=Au?Au.valueOf:void 0,Gv=Object.prototype,zJ=Gv.hasOwnProperty,Yv=Object.prototype,UJ=Yv.hasOwnProperty,RJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),FJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),VJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function cc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ua(e,t){let r=await cc(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Hv(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return cc(i,t)}function Zv(e){return e!==void 0}var Dn=Zv;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Yr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ba=class dc{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new dc),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},pc=class gc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new gc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Qv(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Wv({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Kv=Wv,Ko="ly.img.ai.temp";async function Jv(e,t){return e.engine.asset.findAllSources().includes(Ko)||e.engine.asset.addLocalSource(Ko),e.engine.asset.apply(Ko,t)}function Xv(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function fc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function e9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function t9(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 va(e){return e instanceof Error&&e.name==="AbortError"}function r9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function i9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
76
+ `;var ZJ=5*60*1e3;var du={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};function W2(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var me=W2,K2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{lt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),lt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function lt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=lt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=lt(n,t,a)}return e}var J2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},X2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},nc=X2,e4=typeof global=="object"&&global&&global.Object===Object&&global,oc=e4,t4=typeof self=="object"&&self&&self.Object===Object&&self,r4=oc||t4||Function("return this")(),X=r4,i4=X.Symbol,st=i4,ac=Object.prototype,n4=ac.hasOwnProperty,o4=ac.toString,$r=st?st.toStringTag:void 0;function a4(e){var t=n4.call(e,$r),r=e[$r];try{e[$r]=void 0;var i=!0}catch{}var n=o4.call(e);return i&&(t?e[$r]=r:delete e[$r]),n}var l4=a4,s4=Object.prototype,u4=s4.toString;function c4(e){return u4.call(e)}var d4=c4,p4="[object Null]",g4="[object Undefined]",pu=st?st.toStringTag:void 0;function f4(e){return e==null?e===void 0?g4:p4:pu&&pu in Object(e)?l4(e):d4(e)}var Br=f4;function y4(e){return e!=null&&typeof e=="object"}var ha=y4,KJ=Array.isArray;function m4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var lc=m4,b4="[object AsyncFunction]",h4="[object Function]",v4="[object GeneratorFunction]",w4="[object Proxy]";function k4(e){if(!lc(e))return!1;var t=Br(e);return t==h4||t==v4||t==b4||t==w4}var x4=k4,I4=X["__core-js_shared__"],Wo=I4,gu=function(){var e=/[^.]+$/.exec(Wo&&Wo.keys&&Wo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function C4(e){return!!gu&&gu in e}var A4=C4,S4=Function.prototype,M4=S4.toString;function j4(e){if(e!=null){try{return M4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=j4,$4=/[\\^$.*+?()[\]{}|]/g,_4=/^\[object .+?Constructor\]$/,E4=Function.prototype,L4=Object.prototype,T4=E4.toString,O4=L4.hasOwnProperty,N4=RegExp("^"+T4.call(O4).replace($4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function D4(e){if(!lc(e)||A4(e))return!1;var t=x4(e)?N4:_4;return t.test(Le(e))}var P4=D4;function z4(e,t){return e?.[t]}var U4=z4;function R4(e,t){var r=U4(e,t);return P4(r)?r:void 0}var ct=R4,F4=ct(X,"WeakMap"),oa=F4;function V4(e,t){return e===t||e!==e&&t!==t}var B4=V4,q4=9007199254740991;function G4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=q4}var H4=G4,JJ=Object.prototype,Y4="[object Arguments]";function Z4(e){return ha(e)&&Br(e)==Y4}var fu=Z4,sc=Object.prototype,Q4=sc.hasOwnProperty,W4=sc.propertyIsEnumerable,XJ=fu(function(){return arguments}())?fu:function(e){return ha(e)&&Q4.call(e,"callee")&&!W4.call(e,"callee")},uc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yu=uc&&typeof module=="object"&&module&&!module.nodeType&&module,K4=yu&&yu.exports===uc,mu=K4?X.Buffer:void 0,eX=mu?mu.isBuffer:void 0,J4="[object Arguments]",X4="[object Array]",e5="[object Boolean]",t5="[object Date]",r5="[object Error]",i5="[object Function]",n5="[object Map]",o5="[object Number]",a5="[object Object]",l5="[object RegExp]",s5="[object Set]",u5="[object String]",c5="[object WeakMap]",d5="[object ArrayBuffer]",p5="[object DataView]",g5="[object Float32Array]",f5="[object Float64Array]",y5="[object Int8Array]",m5="[object Int16Array]",b5="[object Int32Array]",h5="[object Uint8Array]",v5="[object Uint8ClampedArray]",w5="[object Uint16Array]",k5="[object Uint32Array]",N={};N[g5]=N[f5]=N[y5]=N[m5]=N[b5]=N[h5]=N[v5]=N[w5]=N[k5]=!0;N[J4]=N[X4]=N[d5]=N[e5]=N[p5]=N[t5]=N[r5]=N[i5]=N[n5]=N[o5]=N[a5]=N[l5]=N[s5]=N[u5]=N[c5]=!1;function x5(e){return ha(e)&&H4(e.length)&&!!N[Br(e)]}var I5=x5;function C5(e){return function(t){return e(t)}}var A5=C5,cc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=cc&&typeof module=="object"&&module&&!module.nodeType&&module,S5=Dr&&Dr.exports===cc,Ko=S5&&oc.process,M5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Ko&&Ko.binding&&Ko.binding("util")}catch{}}(),bu=M5,hu=bu&&bu.isTypedArray,tX=hu?A5(hu):I5,j5=Object.prototype,rX=j5.hasOwnProperty;function $5(e,t){return function(r){return e(t(r))}}var _5=$5,iX=_5(Object.keys,Object),E5=Object.prototype,nX=E5.hasOwnProperty,L5=ct(Object,"create"),zr=L5;function T5(){this.__data__=zr?zr(null):{},this.size=0}var O5=T5;function N5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var D5=N5,P5="__lodash_hash_undefined__",z5=Object.prototype,U5=z5.hasOwnProperty;function R5(e){var t=this.__data__;if(zr){var r=t[e];return r===P5?void 0:r}return U5.call(t,e)?t[e]:void 0}var F5=R5,V5=Object.prototype,B5=V5.hasOwnProperty;function q5(e){var t=this.__data__;return zr?t[e]!==void 0:B5.call(t,e)}var G5=q5,H5="__lodash_hash_undefined__";function Y5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?H5:t,this}var Z5=Y5;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=O5;dt.prototype.delete=D5;dt.prototype.get=F5;dt.prototype.has=G5;dt.prototype.set=Z5;var vu=dt;function Q5(){this.__data__=[],this.size=0}var W5=Q5;function K5(e,t){for(var r=e.length;r--;)if(B4(e[r][0],t))return r;return-1}var $n=K5,J5=Array.prototype,X5=J5.splice;function e3(e){var t=this.__data__,r=$n(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():X5.call(t,r,1),--this.size,!0}var t3=e3;function r3(e){var t=this.__data__,r=$n(t,e);return r<0?void 0:t[r][1]}var i3=r3;function n3(e){return $n(this.__data__,e)>-1}var o3=n3;function a3(e,t){var r=this.__data__,i=$n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var l3=a3;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=W5;pt.prototype.delete=t3;pt.prototype.get=i3;pt.prototype.has=o3;pt.prototype.set=l3;var _n=pt,s3=ct(X,"Map"),Ur=s3;function u3(){this.size=0,this.__data__={hash:new vu,map:new(Ur||_n),string:new vu}}var c3=u3;function d3(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var p3=d3;function g3(e,t){var r=e.__data__;return p3(t)?r[typeof t=="string"?"string":"hash"]:r.map}var En=g3;function f3(e){var t=En(this,e).delete(e);return this.size-=t?1:0,t}var y3=f3;function m3(e){return En(this,e).get(e)}var b3=m3;function h3(e){return En(this,e).has(e)}var v3=h3;function w3(e,t){var r=En(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var k3=w3;function gt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gt.prototype.clear=c3;gt.prototype.delete=y3;gt.prototype.get=b3;gt.prototype.has=v3;gt.prototype.set=k3;var dc=gt;function x3(){this.__data__=new _n,this.size=0}var I3=x3;function C3(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var A3=C3;function S3(e){return this.__data__.get(e)}var M3=S3;function j3(e){return this.__data__.has(e)}var $3=j3,_3=200;function E3(e,t){var r=this.__data__;if(r instanceof _n){var i=r.__data__;if(!Ur||i.length<_3-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new dc(i)}return r.set(e,t),this.size=r.size,this}var L3=E3;function qr(e){var t=this.__data__=new _n(e);this.size=t.size}qr.prototype.clear=I3;qr.prototype.delete=A3;qr.prototype.get=M3;qr.prototype.has=$3;qr.prototype.set=L3;var T3=Object.prototype,oX=T3.propertyIsEnumerable,O3=ct(X,"DataView"),aa=O3,N3=ct(X,"Promise"),la=N3,D3=ct(X,"Set"),sa=D3,wu="[object Map]",P3="[object Object]",ku="[object Promise]",xu="[object Set]",Iu="[object WeakMap]",Cu="[object DataView]",z3=Le(aa),U3=Le(Ur),R3=Le(la),F3=Le(sa),V3=Le(oa),ot=Br;(aa&&ot(new aa(new ArrayBuffer(1)))!=Cu||Ur&&ot(new Ur)!=wu||la&&ot(la.resolve())!=ku||sa&&ot(new sa)!=xu||oa&&ot(new oa)!=Iu)&&(ot=function(e){var t=Br(e),r=t==P3?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case z3:return Cu;case U3:return wu;case R3:return ku;case F3:return xu;case V3:return Iu}return t});var aX=X.Uint8Array,B3="__lodash_hash_undefined__";function q3(e){return this.__data__.set(e,B3),this}var G3=q3;function H3(e){return this.__data__.has(e)}var Y3=H3;function ua(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new dc;++t<r;)this.add(e[t])}ua.prototype.add=ua.prototype.push=G3;ua.prototype.has=Y3;var Au=st?st.prototype:void 0,lX=Au?Au.valueOf:void 0,Z3=Object.prototype,sX=Z3.hasOwnProperty,Q3=Object.prototype,uX=Q3.hasOwnProperty,cX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function pc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ca(e,t){let r=await pc(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function W3(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return pc(i,t)}function K3(e){return e!==void 0}var Ln=K3;function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function J3(e){return Array.isArray(e)?e:e?[e]:[]}function X3(e,t){return t?e:e[0]??""}function gc(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function fc(e,t){return J3(e.ui.experimental.getGlobalStateValue(t.stateId))}function e9(e,t){let r=gc().get(t);return r==null?!1:fc(e,r).length<r.maxCount}function t9(e,t,r){let i=gc().get(t);if(i==null)return!1;let n=fc(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,X3([...n,r],i.isList)),!0)}var va=class yc{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yc),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},mc=class bc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new bc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function r9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var n9=i9,Jo="ly.img.ai.temp";async function o9(e,t){return e.engine.asset.findAllSources().includes(Jo)||e.engine.asset.addLocalSource(Jo),e.engine.asset.apply(Jo,t)}function a9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function hc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function l9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function s9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function wa(e){return e instanceof Error&&e.name==="AbortError"}function u9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function c9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
66
77
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
67
78
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
68
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function n9(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var o9=n9;function a9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Hr=a9;function l9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),s9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Xv(e)}))}function s9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var ca=l9,u9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",wa=u9;function c9(e,t,r){switch(t){case"image":return d9(e,r[t]);case"video":return p9(e,r[t]);case"sticker":return g9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function d9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:wa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function p9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:wa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function g9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:wa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var f9=c9;async function y9(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return m9(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return h9(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return b9(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return v9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function h9(e,t,r){let i=t.width,n=t.height,a=await e9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function b9(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function v9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var yc=y9;function w9(e){switch(e.userFlow){case"placeholder":return x9(e);case"generation-only":return k9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function k9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=fc(),c=await yc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function x9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=fc(),c=f9(s,a,o);if(i=await Jv(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await yc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var I9=w9;function ka(e){return`${e}.generating`}function A9(e){return`${e}.abort`}function C9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(A9(d),()=>{}),y=c.global(ka(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await I9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){ca(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;S9(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(va(h))return;ca(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function S9(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var mc=C9;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function M9({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ka(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return mc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var j9=M9;function hc(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Lr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=hc(e,t.$ref),n={...Lr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Lr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Lr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Lr(e,t[n],r));return i}return t}function $9(e){return Lr(e,{...e})}function E9(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function _9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return T9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function T9(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=L9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function L9(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var bc=_9;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function vc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function wc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?O9(e,c,r,i,n,a,o,s):kc(e,c,r,i,n,a,o,s);case"boolean":return xc(e,c,r,i,n,a,o,s);case"number":case"integer":return Ic(e,c,r,i,n,a,o,s);case"object":return da(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return N9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function da(e,t,r,i,n,a,o,s){let c=bc(t.schema??{},i).reduce((l,u)=>{let d=wc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Yr(d,m,f,t.schema.default,""),k=l(p,b),w=D9(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function O9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:y,icons:f}=vc(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:me(t,r,o,x),icon:f[x]})),b=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function xc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Ic(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function N9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=vc(t.schema),I=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:kc,boolean:xc,integer:Ic,object:da},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:me(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>da(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=Yr(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function D9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var P9=wc,z9={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Su(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Cu(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Cu(g);n[a(l.id,g)]=y}})}});let c={...z9,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function Mu(e){return typeof e.document=="function"?e.document():e.document}function ju(e,t,r){let i=$9(e),n=hc(i,t.inputReference);if(!E9(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=bc(a,t);return{inputSchema:a,properties:o}}function $u(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=P9(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];mc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function U9(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Mu(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=ju(c,s,a.debug);return Su(y,i,r,i.kind),$u(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Mu(s)).then(g=>{let{inputSchema:y,properties:f}=ju(g,s,a.debug);Su(f,i,r,i.kind),u=$u(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var R9=U9;async function F9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return j9(e,t);case"schema":return R9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var V9=F9;function B9(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new Z2(o,r)),o}return i}var q9=B9;function G9(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Y9=G9,Jo="@imgly/plugin-ai-generation",H9=`
79
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function d9(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var p9=d9;function g9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var ft=g9;function f9(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),y9(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a9(e)}))}function y9(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var da=f9,m9="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ka=m9;function b9(e,t,r){switch(t){case"image":return h9(e,r[t]);case"video":return v9(e,r[t]);case"sticker":return w9(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ka,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function v9(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ka,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function w9(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ka,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var k9=b9;async function x9(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return I9(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return C9(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return A9(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return S9(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function I9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function C9(e,t,r){let i=t.width,n=t.height,a=await l9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function A9(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function S9(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var vc=x9;function M9(e){switch(e.userFlow){case"placeholder":return $9(e);case"generation-only":return j9(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function j9(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=hc(),c=await vc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function $9(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=hc(),c=k9(s,a,o);if(i=await o9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await vc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(wa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var _9=M9;function xa(e){return`${e}.generating`}function E9(e){return`${e}.abort`}function L9(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(E9(d),()=>{}),y=c.global(xa(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await _9({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){da(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;T9(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(wa(b))return;da(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function T9(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var wc=L9;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function O9({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(xa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return wc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var N9=O9;function kc(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Or(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=kc(e,t.$ref),n={...Or(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Or(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Or(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Or(e,t[n],r));return i}return t}function D9(e){return Or(e,{...e})}function P9(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function z9(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return U9(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function U9(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=R9(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function R9(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var xc=z9;function Ic(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Cc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?F9(e,c,r,i,n,a,o,s):Ac(e,c,r,i,n,a,o,s);case"boolean":return Sc(e,c,r,i,n,a,o,s);case"number":case"integer":return Mc(e,c,r,i,n,a,o,s);case"object":return pa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return V9(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function pa(e,t,r,i,n,a,o,s){let c=xc(t.schema??{},i).reduce((l,u)=>{let d=Cc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ac(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=me(r.id,o,d,"placeholder"),f=Gr(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Hr(d,h,f,t.schema.default,""),v=l(p,m),k=B9(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function F9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),{labels:y,icons:f}=Ic(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:me(r.id,o,d,x),icon:f[x]})),m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Hr(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Sc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Hr(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Mc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Hr(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function V9(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Ic(t.schema),I=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ac,boolean:Sc,integer:Mc,object:pa},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:me(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>pa(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Hr(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function B9(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var q9=Cc,G9={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Su(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Mu(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Su(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Su(g);n[a(l.id,g)]=y}})}});let c={...G9,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function ju(e){return typeof e.document=="function"?e.document():e.document}function $u(e,t,r){let i=D9(e),n=kc(i,t.inputReference);if(!P9(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=xc(a,t);return{inputSchema:a,properties:o}}function _u(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=q9(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];wc(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function H9(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=ju(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=$u(c,s,a.debug);return Mu(y,i,r,i.kind),_u(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ju(s)).then(g=>{let{inputSchema:y,properties:f}=$u(g,s,a.debug);Mu(f,i,r,i.kind),u=_u(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var Y9=H9;async function Z9(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return N9(e,t);case"schema":return Y9(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Q9=Z9;function W9(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new K2(o,r)),o}return i}var K9=W9;function J9(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var X9=J9,Xo="@imgly/plugin-ai-generation",ev=`
69
80
  <svg>
70
81
  <symbol
71
82
  fill="none"
@@ -83,7 +94,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
83
94
  fill="none"
84
95
  xmlns="http://www.w3.org/2000/svg"
85
96
  viewBox="0 0 24 24"
86
- id="${Jo}/image"
97
+ id="${Xo}/image"
87
98
  >
88
99
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
89
100
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -95,7 +106,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
95
106
  fill="none"
96
107
  xmlns="http://www.w3.org/2000/svg"
97
108
  viewBox="0 0 24 24"
98
- id="${Jo}/video"
109
+ id="${Xo}/video"
99
110
  >
100
111
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
101
112
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -106,11 +117,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
106
117
  fill="none"
107
118
  xmlns="http://www.w3.org/2000/svg"
108
119
  viewBox="0 0 24 24"
109
- id="${Jo}/audio"
120
+ id="${Xo}/audio"
110
121
  >
111
122
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
112
123
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
113
124
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
125
+ </symbol>
126
+ <symbol
127
+ fill="none"
128
+ xmlns="http://www.w3.org/2000/svg"
129
+ viewBox="0 0 24 24"
130
+ id="@imgly/ImageAdd"
131
+ >
132
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
133
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
134
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
135
+
114
136
  </symbol>
115
137
  <symbol
116
138
  fill="none"
@@ -126,8 +148,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
126
148
 
127
149
  </symbol>
128
150
  </svg>
129
- `,Z9=H9;function Q9(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Ac(2e3),await W9(t,e,r)):i(t,r)}async function W9(e,t,r){switch(t.kind){case"image":return K9(e,t,r);case"video":return J9(e,t,r);case"text":return X9(e,t,r);case"audio":return t3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function K9(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await Hv(s,r),l=await ua(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
- `,"+")}`}}async function J9(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function X9(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=$r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$r(n,o)}else"customPrompt"in e?a=$r(n,"custom"):a=$r(n,"improved");else a=$r(n,"generated");return e3(a,r.abortSignal)}async function*e3(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Ac(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function t3(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:r3(220,i),duration:i,thumbnailUrl:void 0}}function r3(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return i3(i,44100)}function i3(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Ac(e){return new Promise(t=>{setTimeout(t,e)})}var n3=Q9,Cc="USER_CANCEL";function o3(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Qv([...e.provider.output.middleware??[],...r?.middlewares??[],Kv({enable:r?.debug}),n3({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:t9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return va(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Cc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var a3=o3;async function l3(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ba.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=q9(a),s=Y9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=a3({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await V9(a,c);r9(r.cesdk,"@imgly/plugin-ai-generation",Z9);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return pc.get().register(u),u}var Xo=l3;function s3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new Q2(n,r,i);return r.engine.asset.addSource(a),a.id}var u3=s3;function Or(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function c3(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Xo(e,u,r,i)));o.push(...l),a=p3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Xo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Xo(e,d,r,i)));o.push(...u),a=d3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=u3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Dn)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function d3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Rr(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Rr(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&Eu(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&Eu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function p3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Rr(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Eu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ka(r.id),!1).value)}var g3=c3,Pn="ly.img.ai.editMode",Sc="ly.img.ai.metadata";async function f3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new rc(n,Sc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var y3=f3;function m3(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var h3=m3;function b3(e){return`ly.img.ai.${e}.canvasMenu`}var v3=b3;function w3(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function _u(e){let t=[];for(let r of e){let i=w3(r);i!=null&&t.push(i)}return t}function k3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=v3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?_u(o.children):n??[]}return _u(i.children)}var x3=k3;function I3(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return A3(e,t);case"image":return C3(e,t);case"video":return S3(e,t);case"audio":return M3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function A3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function C3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await ua(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),b=r.engine.block.getCropTranslationX(a),k=r.engine.block.getCropTranslationY(a),w=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,b),r.engine.block.setCropTranslationY(a,k),r.engine.block.setCropRotation(a,w),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let h=e.output.url,x=await ua(h,t.cesdk.engine),M=x.width/x.height,C=Math.abs(y-M)>.001,_=c?[{uri:h,width:x.width,height:x.height}]:void 0,$=h,E=()=>{_==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",_)),r.engine.block.setString(o,"fill/image/previewFileURI","")};E(),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):I();let v=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{E(),C?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:v,onAfter:j,onCancel:()=>{v()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function S3(e,t){throw new Error("Function not implemented.")}async function M3(e,t){throw new Error("Function not implemented.")}var j3=I3;function $3(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var E3=$3,_3=class Mc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Mc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},_e=_3;function T3(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Dn)),c=new rc(e.cesdk.engine,Sc),l=e.lock??!0?E3({engine:e.cesdk.engine,editModeToLockTo:Pn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(Cc),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await j3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),ca(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Tu=T3;function L3(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Pn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=x3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=O3(s).filter(h=>{if(h==="ly.img.separator")return!0;let x=h.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let C=h.scopes;if(C!=null&&C.length>0&&!n.every(_=>C.every($=>e.engine.block.isAllowedByScope(_,$))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,x)=>{if(x.provider.kind!==e.kind)return h;let M=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let _=pc.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[C.id]!=null);if(_!=null){let $={definition:C,providerInitializationResult:_};return l.push($),$}else return}}).filter(Dn);return M=h3(M),M.length===0||M.every(C=>C==="ly.img.separator")||M.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||h.push({providerInitializationResult:x,quickActions:M}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(M=>{let C=M.definition.id;h.has(C)||h.set(C,M)});let x=Array.from(h.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Rr(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),I=async(h,x,M)=>{k.setValue(!0);try{return await M(h,x)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===w.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(E=>E!=="ly.img.separator"&&E.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Rr($.provider)})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(C,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Tu({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{w.setValue(C.definition.id)},isExpanded:!1,generate:Tu({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function O3(e){return e.map(t=>t==="ly.img.separator"?t:ba.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var N3=L3;async function D3(e){let t=await N3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await y3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Pn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var P3=D3,BJ=5*60*1e3,z3="@imgly/plugin-ai-image-generation",U3=`
151
+ `,tv=ev;function rv(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await jc(2e3),await iv(t,e,r)):i(t,r)}async function iv(e,t,r){switch(t.kind){case"image":return nv(e,t,r);case"video":return ov(e,t,r);case"text":return av(e,t,r);case"audio":return sv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function nv(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await W3(s,r),l=await ca(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
152
+ `,"+")}`}}async function ov(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function av(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=_r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=_r(n,o)}else"customPrompt"in e?a=_r(n,"custom"):a=_r(n,"improved");else a=_r(n,"generated");return lv(a,r.abortSignal)}async function*lv(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await jc(100)}return{kind:"text",text:e}}function _r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function sv(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:uv(220,i),duration:i,thumbnailUrl:void 0}}function uv(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return cv(i,44100)}function cv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function jc(e){return new Promise(t=>{setTimeout(t,e)})}var dv=rv,$c="USER_CANCEL";function pv(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r9([...e.provider.output.middleware??[],...r?.middlewares??[],n9({enable:r?.debug}),dv({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:s9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return wa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$c?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var gv=pv;async function fv(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=va.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=K9(a),s=X9(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=gv({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Q9(a,c);u9(r.cesdk,"@imgly/plugin-ai-generation",tv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return mc.get().register(u),u}var ea=fv;function yv(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new J2(n,r,i);return r.engine.asset.addSource(a),a.id}var mv=yv;function jn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function bv(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ea(e,u,r,i)));o.push(...l),a=vv({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ea(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ea(e,d,r,i)));o.push(...u),a=hv({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=mv({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Ln)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function hv({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Rr(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:jn(e,`${A}.label`),icon:f.value!==A&&wv(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:jn(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:jn(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function vv({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Rr(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:jn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function wv(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(xa(r.id),!1).value)}var kv=bv,Tn="ly.img.ai.editMode",_c="ly.img.ai.metadata";async function xv(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new nc(n,_c),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var Iv=xv;function Cv(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var Av=Cv;function Sv(e){return`ly.img.ai.${e}.canvasMenu`}var Mv=Sv;function jv(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Eu(e){let t=[];for(let r of e){let i=jv(r);i!=null&&t.push(i)}return t}function $v(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=Mv(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?Eu(o.children):n??[]}return Eu(i.children)}var _v=$v;function Ev(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return Lv(e,t);case"image":return Tv(e,t);case"video":return Ov(e,t);case"audio":return Nv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Lv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function Tv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await ca(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await ca(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function Ov(e,t){throw new Error("Function not implemented.")}async function Nv(e,t){throw new Error("Function not implemented.")}var Dv=Ev;function Pv(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var zv=Pv,Uv=class Ec{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ec),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ee=Uv;function Rv(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Ln)),c=new nc(e.cesdk.engine,_c),l=e.lock??!0?zv({engine:e.cesdk.engine,editModeToLockTo:Tn,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ee.get().register(u,{onCancelGeneration:()=>{o.abort($c),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await Dv(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ee.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),da(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Lu=Rv;function Fv(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Tn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=_v({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=Vv(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=mc.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(Ln);return M=Av(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Rr($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Lu({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Lu({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function Vv(e){return e.map(t=>t==="ly.img.separator"?t:va.get().getBy({id:t,type:"quick"})[0]).filter(Ln)}var Bv=Fv;async function qv(e){let t=await Bv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await Iv({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Tn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ee.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ee.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Gv=qv,gX=5*60*1e3,Hv="@imgly/plugin-ai-image-generation",Yv=`
131
153
  <svg>
132
154
  <symbol
133
155
  fill="none"
@@ -141,10 +163,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
141
163
 
142
164
  </symbol>
143
165
  </svg>
144
- `,R3=U3,F3=typeof global=="object"&&global&&global.Object===Object&&global,jc=F3,V3=typeof self=="object"&&self&&self.Object===Object&&self,B3=jc||V3||Function("return this")(),ee=B3,q3=ee.Symbol,st=q3,$c=Object.prototype,G3=$c.hasOwnProperty,Y3=$c.toString,Er=st?st.toStringTag:void 0;function H3(e){var t=G3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=Y3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var Z3=H3,Q3=Object.prototype,W3=Q3.toString;function K3(e){return W3.call(e)}var J3=K3,X3="[object Null]",e8="[object Undefined]",Lu=st?st.toStringTag:void 0;function t8(e){return e==null?e===void 0?e8:X3:Lu&&Lu in Object(e)?Z3(e):J3(e)}var Zr=t8;function r8(e){return e!=null&&typeof e=="object"}var xa=r8,qJ=Array.isArray;function i8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ec=i8,n8="[object AsyncFunction]",o8="[object Function]",a8="[object GeneratorFunction]",l8="[object Proxy]";function s8(e){if(!Ec(e))return!1;var t=Zr(e);return t==o8||t==a8||t==n8||t==l8}var u8=s8,c8=ee["__core-js_shared__"],ea=c8,Ou=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function d8(e){return!!Ou&&Ou in e}var p8=d8,g8=Function.prototype,f8=g8.toString;function y8(e){if(e!=null){try{return f8.call(e)}catch{}try{return e+""}catch{}}return""}var Le=y8,m8=/[\\^$.*+?()[\]{}|]/g,h8=/^\[object .+?Constructor\]$/,b8=Function.prototype,v8=Object.prototype,w8=b8.toString,k8=v8.hasOwnProperty,x8=RegExp("^"+w8.call(k8).replace(m8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function I8(e){if(!Ec(e)||p8(e))return!1;var t=u8(e)?x8:h8;return t.test(Le(e))}var A8=I8;function C8(e,t){return e?.[t]}var S8=C8;function M8(e,t){var r=S8(e,t);return A8(r)?r:void 0}var gt=M8,j8=gt(ee,"WeakMap"),pa=j8;function $8(e,t){return e===t||e!==e&&t!==t}var E8=$8,_8=9007199254740991;function T8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_8}var L8=T8,GJ=Object.prototype,O8="[object Arguments]";function N8(e){return xa(e)&&Zr(e)==O8}var Nu=N8,_c=Object.prototype,D8=_c.hasOwnProperty,P8=_c.propertyIsEnumerable,YJ=Nu(function(){return arguments}())?Nu:function(e){return xa(e)&&D8.call(e,"callee")&&!P8.call(e,"callee")},Tc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Tc&&typeof module=="object"&&module&&!module.nodeType&&module,z8=Du&&Du.exports===Tc,Pu=z8?ee.Buffer:void 0,HJ=Pu?Pu.isBuffer:void 0,U8="[object Arguments]",R8="[object Array]",F8="[object Boolean]",V8="[object Date]",B8="[object Error]",q8="[object Function]",G8="[object Map]",Y8="[object Number]",H8="[object Object]",Z8="[object RegExp]",Q8="[object Set]",W8="[object String]",K8="[object WeakMap]",J8="[object ArrayBuffer]",X8="[object DataView]",e7="[object Float32Array]",t7="[object Float64Array]",r7="[object Int8Array]",i7="[object Int16Array]",n7="[object Int32Array]",o7="[object Uint8Array]",a7="[object Uint8ClampedArray]",l7="[object Uint16Array]",s7="[object Uint32Array]",N={};N[e7]=N[t7]=N[r7]=N[i7]=N[n7]=N[o7]=N[a7]=N[l7]=N[s7]=!0;N[U8]=N[R8]=N[J8]=N[F8]=N[X8]=N[V8]=N[B8]=N[q8]=N[G8]=N[Y8]=N[H8]=N[Z8]=N[Q8]=N[W8]=N[K8]=!1;function u7(e){return xa(e)&&L8(e.length)&&!!N[Zr(e)]}var c7=u7;function d7(e){return function(t){return e(t)}}var p7=d7,Lc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Lc&&typeof module=="object"&&module&&!module.nodeType&&module,g7=Pr&&Pr.exports===Lc,ta=g7&&jc.process,f7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ta&&ta.binding&&ta.binding("util")}catch{}}(),zu=f7,Uu=zu&&zu.isTypedArray,ZJ=Uu?p7(Uu):c7,y7=Object.prototype,QJ=y7.hasOwnProperty;function m7(e,t){return function(r){return e(t(r))}}var h7=m7,WJ=h7(Object.keys,Object),b7=Object.prototype,KJ=b7.hasOwnProperty,v7=gt(Object,"create"),Fr=v7;function w7(){this.__data__=Fr?Fr(null):{},this.size=0}var k7=w7;function x7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var I7=x7,A7="__lodash_hash_undefined__",C7=Object.prototype,S7=C7.hasOwnProperty;function M7(e){var t=this.__data__;if(Fr){var r=t[e];return r===A7?void 0:r}return S7.call(t,e)?t[e]:void 0}var j7=M7,$7=Object.prototype,E7=$7.hasOwnProperty;function _7(e){var t=this.__data__;return Fr?t[e]!==void 0:E7.call(t,e)}var T7=_7,L7="__lodash_hash_undefined__";function O7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?L7:t,this}var N7=O7;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=k7;ft.prototype.delete=I7;ft.prototype.get=j7;ft.prototype.has=T7;ft.prototype.set=N7;var Ru=ft;function D7(){this.__data__=[],this.size=0}var P7=D7;function z7(e,t){for(var r=e.length;r--;)if(E8(e[r][0],t))return r;return-1}var zn=z7,U7=Array.prototype,R7=U7.splice;function F7(e){var t=this.__data__,r=zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():R7.call(t,r,1),--this.size,!0}var V7=F7;function B7(e){var t=this.__data__,r=zn(t,e);return r<0?void 0:t[r][1]}var q7=B7;function G7(e){return zn(this.__data__,e)>-1}var Y7=G7;function H7(e,t){var r=this.__data__,i=zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Z7=H7;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=P7;yt.prototype.delete=V7;yt.prototype.get=q7;yt.prototype.has=Y7;yt.prototype.set=Z7;var Un=yt,Q7=gt(ee,"Map"),Vr=Q7;function W7(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||Un),string:new Ru}}var K7=W7;function J7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var X7=J7;function e6(e,t){var r=e.__data__;return X7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rn=e6;function t6(e){var t=Rn(this,e).delete(e);return this.size-=t?1:0,t}var r6=t6;function i6(e){return Rn(this,e).get(e)}var n6=i6;function o6(e){return Rn(this,e).has(e)}var a6=o6;function l6(e,t){var r=Rn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var s6=l6;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=K7;mt.prototype.delete=r6;mt.prototype.get=n6;mt.prototype.has=a6;mt.prototype.set=s6;var Oc=mt;function u6(){this.__data__=new Un,this.size=0}var c6=u6;function d6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var p6=d6;function g6(e){return this.__data__.get(e)}var f6=g6;function y6(e){return this.__data__.has(e)}var m6=y6,h6=200;function b6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<h6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Oc(i)}return r.set(e,t),this.size=r.size,this}var v6=b6;function Qr(e){var t=this.__data__=new Un(e);this.size=t.size}Qr.prototype.clear=c6;Qr.prototype.delete=p6;Qr.prototype.get=f6;Qr.prototype.has=m6;Qr.prototype.set=v6;var w6=Object.prototype,JJ=w6.propertyIsEnumerable,k6=gt(ee,"DataView"),ga=k6,x6=gt(ee,"Promise"),fa=x6,I6=gt(ee,"Set"),ya=I6,Fu="[object Map]",A6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",C6=Le(ga),S6=Le(Vr),M6=Le(fa),j6=Le(ya),$6=Le(pa),ot=Zr;(ga&&ot(new ga(new ArrayBuffer(1)))!=Gu||Vr&&ot(new Vr)!=Fu||fa&&ot(fa.resolve())!=Vu||ya&&ot(new ya)!=Bu||pa&&ot(new pa)!=qu)&&(ot=function(e){var t=Zr(e),r=t==A6?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case C6:return Gu;case S6:return Fu;case M6:return Vu;case j6:return Bu;case $6:return qu}return t});var XJ=ee.Uint8Array,E6="__lodash_hash_undefined__";function _6(e){return this.__data__.set(e,E6),this}var T6=_6;function L6(e){return this.__data__.has(e)}var O6=L6;function ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Oc;++t<r;)this.add(e[t])}ma.prototype.add=ma.prototype.push=T6;ma.prototype.has=O6;var Yu=st?st.prototype:void 0,eX=Yu?Yu.valueOf:void 0,N6=Object.prototype,tX=N6.hasOwnProperty,D6=Object.prototype,rX=D6.hasOwnProperty,iX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),nX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),oX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function P6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ht(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return P6(i,t)}function z6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Hu=z6;function U6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function R6(e){return typeof e?.translate=="function"}function F6(e,t,r){return e&&U6(e)&&R6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",V6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Fn="editImage",ue=`ly.img.${Fn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var B6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${Cn}`]:"Edit Image...",[`${Cn}.description`]:"Change image based on description",[`${Cn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${Cn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),q6=B6,Vn="swapBackground",ce=`ly.img.${Vn}`,Qu=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var G6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${Mn}`]:"Swap Background...",[`${Mn}.description`]:"Change the background of the image",[`${Mn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Mn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ht(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),Y6=G6,Bn="styleTransfer",_r=`ly.img.${Bn}`,H6=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Wu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Z6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${H6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{Z6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),W6=Q6,qn="artistTransfer",Tr=`ly.img.${qn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Ku(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var J6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${K6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{J6.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ht(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),ew=X6,Gn="createVariant",de=`ly.img.${Gn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,$n=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${$n}`]:"Create Variant...",[`${$n}.description`]:"Create a variation of the image",[`${$n}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${$n}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!Hr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(b,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await ht(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),rw=tw,Yn="combineImages",pe=`ly.img.${Yn}`,Xu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ra=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ra}.apply`]:"Combine",[`${ra}`]:"Combine Images...",[`${ra}.prompt`]:"Image Combination Instructions",[`${Xu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Xu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:_n(l,"prompt"),placeholder:_n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:_n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),b=o.block.getHeight(y),k=.02*Math.min(m,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(I=>ht(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),nw=iw,Hn="remixPage",ec=`ly.img.${Hn}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Hn}`,aw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Hn}`;function lw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Hn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var sw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${aw}`]:"Turn Page into Image"}}),{id:ec,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ow}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${ec}.button`,{label:lw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(b=>{i.block.destroy(b)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),uw=sw,Zn="remixPageWithPrompt",ge=`ly.img.${Zn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Zn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Zn}`;function Tn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var cw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ia}`]:"Remix Page...",[`${ia}.prompt`]:"Remix Page Prompt",[`${tc}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ia}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tc}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:Tn(l,"prompt"),placeholder:Tn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Tn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),I=o.block.createShape("rect"),h=o.block.create("graphic");o.block.setShape(h,I),o.block.appendChild(f,h),o.block.setWidth(h,m),o.block.setHeight(h,b),o.block.setPositionX(h,k),o.block.setPositionY(h,w);let x=o.block.createFill("image");o.block.setFill(h,x),o.block.setString(x,"fill/image/imageFileURI",y),o.block.setSelected(h,!0),o.scene.zoomToBlock(h),await a({prompt:d,uri:y},{blockIds:[h]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Tn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),dw=cw,fe="ly.img.ai.image-generation";function pw(e){return{async initialize({cesdk:t}){if(t==null)return;i9(t,Nr,"1.82.0"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ba.get(),i=`${Nr}.action.label`;t.ui.addIconSet(z3,R3),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:F6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});gw(e),r.register(q6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(W6({cesdk:t})),r.register(ew({cesdk:t})),r.register(rw({cesdk:t})),r.register(nw({cesdk:t})),r.register(uw({cesdk:t})),r.register(dw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Hu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Hu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await g3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await P3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:V6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Pn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),o9({cesdk:t,panelId:fe})):n()}}}function gw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var fw=pw,yw=e=>({name:Nr,version:"1.82.0",...fw(e)}),Nc=yw;var mw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var hw=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},bw=typeof global=="object"&&global&&global.Object===Object&&global,xd=bw,vw=typeof self=="object"&&self&&self.Object===Object&&self,ww=xd||vw||Function("return this")(),te=ww,kw=te.Symbol,kt=kw,Id=Object.prototype,xw=Id.hasOwnProperty,Iw=Id.toString,Wr=kt?kt.toStringTag:void 0;function Aw(e){var t=xw.call(e,Wr),r=e[Wr];try{e[Wr]=void 0;var i=!0}catch{}var n=Iw.call(e);return i&&(t?e[Wr]=r:delete e[Wr]),n}var Cw=Aw,Sw=Object.prototype,Mw=Sw.toString;function jw(e){return Mw.call(e)}var $w=jw,Ew="[object Null]",_w="[object Undefined]",Dc=kt?kt.toStringTag:void 0;function Tw(e){return e==null?e===void 0?_w:Ew:Dc&&Dc in Object(e)?Cw(e):$w(e)}var si=Tw;function Lw(e){return e!=null&&typeof e=="object"}var Va=Lw,cX=Array.isArray;function Ow(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ad=Ow,Nw="[object AsyncFunction]",Dw="[object Function]",Pw="[object GeneratorFunction]",zw="[object Proxy]";function Uw(e){if(!Ad(e))return!1;var t=si(e);return t==Dw||t==Pw||t==Nw||t==zw}var Rw=Uw,Fw=te["__core-js_shared__"],Ia=Fw,Pc=function(){var e=/[^.]+$/.exec(Ia&&Ia.keys&&Ia.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Vw(e){return!!Pc&&Pc in e}var Bw=Vw,qw=Function.prototype,Gw=qw.toString;function Yw(e){if(e!=null){try{return Gw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=Yw,Hw=/[\\^$.*+?()[\]{}|]/g,Zw=/^\[object .+?Constructor\]$/,Qw=Function.prototype,Ww=Object.prototype,Kw=Qw.toString,Jw=Ww.hasOwnProperty,Xw=RegExp("^"+Kw.call(Jw).replace(Hw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ek(e){if(!Ad(e)||Bw(e))return!1;var t=Rw(e)?Xw:Zw;return t.test(Oe(e))}var tk=ek;function rk(e,t){return e?.[t]}var ik=rk;function nk(e,t){var r=ik(e,t);return tk(r)?r:void 0}var It=nk,ok=It(te,"WeakMap"),Ea=ok;function ak(e,t){return e===t||e!==e&&t!==t}var lk=ak,sk=9007199254740991;function uk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sk}var ck=uk,dX=Object.prototype,dk="[object Arguments]";function pk(e){return Va(e)&&si(e)==dk}var zc=pk,Cd=Object.prototype,gk=Cd.hasOwnProperty,fk=Cd.propertyIsEnumerable,pX=zc(function(){return arguments}())?zc:function(e){return Va(e)&&gk.call(e,"callee")&&!fk.call(e,"callee")},Sd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Uc=Sd&&typeof module=="object"&&module&&!module.nodeType&&module,yk=Uc&&Uc.exports===Sd,Rc=yk?te.Buffer:void 0,gX=Rc?Rc.isBuffer:void 0,mk="[object Arguments]",hk="[object Array]",bk="[object Boolean]",vk="[object Date]",wk="[object Error]",kk="[object Function]",xk="[object Map]",Ik="[object Number]",Ak="[object Object]",Ck="[object RegExp]",Sk="[object Set]",Mk="[object String]",jk="[object WeakMap]",$k="[object ArrayBuffer]",Ek="[object DataView]",_k="[object Float32Array]",Tk="[object Float64Array]",Lk="[object Int8Array]",Ok="[object Int16Array]",Nk="[object Int32Array]",Dk="[object Uint8Array]",Pk="[object Uint8ClampedArray]",zk="[object Uint16Array]",Uk="[object Uint32Array]",D={};D[_k]=D[Tk]=D[Lk]=D[Ok]=D[Nk]=D[Dk]=D[Pk]=D[zk]=D[Uk]=!0;D[mk]=D[hk]=D[$k]=D[bk]=D[Ek]=D[vk]=D[wk]=D[kk]=D[xk]=D[Ik]=D[Ak]=D[Ck]=D[Sk]=D[Mk]=D[jk]=!1;function Rk(e){return Va(e)&&ck(e.length)&&!!D[si(e)]}var Fk=Rk;function Vk(e){return function(t){return e(t)}}var Bk=Vk,Md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Md&&typeof module=="object"&&module&&!module.nodeType&&module,qk=ri&&ri.exports===Md,Aa=qk&&xd.process,Gk=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Aa&&Aa.binding&&Aa.binding("util")}catch{}}(),Fc=Gk,Vc=Fc&&Fc.isTypedArray,fX=Vc?Bk(Vc):Fk,Yk=Object.prototype,yX=Yk.hasOwnProperty;function Hk(e,t){return function(r){return e(t(r))}}var Zk=Hk,mX=Zk(Object.keys,Object),Qk=Object.prototype,hX=Qk.hasOwnProperty,Wk=It(Object,"create"),ni=Wk;function Kk(){this.__data__=ni?ni(null):{},this.size=0}var Jk=Kk;function Xk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ex=Xk,tx="__lodash_hash_undefined__",rx=Object.prototype,ix=rx.hasOwnProperty;function nx(e){var t=this.__data__;if(ni){var r=t[e];return r===tx?void 0:r}return ix.call(t,e)?t[e]:void 0}var ox=nx,ax=Object.prototype,lx=ax.hasOwnProperty;function sx(e){var t=this.__data__;return ni?t[e]!==void 0:lx.call(t,e)}var ux=sx,cx="__lodash_hash_undefined__";function dx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?cx:t,this}var px=dx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=Jk;At.prototype.delete=ex;At.prototype.get=ox;At.prototype.has=ux;At.prototype.set=px;var Bc=At;function gx(){this.__data__=[],this.size=0}var fx=gx;function yx(e,t){for(var r=e.length;r--;)if(lk(e[r][0],t))return r;return-1}var Wn=yx,mx=Array.prototype,hx=mx.splice;function bx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():hx.call(t,r,1),--this.size,!0}var vx=bx;function wx(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var kx=wx;function xx(e){return Wn(this.__data__,e)>-1}var Ix=xx;function Ax(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Cx=Ax;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=fx;Ct.prototype.delete=vx;Ct.prototype.get=kx;Ct.prototype.has=Ix;Ct.prototype.set=Cx;var Kn=Ct,Sx=It(te,"Map"),oi=Sx;function Mx(){this.size=0,this.__data__={hash:new Bc,map:new(oi||Kn),string:new Bc}}var jx=Mx;function $x(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ex=$x;function _x(e,t){var r=e.__data__;return Ex(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=_x;function Tx(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Lx=Tx;function Ox(e){return Jn(this,e).get(e)}var Nx=Ox;function Dx(e){return Jn(this,e).has(e)}var Px=Dx;function zx(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Ux=zx;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=jx;St.prototype.delete=Lx;St.prototype.get=Nx;St.prototype.has=Px;St.prototype.set=Ux;var jd=St;function Rx(){this.__data__=new Kn,this.size=0}var Fx=Rx;function Vx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Bx=Vx;function qx(e){return this.__data__.get(e)}var Gx=qx;function Yx(e){return this.__data__.has(e)}var Hx=Yx,Zx=200;function Qx(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!oi||i.length<Zx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new jd(i)}return r.set(e,t),this.size=r.size,this}var Wx=Qx;function ui(e){var t=this.__data__=new Kn(e);this.size=t.size}ui.prototype.clear=Fx;ui.prototype.delete=Bx;ui.prototype.get=Gx;ui.prototype.has=Hx;ui.prototype.set=Wx;var Kx=Object.prototype,bX=Kx.propertyIsEnumerable,Jx=It(te,"DataView"),_a=Jx,Xx=It(te,"Promise"),Ta=Xx,eI=It(te,"Set"),La=eI,qc="[object Map]",tI="[object Object]",Gc="[object Promise]",Yc="[object Set]",Hc="[object WeakMap]",Zc="[object DataView]",rI=Oe(_a),iI=Oe(oi),nI=Oe(Ta),oI=Oe(La),aI=Oe(Ea),bt=si;(_a&&bt(new _a(new ArrayBuffer(1)))!=Zc||oi&&bt(new oi)!=qc||Ta&&bt(Ta.resolve())!=Gc||La&&bt(new La)!=Yc||Ea&&bt(new Ea)!=Hc)&&(bt=function(e){var t=si(e),r=t==tI?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case rI:return Zc;case iI:return qc;case nI:return Gc;case oI:return Yc;case aI:return Hc}return t});var vX=te.Uint8Array,lI="__lodash_hash_undefined__";function sI(e){return this.__data__.set(e,lI),this}var uI=sI;function cI(e){return this.__data__.has(e)}var dI=cI;function Oa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new jd;++t<r;)this.add(e[t])}Oa.prototype.add=Oa.prototype.push=uI;Oa.prototype.has=dI;var Qc=kt?kt.prototype:void 0,wX=Qc?Qc.valueOf:void 0,pI=Object.prototype,kX=pI.hasOwnProperty,gI=Object.prototype,xX=gI.hasOwnProperty,IX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),AX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),CX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $d(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function fI(e,t){let r=await $d(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function yI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return $d(i,t)}function mI(e){return e!==void 0}var hI=mI;function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function di(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Qn=class Ed{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ed),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},bI=class _d{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _d),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function vI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function wI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var kI=wI,Ca="ly.img.ai.temp";async function xI(e,t){return e.engine.asset.findAllSources().includes(Ca)||e.engine.asset.addLocalSource(Ca),e.engine.asset.apply(Ca,t)}function II(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Td(){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 AI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function CI(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 Ba(e){return e instanceof Error&&e.name==="AbortError"}function SI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
166
+ `,Zv=Yv,Qv=typeof global=="object"&&global&&global.Object===Object&&global,Lc=Qv,Wv=typeof self=="object"&&self&&self.Object===Object&&self,Kv=Lc||Wv||Function("return this")(),ee=Kv,Jv=ee.Symbol,ut=Jv,Tc=Object.prototype,Xv=Tc.hasOwnProperty,e8=Tc.toString,Er=ut?ut.toStringTag:void 0;function t8(e){var t=Xv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=e8.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var r8=t8,i8=Object.prototype,n8=i8.toString;function o8(e){return n8.call(e)}var a8=o8,l8="[object Null]",s8="[object Undefined]",Tu=ut?ut.toStringTag:void 0;function u8(e){return e==null?e===void 0?s8:l8:Tu&&Tu in Object(e)?r8(e):a8(e)}var Yr=u8;function c8(e){return e!=null&&typeof e=="object"}var Ia=c8,fX=Array.isArray;function d8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Oc=d8,p8="[object AsyncFunction]",g8="[object Function]",f8="[object GeneratorFunction]",y8="[object Proxy]";function m8(e){if(!Oc(e))return!1;var t=Yr(e);return t==g8||t==f8||t==p8||t==y8}var b8=m8,h8=ee["__core-js_shared__"],ta=h8,Ou=function(){var e=/[^.]+$/.exec(ta&&ta.keys&&ta.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v8(e){return!!Ou&&Ou in e}var w8=v8,k8=Function.prototype,x8=k8.toString;function I8(e){if(e!=null){try{return x8.call(e)}catch{}try{return e+""}catch{}}return""}var Te=I8,C8=/[\\^$.*+?()[\]{}|]/g,A8=/^\[object .+?Constructor\]$/,S8=Function.prototype,M8=Object.prototype,j8=S8.toString,$8=M8.hasOwnProperty,_8=RegExp("^"+j8.call($8).replace(C8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E8(e){if(!Oc(e)||w8(e))return!1;var t=b8(e)?_8:A8;return t.test(Te(e))}var L8=E8;function T8(e,t){return e?.[t]}var O8=T8;function N8(e,t){var r=O8(e,t);return L8(r)?r:void 0}var yt=N8,D8=yt(ee,"WeakMap"),ga=D8;function P8(e,t){return e===t||e!==e&&t!==t}var z8=P8,U8=9007199254740991;function R8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U8}var F8=R8,yX=Object.prototype,V8="[object Arguments]";function B8(e){return Ia(e)&&Yr(e)==V8}var Nu=B8,Nc=Object.prototype,q8=Nc.hasOwnProperty,G8=Nc.propertyIsEnumerable,mX=Nu(function(){return arguments}())?Nu:function(e){return Ia(e)&&q8.call(e,"callee")&&!G8.call(e,"callee")},Dc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Dc&&typeof module=="object"&&module&&!module.nodeType&&module,H8=Du&&Du.exports===Dc,Pu=H8?ee.Buffer:void 0,bX=Pu?Pu.isBuffer:void 0,Y8="[object Arguments]",Z8="[object Array]",Q8="[object Boolean]",W8="[object Date]",K8="[object Error]",J8="[object Function]",X8="[object Map]",e7="[object Number]",t7="[object Object]",r7="[object RegExp]",i7="[object Set]",n7="[object String]",o7="[object WeakMap]",a7="[object ArrayBuffer]",l7="[object DataView]",s7="[object Float32Array]",u7="[object Float64Array]",c7="[object Int8Array]",d7="[object Int16Array]",p7="[object Int32Array]",g7="[object Uint8Array]",f7="[object Uint8ClampedArray]",y7="[object Uint16Array]",m7="[object Uint32Array]",D={};D[s7]=D[u7]=D[c7]=D[d7]=D[p7]=D[g7]=D[f7]=D[y7]=D[m7]=!0;D[Y8]=D[Z8]=D[a7]=D[Q8]=D[l7]=D[W8]=D[K8]=D[J8]=D[X8]=D[e7]=D[t7]=D[r7]=D[i7]=D[n7]=D[o7]=!1;function b7(e){return Ia(e)&&F8(e.length)&&!!D[Yr(e)]}var h7=b7;function v7(e){return function(t){return e(t)}}var w7=v7,Pc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Pc&&typeof module=="object"&&module&&!module.nodeType&&module,k7=Pr&&Pr.exports===Pc,ra=k7&&Lc.process,x7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ra&&ra.binding&&ra.binding("util")}catch{}}(),zu=x7,Uu=zu&&zu.isTypedArray,hX=Uu?w7(Uu):h7,I7=Object.prototype,vX=I7.hasOwnProperty;function C7(e,t){return function(r){return e(t(r))}}var A7=C7,wX=A7(Object.keys,Object),S7=Object.prototype,kX=S7.hasOwnProperty,M7=yt(Object,"create"),Fr=M7;function j7(){this.__data__=Fr?Fr(null):{},this.size=0}var $7=j7;function _7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E7=_7,L7="__lodash_hash_undefined__",T7=Object.prototype,O7=T7.hasOwnProperty;function N7(e){var t=this.__data__;if(Fr){var r=t[e];return r===L7?void 0:r}return O7.call(t,e)?t[e]:void 0}var D7=N7,P7=Object.prototype,z7=P7.hasOwnProperty;function U7(e){var t=this.__data__;return Fr?t[e]!==void 0:z7.call(t,e)}var R7=U7,F7="__lodash_hash_undefined__";function V7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?F7:t,this}var B7=V7;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=$7;mt.prototype.delete=E7;mt.prototype.get=D7;mt.prototype.has=R7;mt.prototype.set=B7;var Ru=mt;function q7(){this.__data__=[],this.size=0}var G7=q7;function H7(e,t){for(var r=e.length;r--;)if(z8(e[r][0],t))return r;return-1}var On=H7,Y7=Array.prototype,Z7=Y7.splice;function Q7(e){var t=this.__data__,r=On(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z7.call(t,r,1),--this.size,!0}var W7=Q7;function K7(e){var t=this.__data__,r=On(t,e);return r<0?void 0:t[r][1]}var J7=K7;function X7(e){return On(this.__data__,e)>-1}var e6=X7;function t6(e,t){var r=this.__data__,i=On(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r6=t6;function bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}bt.prototype.clear=G7;bt.prototype.delete=W7;bt.prototype.get=J7;bt.prototype.has=e6;bt.prototype.set=r6;var Nn=bt,i6=yt(ee,"Map"),Vr=i6;function n6(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||Nn),string:new Ru}}var o6=n6;function a6(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l6=a6;function s6(e,t){var r=e.__data__;return l6(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Dn=s6;function u6(e){var t=Dn(this,e).delete(e);return this.size-=t?1:0,t}var c6=u6;function d6(e){return Dn(this,e).get(e)}var p6=d6;function g6(e){return Dn(this,e).has(e)}var f6=g6;function y6(e,t){var r=Dn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m6=y6;function ht(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ht.prototype.clear=o6;ht.prototype.delete=c6;ht.prototype.get=p6;ht.prototype.has=f6;ht.prototype.set=m6;var zc=ht;function b6(){this.__data__=new Nn,this.size=0}var h6=b6;function v6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w6=v6;function k6(e){return this.__data__.get(e)}var x6=k6;function I6(e){return this.__data__.has(e)}var C6=I6,A6=200;function S6(e,t){var r=this.__data__;if(r instanceof Nn){var i=r.__data__;if(!Vr||i.length<A6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zc(i)}return r.set(e,t),this.size=r.size,this}var M6=S6;function Zr(e){var t=this.__data__=new Nn(e);this.size=t.size}Zr.prototype.clear=h6;Zr.prototype.delete=w6;Zr.prototype.get=x6;Zr.prototype.has=C6;Zr.prototype.set=M6;var j6=Object.prototype,xX=j6.propertyIsEnumerable,$6=yt(ee,"DataView"),fa=$6,_6=yt(ee,"Promise"),ya=_6,E6=yt(ee,"Set"),ma=E6,Fu="[object Map]",L6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",T6=Te(fa),O6=Te(Vr),N6=Te(ya),D6=Te(ma),P6=Te(ga),at=Yr;(fa&&at(new fa(new ArrayBuffer(1)))!=Gu||Vr&&at(new Vr)!=Fu||ya&&at(ya.resolve())!=Vu||ma&&at(new ma)!=Bu||ga&&at(new ga)!=qu)&&(at=function(e){var t=Yr(e),r=t==L6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case T6:return Gu;case O6:return Fu;case N6:return Vu;case D6:return Bu;case P6:return qu}return t});var IX=ee.Uint8Array,z6="__lodash_hash_undefined__";function U6(e){return this.__data__.set(e,z6),this}var R6=U6;function F6(e){return this.__data__.has(e)}var V6=F6;function ba(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zc;++t<r;)this.add(e[t])}ba.prototype.add=ba.prototype.push=R6;ba.prototype.has=V6;var Hu=ut?ut.prototype:void 0,CX=Hu?Hu.valueOf:void 0,B6=Object.prototype,AX=B6.hasOwnProperty,q6=Object.prototype,SX=q6.hasOwnProperty,MX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function G6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Oe(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return G6(i,t)}function H6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=H6;function Y6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function Z6(e){return typeof e?.translate=="function"}function Q6(e,t,r){return e&&Y6(e)&&Z6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",W6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createImage","ly.img.createVideo","ly.img.animateBetweenImages"],Pn="editImage",ue=`ly.img.${Pn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function kn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var K6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.PromptInput(`${ue}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),J6=K6,zn="swapBackground",ce=`ly.img.${zn}`,Qu=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function In(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.PromptInput(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),ew=X6,Un="styleTransfer",Lr=`ly.img.${Un}`,tw=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Wu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var rw=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:Lr,type:"quick",kind:"image",label:`${tw}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{rw.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),nw=iw,Rn="artistTransfer",Tr=`ly.img.${Rn}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Ku(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var aw=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${ow}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{aw.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),sw=lw,Fn="createVariant",de=`ly.img.${Fn}`,Ju=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function An(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var uw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!ft()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.PromptInput(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let m=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(m,v)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let h=await Oe(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),cw=uw,Vn="createImage",Xu=`ly.img.${Vn}`,dw=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,ec=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function pw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var gw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createImage",!0),H(e,{en:{[`${ec}`]:"Create Image from Reference...",[`${ec}.description`]:"Create an image from the selected image"}}),{id:Xu,type:"quick",kind:"image",label:`${dw}`,enable:ft(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Xu}.button`,{label:pw(n),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",isDisabled:!e9(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Oe(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.selectedProvider.fromImage",n),t9(e,n,o),e.ui.openPanel("ly.img.ai.image-generation"),i()}catch(a){console.error("Error opening image generation panel:",a)}}})}}),fw=gw,Bn="combineImages",pe=`ly.img.${Bn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ia}.apply`]:"Combine",[`${ia}`]:"Combine Images...",[`${ia}.prompt`]:"Image Combination Instructions",[`${tc}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tc}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.PromptInput(`${pe}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(y),m=o.block.getHeight(y),v=.02*Math.min(h,m)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(I=>Oe(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),mw=yw,qn="remixPage",rc=`ly.img.${qn}`,bw=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,hw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function vw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ww=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${hw}`]:"Turn Page into Image"}}),{id:rc,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${bw}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${rc}.button`,{label:vw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(m=>{i.block.destroy(m)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),kw=ww,Gn="remixPageWithPrompt",ge=`ly.img.${Gn}`,ic=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,na=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function Mn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var xw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${na}`]:"Remix Page...",[`${na}.prompt`]:"Remix Page Prompt",[`${ic}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${na}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ic}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.PromptInput(`${ge}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),m=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,I),o.block.appendChild(f,b),o.block.setWidth(b,h),o.block.setHeight(b,m),o.block.setPositionX(b,v),o.block.setPositionY(b,k);let x=o.block.createFill("image");o.block.setFill(b,x),o.block.setString(x,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Mn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),Iw=xw,fe="ly.img.ai.image-generation";function Cw(e){return{async initialize({cesdk:t}){if(t==null)return;c9(t,Nr,"1.83.0-nightly.20260918"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=va.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Hv,Zv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:Q6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});Aw(e),r.register(J6({cesdk:t})),r.register(ew({cesdk:t})),r.register(nw({cesdk:t})),r.register(sw({cesdk:t})),r.register(cw({cesdk:t})),r.register(fw({cesdk:t})),r.register(mw({cesdk:t})),r.register(kw({cesdk:t})),r.register(Iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Yu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Yu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await kv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Gv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:W6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Tn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),p9({cesdk:t,panelId:fe})):n()}}}function Aw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var Sw=Cw,Mw=e=>({name:Nr,version:"1.83.0-nightly.20260918",...Sw(e)}),Uc=Mw;function jw(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var ve=jw,$w=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;kt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{kt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return kt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),kt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function kt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=kt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=kt(n,t,a)}return e}var _w=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ew=typeof global=="object"&&global&&global.Object===Object&&global,Ad=Ew,Lw=typeof self=="object"&&self&&self.Object===Object&&self,Tw=Ad||Lw||Function("return this")(),te=Tw,Ow=te.Symbol,xt=Ow,Sd=Object.prototype,Nw=Sd.hasOwnProperty,Dw=Sd.toString,Qr=xt?xt.toStringTag:void 0;function Pw(e){var t=Nw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=Dw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var zw=Pw,Uw=Object.prototype,Rw=Uw.toString;function Fw(e){return Rw.call(e)}var Vw=Fw,Bw="[object Null]",qw="[object Undefined]",Rc=xt?xt.toStringTag:void 0;function Gw(e){return e==null?e===void 0?qw:Bw:Rc&&Rc in Object(e)?zw(e):Vw(e)}var ai=Gw;function Hw(e){return e!=null&&typeof e=="object"}var Ba=Hw,OX=Array.isArray;function Yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Md=Yw,Zw="[object AsyncFunction]",Qw="[object Function]",Ww="[object GeneratorFunction]",Kw="[object Proxy]";function Jw(e){if(!Md(e))return!1;var t=ai(e);return t==Qw||t==Ww||t==Zw||t==Kw}var Xw=Jw,ek=te["__core-js_shared__"],Ca=ek,Fc=function(){var e=/[^.]+$/.exec(Ca&&Ca.keys&&Ca.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tk(e){return!!Fc&&Fc in e}var rk=tk,ik=Function.prototype,nk=ik.toString;function ok(e){if(e!=null){try{return nk.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=ok,ak=/[\\^$.*+?()[\]{}|]/g,lk=/^\[object .+?Constructor\]$/,sk=Function.prototype,uk=Object.prototype,ck=sk.toString,dk=uk.hasOwnProperty,pk=RegExp("^"+ck.call(dk).replace(ak,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gk(e){if(!Md(e)||rk(e))return!1;var t=Xw(e)?pk:lk;return t.test(Ne(e))}var fk=gk;function yk(e,t){return e?.[t]}var mk=yk;function bk(e,t){var r=mk(e,t);return fk(r)?r:void 0}var Ct=bk,hk=Ct(te,"WeakMap"),Ea=hk;function vk(e,t){return e===t||e!==e&&t!==t}var wk=vk,kk=9007199254740991;function xk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kk}var Ik=xk,NX=Object.prototype,Ck="[object Arguments]";function Ak(e){return Ba(e)&&ai(e)==Ck}var Vc=Ak,jd=Object.prototype,Sk=jd.hasOwnProperty,Mk=jd.propertyIsEnumerable,DX=Vc(function(){return arguments}())?Vc:function(e){return Ba(e)&&Sk.call(e,"callee")&&!Mk.call(e,"callee")},$d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bc=$d&&typeof module=="object"&&module&&!module.nodeType&&module,jk=Bc&&Bc.exports===$d,qc=jk?te.Buffer:void 0,PX=qc?qc.isBuffer:void 0,$k="[object Arguments]",_k="[object Array]",Ek="[object Boolean]",Lk="[object Date]",Tk="[object Error]",Ok="[object Function]",Nk="[object Map]",Dk="[object Number]",Pk="[object Object]",zk="[object RegExp]",Uk="[object Set]",Rk="[object String]",Fk="[object WeakMap]",Vk="[object ArrayBuffer]",Bk="[object DataView]",qk="[object Float32Array]",Gk="[object Float64Array]",Hk="[object Int8Array]",Yk="[object Int16Array]",Zk="[object Int32Array]",Qk="[object Uint8Array]",Wk="[object Uint8ClampedArray]",Kk="[object Uint16Array]",Jk="[object Uint32Array]",P={};P[qk]=P[Gk]=P[Hk]=P[Yk]=P[Zk]=P[Qk]=P[Wk]=P[Kk]=P[Jk]=!0;P[$k]=P[_k]=P[Vk]=P[Ek]=P[Bk]=P[Lk]=P[Tk]=P[Ok]=P[Nk]=P[Dk]=P[Pk]=P[zk]=P[Uk]=P[Rk]=P[Fk]=!1;function Xk(e){return Ba(e)&&Ik(e.length)&&!!P[ai(e)]}var ex=Xk;function tx(e){return function(t){return e(t)}}var rx=tx,_d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=_d&&typeof module=="object"&&module&&!module.nodeType&&module,ix=ei&&ei.exports===_d,Aa=ix&&Ad.process,nx=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||Aa&&Aa.binding&&Aa.binding("util")}catch{}}(),Gc=nx,Hc=Gc&&Gc.isTypedArray,zX=Hc?rx(Hc):ex,ox=Object.prototype,UX=ox.hasOwnProperty;function ax(e,t){return function(r){return e(t(r))}}var lx=ax,RX=lx(Object.keys,Object),sx=Object.prototype,FX=sx.hasOwnProperty,ux=Ct(Object,"create"),ri=ux;function cx(){this.__data__=ri?ri(null):{},this.size=0}var dx=cx;function px(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gx=px,fx="__lodash_hash_undefined__",yx=Object.prototype,mx=yx.hasOwnProperty;function bx(e){var t=this.__data__;if(ri){var r=t[e];return r===fx?void 0:r}return mx.call(t,e)?t[e]:void 0}var hx=bx,vx=Object.prototype,wx=vx.hasOwnProperty;function kx(e){var t=this.__data__;return ri?t[e]!==void 0:wx.call(t,e)}var xx=kx,Ix="__lodash_hash_undefined__";function Cx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ri&&t===void 0?Ix:t,this}var Ax=Cx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=dx;At.prototype.delete=gx;At.prototype.get=hx;At.prototype.has=xx;At.prototype.set=Ax;var Yc=At;function Sx(){this.__data__=[],this.size=0}var Mx=Sx;function jx(e,t){for(var r=e.length;r--;)if(wk(e[r][0],t))return r;return-1}var Zn=jx,$x=Array.prototype,_x=$x.splice;function Ex(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_x.call(t,r,1),--this.size,!0}var Lx=Ex;function Tx(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var Ox=Tx;function Nx(e){return Zn(this.__data__,e)>-1}var Dx=Nx;function Px(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zx=Px;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=Mx;St.prototype.delete=Lx;St.prototype.get=Ox;St.prototype.has=Dx;St.prototype.set=zx;var Qn=St,Ux=Ct(te,"Map"),ii=Ux;function Rx(){this.size=0,this.__data__={hash:new Yc,map:new(ii||Qn),string:new Yc}}var Fx=Rx;function Vx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bx=Vx;function qx(e,t){var r=e.__data__;return Bx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=qx;function Gx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var Hx=Gx;function Yx(e){return Wn(this,e).get(e)}var Zx=Yx;function Qx(e){return Wn(this,e).has(e)}var Wx=Qx;function Kx(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jx=Kx;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=Fx;Mt.prototype.delete=Hx;Mt.prototype.get=Zx;Mt.prototype.has=Wx;Mt.prototype.set=Jx;var Ed=Mt;function Xx(){this.__data__=new Qn,this.size=0}var eI=Xx;function tI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rI=tI;function iI(e){return this.__data__.get(e)}var nI=iI;function oI(e){return this.__data__.has(e)}var aI=oI,lI=200;function sI(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ii||i.length<lI-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ed(i)}return r.set(e,t),this.size=r.size,this}var uI=sI;function li(e){var t=this.__data__=new Qn(e);this.size=t.size}li.prototype.clear=eI;li.prototype.delete=rI;li.prototype.get=nI;li.prototype.has=aI;li.prototype.set=uI;var cI=Object.prototype,VX=cI.propertyIsEnumerable,dI=Ct(te,"DataView"),La=dI,pI=Ct(te,"Promise"),Ta=pI,gI=Ct(te,"Set"),Oa=gI,Zc="[object Map]",fI="[object Object]",Qc="[object Promise]",Wc="[object Set]",Kc="[object WeakMap]",Jc="[object DataView]",yI=Ne(La),mI=Ne(ii),bI=Ne(Ta),hI=Ne(Oa),vI=Ne(Ea),vt=ai;(La&&vt(new La(new ArrayBuffer(1)))!=Jc||ii&&vt(new ii)!=Zc||Ta&&vt(Ta.resolve())!=Qc||Oa&&vt(new Oa)!=Wc||Ea&&vt(new Ea)!=Kc)&&(vt=function(e){var t=ai(e),r=t==fI?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case yI:return Jc;case mI:return Zc;case bI:return Qc;case hI:return Wc;case vI:return Kc}return t});var BX=te.Uint8Array,wI="__lodash_hash_undefined__";function kI(e){return this.__data__.set(e,wI),this}var xI=kI;function II(e){return this.__data__.has(e)}var CI=II;function Na(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ed;++t<r;)this.add(e[t])}Na.prototype.add=Na.prototype.push=xI;Na.prototype.has=CI;var Xc=xt?xt.prototype:void 0,qX=Xc?Xc.valueOf:void 0,AI=Object.prototype,GX=AI.hasOwnProperty,SI=Object.prototype,HX=SI.hasOwnProperty,YX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MI(e,t){let r=await Ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ld(i,t)}function $I(e){return e!==void 0}var _I=$I;function si(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ui(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function EI(e){return Array.isArray(e)?e:e?[e]:[]}function LI(e,t){return t?e:e[0]??""}function Td(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function Od(e,t){return EI(e.ui.experimental.getGlobalStateValue(t.stateId))}function TI(e,t){let r=Td().get(t);return r==null?!1:Od(e,r).length<r.maxCount}function OI(e,t,r){let i=Td().get(t);if(i==null)return!1;let n=Od(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,LI([...n,r],i.isList)),!0)}var Hn=class Nd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Nd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},NI=class Dd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Dd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function DI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function PI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var zI=PI,Sa="ly.img.ai.temp";async function UI(e,t){return e.engine.asset.findAllSources().includes(Sa)||e.engine.asset.addLocalSource(Sa),e.engine.asset.apply(Sa,t)}function RI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Pd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function FI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function VI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function qa(e){return e instanceof Error&&e.name==="AbortError"}function BI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function qI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
145
167
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
146
168
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
147
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function jI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var $I=jI;function EI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var _I=EI;function TI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:II(e)}))}function LI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var Wc=TI,OI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",qa=OI;function NI(e,t,r){switch(t){case"image":return DI(e,r[t]);case"video":return PI(e,r[t]);case"sticker":return zI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function DI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:qa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function PI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:qa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function zI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:qa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var UI=NI;async function RI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return FI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return VI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return BI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return qI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function FI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function VI(e,t,r){let i=t.width,n=t.height,a=await AI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function BI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function qI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Ld=RI;function GI(e){switch(e.userFlow){case"placeholder":return HI(e);case"generation-only":return YI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function YI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(be(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(be(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Td(),c=await Ld(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function HI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(be(t,r))return{status:"aborted"};let s=Td(),c=UI(s,a,o);if(i=await xI(t,c),be(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(be(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Ld(s,a,o,l.output);if(be(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),be(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ba(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function be(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var ZI=GI;function Ga(e){return`${e}.generating`}function QI(e){return`${e}.abort`}function WI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(QI(d),()=>{}),y=c.global(Ga(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await ZI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){Wc(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;KI(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(Ba(h))return;Wc(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function KI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Od=WI;function Na(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function JI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Ga(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Od(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var XI=JI;function Nd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Nd(e,t.$ref),n={...Xr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xr(e,t[n],r));return i}return t}function eA(e){return Xr(e,{...e})}function tA(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function rA(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return iA(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function iA(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=nA(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function nA(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Dd=rA;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Pd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function zd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?oA(e,c,r,i,n,a,o,s):Ud(e,c,r,i,n,a,o,s);case"boolean":return Rd(e,c,r,i,n,a,o,s);case"number":case"integer":return Fd(e,c,r,i,n,a,o,s);case"object":return Da(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return aA(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Da(e,t,r,i,n,a,o,s){let c=Dd(t.schema??{},i).reduce((l,u)=>{let d=zd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=pi(d,m,f,t.schema.default,""),k=l(p,b),w=lA(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function oA(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:y,icons:f}=Pd(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:ve(t,r,o,x),icon:f[x]})),b=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Rd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Fd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function aA(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Pd(t.schema),I=di(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:Ud,boolean:Rd,integer:Fd,object:Da},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:ve(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>Da(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=pi(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function lA(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var sA=zd,uA={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Kc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Jc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Kc(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Kc(g);n[a(l.id,g)]=y}})}});let c={...uA,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function Xc(e){return typeof e.document=="function"?e.document():e.document}function ed(e,t,r){let i=eA(e),n=Nd(i,t.inputReference);if(!tA(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Dd(a,t);return{inputSchema:a,properties:o}}function td(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=sA(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Od(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function cA(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Xc(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=ed(c,s,a.debug);return Jc(y,i,r,i.kind),td(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Xc(s)).then(g=>{let{inputSchema:y,properties:f}=ed(g,s,a.debug);Jc(f,i,r,i.kind),u=td(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var dA=cA;async function pA(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return XI(e,t);case"schema":return dA(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gA=pA;function fA(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new mw(o,r)),o}return i}var yA=fA;function mA(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var hA=mA,Sa="@imgly/plugin-ai-generation",bA=`
169
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function GI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var HI=GI;function YI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var ZI=YI;function QI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),WI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:RI(e)}))}function WI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var ed=QI,KI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ga=KI;function JI(e,t,r){switch(t){case"image":return XI(e,r[t]);case"video":return eC(e,r[t]);case"sticker":return tC(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function XI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ga,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function eC(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ga,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function tC(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ga,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var rC=JI;async function iC(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return nC(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return oC(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return aC(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return lC(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nC(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function oC(e,t,r){let i=t.width,n=t.height,a=await FI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function aC(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function lC(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var zd=iC;function sC(e){switch(e.userFlow){case"placeholder":return cC(e);case"generation-only":return uC(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function uC(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Pd(),c=await zd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function cC(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=Pd(),c=rC(s,a,o);if(i=await UI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await zd(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(qa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dC=sC;function Ha(e){return`${e}.generating`}function pC(e){return`${e}.abort`}function gC(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(pC(d),()=>{}),y=c.global(Ha(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await dC({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ed(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;fC(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(qa(b))return;ed(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function fC(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ud=gC;function Da(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function yC({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ud(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var mC=yC;function Rd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Rd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function bC(e){return Jr(e,{...e})}function hC(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function vC(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return wC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function wC(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=kC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function kC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Fd=vC;function Vd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Bd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?xC(e,c,r,i,n,a,o,s):qd(e,c,r,i,n,a,o,s);case"boolean":return Gd(e,c,r,i,n,a,o,s);case"number":case"integer":return Hd(e,c,r,i,n,a,o,s);case"object":return Pa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return IC(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Pa(e,t,r,i,n,a,o,s){let c=Fd(t.schema??{},i).reduce((l,u)=>{let d=Bd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function qd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=ve(r.id,o,d,"placeholder"),f=si(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=ui(d,h,f,t.schema.default,""),v=l(p,m),k=CC(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function xC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),{labels:y,icons:f}=Vd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:ve(r.id,o,d,x),icon:f[x]})),m=si(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=ui(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Gd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=si(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ui(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Hd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=si(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=ui(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function IC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Vd(t.schema),I=si(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:qd,boolean:Gd,integer:Hd,object:Pa},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:ve(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Pa(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=ui(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function CC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var AC=Bd,SC={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function td(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rd(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||td(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||td(g);n[a(l.id,g)]=y}})}});let c={...SC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function id(e){return typeof e.document=="function"?e.document():e.document}function nd(e,t,r){let i=bC(e),n=Rd(i,t.inputReference);if(!hC(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Fd(a,t);return{inputSchema:a,properties:o}}function od(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=AC(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Ud(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function MC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=id(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nd(c,s,a.debug);return rd(y,i,r,i.kind),od(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(id(s)).then(g=>{let{inputSchema:y,properties:f}=nd(g,s,a.debug);rd(f,i,r,i.kind),u=od(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var jC=MC;async function $C(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return mC(e,t);case"schema":return jC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var _C=$C;function EC(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $w(o,r)),o}return i}var LC=EC;function TC(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var OC=TC,Ma="@imgly/plugin-ai-generation",NC=`
148
170
  <svg>
149
171
  <symbol
150
172
  fill="none"
@@ -162,7 +184,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
162
184
  fill="none"
163
185
  xmlns="http://www.w3.org/2000/svg"
164
186
  viewBox="0 0 24 24"
165
- id="${Sa}/image"
187
+ id="${Ma}/image"
166
188
  >
167
189
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
168
190
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -174,7 +196,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
174
196
  fill="none"
175
197
  xmlns="http://www.w3.org/2000/svg"
176
198
  viewBox="0 0 24 24"
177
- id="${Sa}/video"
199
+ id="${Ma}/video"
178
200
  >
179
201
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
180
202
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -185,11 +207,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
185
207
  fill="none"
186
208
  xmlns="http://www.w3.org/2000/svg"
187
209
  viewBox="0 0 24 24"
188
- id="${Sa}/audio"
210
+ id="${Ma}/audio"
189
211
  >
190
212
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
191
213
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
192
214
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
215
+ </symbol>
216
+ <symbol
217
+ fill="none"
218
+ xmlns="http://www.w3.org/2000/svg"
219
+ viewBox="0 0 24 24"
220
+ id="@imgly/ImageAdd"
221
+ >
222
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
223
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
224
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
225
+
193
226
  </symbol>
194
227
  <symbol
195
228
  fill="none"
@@ -205,11 +238,11 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
205
238
 
206
239
  </symbol>
207
240
  </svg>
208
- `,vA=bA;function wA(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Vd(2e3),await kA(t,e,r)):i(t,r)}async function kA(e,t,r){switch(t.kind){case"image":return xA(e,t,r);case"video":return IA(e,t,r);case"text":return AA(e,t,r);case"audio":return SA(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xA(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await yI(s,r),l=await fI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function IA(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function AA(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Kr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Kr(n,o)}else"customPrompt"in e?a=Kr(n,"custom"):a=Kr(n,"improved");else a=Kr(n,"generated");return CA(a,r.abortSignal)}async function*CA(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Vd(100)}return{kind:"text",text:e}}function Kr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function SA(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:MA(220,i),duration:i,thumbnailUrl:void 0}}function MA(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return jA(i,44100)}function jA(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vd(e){return new Promise(t=>{setTimeout(t,e)})}var $A=wA,EA="USER_CANCEL";function _A(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=vI([...e.provider.output.middleware??[],...r?.middlewares??[],kI({enable:r?.debug}),$A({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:CI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ba(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===EA?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var TA=_A;async function LA(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=yA(a),s=hA(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=TA({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gA(a,c);SI(r.cesdk,"@imgly/plugin-ai-generation",vA);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return bI.get().register(u),u}var Ma=LA;function OA(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new hw(n,r,i);return r.engine.asset.addSource(a),a.id}var NA=OA;function ei(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function DA(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ma(e,u,r,i)));o.push(...l),a=zA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ma(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ma(e,d,r,i)));o.push(...u),a=PA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=NA({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(hI)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function PA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Na(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Na(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&rd(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&rd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function zA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Na(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ga(r.id),!1).value)}var UA=DA,SX=5*60*1e3,RA=typeof global=="object"&&global&&global.Object===Object&&global,Bd=RA,FA=typeof self=="object"&&self&&self.Object===Object&&self,VA=Bd||FA||Function("return this")(),re=VA,BA=re.Symbol,xt=BA,qd=Object.prototype,qA=qd.hasOwnProperty,GA=qd.toString,Jr=xt?xt.toStringTag:void 0;function YA(e){var t=qA.call(e,Jr),r=e[Jr];try{e[Jr]=void 0;var i=!0}catch{}var n=GA.call(e);return i&&(t?e[Jr]=r:delete e[Jr]),n}var HA=YA,ZA=Object.prototype,QA=ZA.toString;function WA(e){return QA.call(e)}var KA=WA,JA="[object Null]",XA="[object Undefined]",id=xt?xt.toStringTag:void 0;function eC(e){return e==null?e===void 0?XA:JA:id&&id in Object(e)?HA(e):KA(e)}var gi=eC;function tC(e){return e!=null&&typeof e=="object"}var Ya=tC,MX=Array.isArray;function rC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gd=rC,iC="[object AsyncFunction]",nC="[object Function]",oC="[object GeneratorFunction]",aC="[object Proxy]";function lC(e){if(!Gd(e))return!1;var t=gi(e);return t==nC||t==oC||t==iC||t==aC}var sC=lC,uC=re["__core-js_shared__"],ja=uC,nd=function(){var e=/[^.]+$/.exec(ja&&ja.keys&&ja.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function cC(e){return!!nd&&nd in e}var dC=cC,pC=Function.prototype,gC=pC.toString;function fC(e){if(e!=null){try{return gC.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=fC,yC=/[\\^$.*+?()[\]{}|]/g,mC=/^\[object .+?Constructor\]$/,hC=Function.prototype,bC=Object.prototype,vC=hC.toString,wC=bC.hasOwnProperty,kC=RegExp("^"+vC.call(wC).replace(yC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xC(e){if(!Gd(e)||dC(e))return!1;var t=sC(e)?kC:mC;return t.test(Ne(e))}var IC=xC;function AC(e,t){return e?.[t]}var CC=AC;function SC(e,t){var r=CC(e,t);return IC(r)?r:void 0}var Mt=SC,MC=Mt(re,"WeakMap"),Pa=MC;function jC(e,t){return e===t||e!==e&&t!==t}var $C=jC,EC=9007199254740991;function _C(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EC}var TC=_C,jX=Object.prototype,LC="[object Arguments]";function OC(e){return Ya(e)&&gi(e)==LC}var od=OC,Yd=Object.prototype,NC=Yd.hasOwnProperty,DC=Yd.propertyIsEnumerable,$X=od(function(){return arguments}())?od:function(e){return Ya(e)&&NC.call(e,"callee")&&!DC.call(e,"callee")},Hd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ad=Hd&&typeof module=="object"&&module&&!module.nodeType&&module,PC=ad&&ad.exports===Hd,ld=PC?re.Buffer:void 0,EX=ld?ld.isBuffer:void 0,zC="[object Arguments]",UC="[object Array]",RC="[object Boolean]",FC="[object Date]",VC="[object Error]",BC="[object Function]",qC="[object Map]",GC="[object Number]",YC="[object Object]",HC="[object RegExp]",ZC="[object Set]",QC="[object String]",WC="[object WeakMap]",KC="[object ArrayBuffer]",JC="[object DataView]",XC="[object Float32Array]",eS="[object Float64Array]",tS="[object Int8Array]",rS="[object Int16Array]",iS="[object Int32Array]",nS="[object Uint8Array]",oS="[object Uint8ClampedArray]",aS="[object Uint16Array]",lS="[object Uint32Array]",P={};P[XC]=P[eS]=P[tS]=P[rS]=P[iS]=P[nS]=P[oS]=P[aS]=P[lS]=!0;P[zC]=P[UC]=P[KC]=P[RC]=P[JC]=P[FC]=P[VC]=P[BC]=P[qC]=P[GC]=P[YC]=P[HC]=P[ZC]=P[QC]=P[WC]=!1;function sS(e){return Ya(e)&&TC(e.length)&&!!P[gi(e)]}var uS=sS;function cS(e){return function(t){return e(t)}}var dS=cS,Zd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ii=Zd&&typeof module=="object"&&module&&!module.nodeType&&module,pS=ii&&ii.exports===Zd,$a=pS&&Bd.process,gS=function(){try{var e=ii&&ii.require&&ii.require("util").types;return e||$a&&$a.binding&&$a.binding("util")}catch{}}(),sd=gS,ud=sd&&sd.isTypedArray,_X=ud?dS(ud):uS,fS=Object.prototype,TX=fS.hasOwnProperty;function yS(e,t){return function(r){return e(t(r))}}var mS=yS,LX=mS(Object.keys,Object),hS=Object.prototype,OX=hS.hasOwnProperty,bS=Mt(Object,"create"),ai=bS;function vS(){this.__data__=ai?ai(null):{},this.size=0}var wS=vS;function kS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var xS=kS,IS="__lodash_hash_undefined__",AS=Object.prototype,CS=AS.hasOwnProperty;function SS(e){var t=this.__data__;if(ai){var r=t[e];return r===IS?void 0:r}return CS.call(t,e)?t[e]:void 0}var MS=SS,jS=Object.prototype,$S=jS.hasOwnProperty;function ES(e){var t=this.__data__;return ai?t[e]!==void 0:$S.call(t,e)}var _S=ES,TS="__lodash_hash_undefined__";function LS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?TS:t,this}var OS=LS;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=wS;jt.prototype.delete=xS;jt.prototype.get=MS;jt.prototype.has=_S;jt.prototype.set=OS;var cd=jt;function NS(){this.__data__=[],this.size=0}var DS=NS;function PS(e,t){for(var r=e.length;r--;)if($C(e[r][0],t))return r;return-1}var Xn=PS,zS=Array.prototype,US=zS.splice;function RS(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():US.call(t,r,1),--this.size,!0}var FS=RS;function VS(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var BS=VS;function qS(e){return Xn(this.__data__,e)>-1}var GS=qS;function YS(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HS=YS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=DS;$t.prototype.delete=FS;$t.prototype.get=BS;$t.prototype.has=GS;$t.prototype.set=HS;var eo=$t,ZS=Mt(re,"Map"),li=ZS;function QS(){this.size=0,this.__data__={hash:new cd,map:new(li||eo),string:new cd}}var WS=QS;function KS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var JS=KS;function XS(e,t){var r=e.__data__;return JS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=XS;function eM(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var tM=eM;function rM(e){return to(this,e).get(e)}var iM=rM;function nM(e){return to(this,e).has(e)}var oM=nM;function aM(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var lM=aM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=WS;Et.prototype.delete=tM;Et.prototype.get=iM;Et.prototype.has=oM;Et.prototype.set=lM;var Qd=Et;function sM(){this.__data__=new eo,this.size=0}var uM=sM;function cM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dM=cM;function pM(e){return this.__data__.get(e)}var gM=pM;function fM(e){return this.__data__.has(e)}var yM=fM,mM=200;function hM(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!li||i.length<mM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qd(i)}return r.set(e,t),this.size=r.size,this}var bM=hM;function fi(e){var t=this.__data__=new eo(e);this.size=t.size}fi.prototype.clear=uM;fi.prototype.delete=dM;fi.prototype.get=gM;fi.prototype.has=yM;fi.prototype.set=bM;var vM=Object.prototype,NX=vM.propertyIsEnumerable,wM=Mt(re,"DataView"),za=wM,kM=Mt(re,"Promise"),Ua=kM,xM=Mt(re,"Set"),Ra=xM,dd="[object Map]",IM="[object Object]",pd="[object Promise]",gd="[object Set]",fd="[object WeakMap]",yd="[object DataView]",AM=Ne(za),CM=Ne(li),SM=Ne(Ua),MM=Ne(Ra),jM=Ne(Pa),vt=gi;(za&&vt(new za(new ArrayBuffer(1)))!=yd||li&&vt(new li)!=dd||Ua&&vt(Ua.resolve())!=pd||Ra&&vt(new Ra)!=gd||Pa&&vt(new Pa)!=fd)&&(vt=function(e){var t=gi(e),r=t==IM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case AM:return yd;case CM:return dd;case SM:return pd;case MM:return gd;case jM:return fd}return t});var DX=re.Uint8Array,$M="__lodash_hash_undefined__";function EM(e){return this.__data__.set(e,$M),this}var _M=EM;function TM(e){return this.__data__.has(e)}var LM=TM;function Fa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qd;++t<r;)this.add(e[t])}Fa.prototype.add=Fa.prototype.push=_M;Fa.prototype.has=LM;var md=xt?xt.prototype:void 0,PX=md?md.valueOf:void 0,OM=Object.prototype,zX=OM.hasOwnProperty,NM=Object.prototype,UX=NM.hasOwnProperty,RX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),FX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),VX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function DM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Wd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return DM(i,t)}function PM(e){return e==null?[]:Array.isArray(e)?e:[e]}var hd=PM;function zM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function UM(e){return typeof e?.translate=="function"}function RM(e,t,r){return e&&zM(e)&&UM(e.i18n)?e.i18n.translate(t):r}var ti="@imgly/plugin-ai-video-generation-web";var ro="createVideo",bd=`ly.img.${ro}`,FM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,vd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${ro}`;function VM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var BM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${vd}`]:"Create Video...",[`${vd}.description`]:"Create a video from the image"}}),{id:bd,type:"quick",kind:"image",label:`${FM}`,enable:_I(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${bd}.button`,{label:VM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Wd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),qM=BM,io="animateBetweenImages",wd=`ly.img.${io}`,GM=`ly.img.plugin-ai-video-generation-web.quickAction.${io}`,kd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${io}`;function YM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var HM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${kd}`]:"Animate Between Images...",[`${kd}.description`]:"Create a video transitioning between two images"}}),{id:wd,type:"quick",kind:"image",label:`${GM}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${wd}.button`,{label:YM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Wd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),ZM=HM,he="ly.img.ai.video-generation";function QM(e){return{async initialize({cesdk:t}){if(t==null)return;MI(t,ti,"1.82.0"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${he}`]:"Video Generation",[`${he}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),WM(e);let i=Qn.get().register({type:"plugin",sceneMode:"Video",id:ti,pluginId:ti,label:RM(t,r,"Generate Video"),labelKey:r,meta:{panelId:he},execute:()=>{t.ui.isPanelOpen(he)?t.ui.closePanel(he):t.ui.openPanel(he)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(hd(n).map(l=>l({cesdk:t}))),s=await Promise.all(hd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await UA("video",{fromText:o,fromImage:s},{cesdk:t},e);Qn.get().register(qM({cesdk:t})),Qn.get().register(ZM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(he,c.panel.builderRenderFunction),$I({cesdk:t,panelId:he})):i()}}}function WM(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var KM=QM,JM=e=>({name:ti,version:"1.82.0",...KM(e)}),Kd=JM;var XM=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Lt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Lt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Lt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Lt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Lt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Lt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Lt(n,t,a)}return e}var ej=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},tj=typeof global=="object"&&global&&global.Object===Object&&global,Pp=tj,rj=typeof self=="object"&&self&&self.Object===Object&&self,ij=Pp||rj||Function("return this")(),ie=ij,nj=ie.Symbol,Ot=nj,zp=Object.prototype,oj=zp.hasOwnProperty,aj=zp.toString,yi=Ot?Ot.toStringTag:void 0;function lj(e){var t=oj.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=aj.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var sj=lj,uj=Object.prototype,cj=uj.toString;function dj(e){return cj.call(e)}var pj=dj,gj="[object Null]",fj="[object Undefined]",Jd=Ot?Ot.toStringTag:void 0;function yj(e){return e==null?e===void 0?fj:gj:Jd&&Jd in Object(e)?sj(e):pj(e)}var Si=yj;function mj(e){return e!=null&&typeof e=="object"}var pl=mj,YX=Array.isArray;function hj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Up=hj,bj="[object AsyncFunction]",vj="[object Function]",wj="[object GeneratorFunction]",kj="[object Proxy]";function xj(e){if(!Up(e))return!1;var t=Si(e);return t==vj||t==wj||t==bj||t==kj}var Ij=xj,Aj=ie["__core-js_shared__"],Ha=Aj,Xd=function(){var e=/[^.]+$/.exec(Ha&&Ha.keys&&Ha.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Cj(e){return!!Xd&&Xd in e}var Sj=Cj,Mj=Function.prototype,jj=Mj.toString;function $j(e){if(e!=null){try{return jj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=$j,Ej=/[\\^$.*+?()[\]{}|]/g,_j=/^\[object .+?Constructor\]$/,Tj=Function.prototype,Lj=Object.prototype,Oj=Tj.toString,Nj=Lj.hasOwnProperty,Dj=RegExp("^"+Oj.call(Nj).replace(Ej,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pj(e){if(!Up(e)||Sj(e))return!1;var t=Ij(e)?Dj:_j;return t.test(ze(e))}var zj=Pj;function Uj(e,t){return e?.[t]}var Rj=Uj;function Fj(e,t){var r=Rj(e,t);return zj(r)?r:void 0}var Dt=Fj,Vj=Dt(ie,"WeakMap"),el=Vj;function Bj(e,t){return e===t||e!==e&&t!==t}var qj=Bj,Gj=9007199254740991;function Yj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Gj}var Hj=Yj,HX=Object.prototype,Zj="[object Arguments]";function Qj(e){return pl(e)&&Si(e)==Zj}var ep=Qj,Rp=Object.prototype,Wj=Rp.hasOwnProperty,Kj=Rp.propertyIsEnumerable,ZX=ep(function(){return arguments}())?ep:function(e){return pl(e)&&Wj.call(e,"callee")&&!Kj.call(e,"callee")},Fp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tp=Fp&&typeof module=="object"&&module&&!module.nodeType&&module,Jj=tp&&tp.exports===Fp,rp=Jj?ie.Buffer:void 0,QX=rp?rp.isBuffer:void 0,Xj="[object Arguments]",e$="[object Array]",t$="[object Boolean]",r$="[object Date]",i$="[object Error]",n$="[object Function]",o$="[object Map]",a$="[object Number]",l$="[object Object]",s$="[object RegExp]",u$="[object Set]",c$="[object String]",d$="[object WeakMap]",p$="[object ArrayBuffer]",g$="[object DataView]",f$="[object Float32Array]",y$="[object Float64Array]",m$="[object Int8Array]",h$="[object Int16Array]",b$="[object Int32Array]",v$="[object Uint8Array]",w$="[object Uint8ClampedArray]",k$="[object Uint16Array]",x$="[object Uint32Array]",z={};z[f$]=z[y$]=z[m$]=z[h$]=z[b$]=z[v$]=z[w$]=z[k$]=z[x$]=!0;z[Xj]=z[e$]=z[p$]=z[t$]=z[g$]=z[r$]=z[i$]=z[n$]=z[o$]=z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=!1;function I$(e){return pl(e)&&Hj(e.length)&&!!z[Si(e)]}var A$=I$;function C$(e){return function(t){return e(t)}}var S$=C$,Vp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Vp&&typeof module=="object"&&module&&!module.nodeType&&module,M$=wi&&wi.exports===Vp,Za=M$&&Pp.process,j$=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Za&&Za.binding&&Za.binding("util")}catch{}}(),ip=j$,np=ip&&ip.isTypedArray,WX=np?S$(np):A$,$$=Object.prototype,KX=$$.hasOwnProperty;function E$(e,t){return function(r){return e(t(r))}}var _$=E$,JX=_$(Object.keys,Object),T$=Object.prototype,XX=T$.hasOwnProperty,L$=Dt(Object,"create"),xi=L$;function O$(){this.__data__=xi?xi(null):{},this.size=0}var N$=O$;function D$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var P$=D$,z$="__lodash_hash_undefined__",U$=Object.prototype,R$=U$.hasOwnProperty;function F$(e){var t=this.__data__;if(xi){var r=t[e];return r===z$?void 0:r}return R$.call(t,e)?t[e]:void 0}var V$=F$,B$=Object.prototype,q$=B$.hasOwnProperty;function G$(e){var t=this.__data__;return xi?t[e]!==void 0:q$.call(t,e)}var Y$=G$,H$="__lodash_hash_undefined__";function Z$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xi&&t===void 0?H$:t,this}var Q$=Z$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=N$;Pt.prototype.delete=P$;Pt.prototype.get=V$;Pt.prototype.has=Y$;Pt.prototype.set=Q$;var op=Pt;function W$(){this.__data__=[],this.size=0}var K$=W$;function J$(e,t){for(var r=e.length;r--;)if(qj(e[r][0],t))return r;return-1}var no=J$,X$=Array.prototype,eE=X$.splice;function tE(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eE.call(t,r,1),--this.size,!0}var rE=tE;function iE(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var nE=iE;function oE(e){return no(this.__data__,e)>-1}var aE=oE;function lE(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sE=lE;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=K$;zt.prototype.delete=rE;zt.prototype.get=nE;zt.prototype.has=aE;zt.prototype.set=sE;var oo=zt,uE=Dt(ie,"Map"),Ii=uE;function cE(){this.size=0,this.__data__={hash:new op,map:new(Ii||oo),string:new op}}var dE=cE;function pE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gE=pE;function fE(e,t){var r=e.__data__;return gE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=fE;function yE(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var mE=yE;function hE(e){return ao(this,e).get(e)}var bE=hE;function vE(e){return ao(this,e).has(e)}var wE=vE;function kE(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xE=kE;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=dE;Ut.prototype.delete=mE;Ut.prototype.get=bE;Ut.prototype.has=wE;Ut.prototype.set=xE;var Bp=Ut;function IE(){this.__data__=new oo,this.size=0}var AE=IE;function CE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SE=CE;function ME(e){return this.__data__.get(e)}var jE=ME;function $E(e){return this.__data__.has(e)}var EE=$E,_E=200;function TE(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Ii||i.length<_E-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Bp(i)}return r.set(e,t),this.size=r.size,this}var LE=TE;function Mi(e){var t=this.__data__=new oo(e);this.size=t.size}Mi.prototype.clear=AE;Mi.prototype.delete=SE;Mi.prototype.get=jE;Mi.prototype.has=EE;Mi.prototype.set=LE;var OE=Object.prototype,eee=OE.propertyIsEnumerable,NE=Dt(ie,"DataView"),tl=NE,DE=Dt(ie,"Promise"),rl=DE,PE=Dt(ie,"Set"),il=PE,ap="[object Map]",zE="[object Object]",lp="[object Promise]",sp="[object Set]",up="[object WeakMap]",cp="[object DataView]",UE=ze(tl),RE=ze(Ii),FE=ze(rl),VE=ze(il),BE=ze(el),_t=Si;(tl&&_t(new tl(new ArrayBuffer(1)))!=cp||Ii&&_t(new Ii)!=ap||rl&&_t(rl.resolve())!=lp||il&&_t(new il)!=sp||el&&_t(new el)!=up)&&(_t=function(e){var t=Si(e),r=t==zE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case UE:return cp;case RE:return ap;case FE:return lp;case VE:return sp;case BE:return up}return t});var tee=ie.Uint8Array,qE="__lodash_hash_undefined__";function GE(e){return this.__data__.set(e,qE),this}var YE=GE;function HE(e){return this.__data__.has(e)}var ZE=HE;function nl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Bp;++t<r;)this.add(e[t])}nl.prototype.add=nl.prototype.push=YE;nl.prototype.has=ZE;var dp=Ot?Ot.prototype:void 0,ree=dp?dp.valueOf:void 0,QE=Object.prototype,iee=QE.hasOwnProperty,WE=Object.prototype,nee=WE.hasOwnProperty,oee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),aee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),lee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function qp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function KE(e,t){let r=await qp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function JE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return qp(i,t)}function XE(e){return e!==void 0}var e_=XE;function gl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function $i(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Gp=class Yp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Yp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},t_=class Hp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Hp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function r_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function i_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var n_=i_,Qa="ly.img.ai.temp";async function o_(e,t){return e.engine.asset.findAllSources().includes(Qa)||e.engine.asset.addLocalSource(Qa),e.engine.asset.apply(Qa,t)}function a_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Zp(){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 l_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function s_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function fl(e){return e instanceof Error&&e.name==="AbortError"}function u_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function c_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
241
+ `,DC=NC;function PC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Yd(2e3),await zC(t,e,r)):i(t,r)}async function zC(e,t,r){switch(t.kind){case"image":return UC(e,t,r);case"video":return RC(e,t,r);case"text":return FC(e,t,r);case"audio":return BC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function UC(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await jI(s,r),l=await MI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
242
+ `,"+")}`}}async function RC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function FC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return VC(a,r.abortSignal)}async function*VC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Yd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function BC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:qC(220,i),duration:i,thumbnailUrl:void 0}}function qC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return GC(i,44100)}function GC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Yd(e){return new Promise(t=>{setTimeout(t,e)})}var HC=PC,YC="USER_CANCEL";function ZC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=DI([...e.provider.output.middleware??[],...r?.middlewares??[],zI({enable:r?.debug}),HC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:VI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return qa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===YC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var QC=ZC;async function WC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=LC(a),s=OC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=QC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _C(a,c);BI(r.cesdk,"@imgly/plugin-ai-generation",DC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return NI.get().register(u),u}var ja=WC;function KC(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _w(n,r,i);return r.engine.asset.addSource(a),a.id}var JC=KC;function Yn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function XC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ja(e,u,r,i)));o.push(...l),a=tA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ja(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ja(e,d,r,i)));o.push(...u),a=eA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=JC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_I)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function eA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Da(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Da(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Yn(e,`${A}.label`),icon:f.value!==A&&rA(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:Yn(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Yn(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function tA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Da(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Yn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rA(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ha(r.id),!1).value)}var iA=XC,WX=5*60*1e3,nA=typeof global=="object"&&global&&global.Object===Object&&global,Zd=nA,oA=typeof self=="object"&&self&&self.Object===Object&&self,aA=Zd||oA||Function("return this")(),re=aA,lA=re.Symbol,It=lA,Qd=Object.prototype,sA=Qd.hasOwnProperty,uA=Qd.toString,Kr=It?It.toStringTag:void 0;function cA(e){var t=sA.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=uA.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var dA=cA,pA=Object.prototype,gA=pA.toString;function fA(e){return gA.call(e)}var yA=fA,mA="[object Null]",bA="[object Undefined]",ad=It?It.toStringTag:void 0;function hA(e){return e==null?e===void 0?bA:mA:ad&&ad in Object(e)?dA(e):yA(e)}var di=hA;function vA(e){return e!=null&&typeof e=="object"}var Ya=vA,KX=Array.isArray;function wA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wd=wA,kA="[object AsyncFunction]",xA="[object Function]",IA="[object GeneratorFunction]",CA="[object Proxy]";function AA(e){if(!Wd(e))return!1;var t=di(e);return t==xA||t==IA||t==kA||t==CA}var SA=AA,MA=re["__core-js_shared__"],$a=MA,ld=function(){var e=/[^.]+$/.exec($a&&$a.keys&&$a.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jA(e){return!!ld&&ld in e}var $A=jA,_A=Function.prototype,EA=_A.toString;function LA(e){if(e!=null){try{return EA.call(e)}catch{}try{return e+""}catch{}}return""}var De=LA,TA=/[\\^$.*+?()[\]{}|]/g,OA=/^\[object .+?Constructor\]$/,NA=Function.prototype,DA=Object.prototype,PA=NA.toString,zA=DA.hasOwnProperty,UA=RegExp("^"+PA.call(zA).replace(TA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RA(e){if(!Wd(e)||$A(e))return!1;var t=SA(e)?UA:OA;return t.test(De(e))}var FA=RA;function VA(e,t){return e?.[t]}var BA=VA;function qA(e,t){var r=BA(e,t);return FA(r)?r:void 0}var jt=qA,GA=jt(re,"WeakMap"),za=GA;function HA(e,t){return e===t||e!==e&&t!==t}var YA=HA,ZA=9007199254740991;function QA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ZA}var WA=QA,JX=Object.prototype,KA="[object Arguments]";function JA(e){return Ya(e)&&di(e)==KA}var sd=JA,Kd=Object.prototype,XA=Kd.hasOwnProperty,eS=Kd.propertyIsEnumerable,XX=sd(function(){return arguments}())?sd:function(e){return Ya(e)&&XA.call(e,"callee")&&!eS.call(e,"callee")},Jd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ud=Jd&&typeof module=="object"&&module&&!module.nodeType&&module,tS=ud&&ud.exports===Jd,cd=tS?re.Buffer:void 0,eee=cd?cd.isBuffer:void 0,rS="[object Arguments]",iS="[object Array]",nS="[object Boolean]",oS="[object Date]",aS="[object Error]",lS="[object Function]",sS="[object Map]",uS="[object Number]",cS="[object Object]",dS="[object RegExp]",pS="[object Set]",gS="[object String]",fS="[object WeakMap]",yS="[object ArrayBuffer]",mS="[object DataView]",bS="[object Float32Array]",hS="[object Float64Array]",vS="[object Int8Array]",wS="[object Int16Array]",kS="[object Int32Array]",xS="[object Uint8Array]",IS="[object Uint8ClampedArray]",CS="[object Uint16Array]",AS="[object Uint32Array]",z={};z[bS]=z[hS]=z[vS]=z[wS]=z[kS]=z[xS]=z[IS]=z[CS]=z[AS]=!0;z[rS]=z[iS]=z[yS]=z[nS]=z[mS]=z[oS]=z[aS]=z[lS]=z[sS]=z[uS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=!1;function SS(e){return Ya(e)&&WA(e.length)&&!!z[di(e)]}var MS=SS;function jS(e){return function(t){return e(t)}}var $S=jS,Xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=Xd&&typeof module=="object"&&module&&!module.nodeType&&module,_S=ti&&ti.exports===Xd,_a=_S&&Zd.process,ES=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||_a&&_a.binding&&_a.binding("util")}catch{}}(),dd=ES,pd=dd&&dd.isTypedArray,tee=pd?$S(pd):MS,LS=Object.prototype,ree=LS.hasOwnProperty;function TS(e,t){return function(r){return e(t(r))}}var OS=TS,iee=OS(Object.keys,Object),NS=Object.prototype,nee=NS.hasOwnProperty,DS=jt(Object,"create"),ni=DS;function PS(){this.__data__=ni?ni(null):{},this.size=0}var zS=PS;function US(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RS=US,FS="__lodash_hash_undefined__",VS=Object.prototype,BS=VS.hasOwnProperty;function qS(e){var t=this.__data__;if(ni){var r=t[e];return r===FS?void 0:r}return BS.call(t,e)?t[e]:void 0}var GS=qS,HS=Object.prototype,YS=HS.hasOwnProperty;function ZS(e){var t=this.__data__;return ni?t[e]!==void 0:YS.call(t,e)}var QS=ZS,WS="__lodash_hash_undefined__";function KS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?WS:t,this}var JS=KS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=zS;$t.prototype.delete=RS;$t.prototype.get=GS;$t.prototype.has=QS;$t.prototype.set=JS;var gd=$t;function XS(){this.__data__=[],this.size=0}var eM=XS;function tM(e,t){for(var r=e.length;r--;)if(YA(e[r][0],t))return r;return-1}var Kn=tM,rM=Array.prototype,iM=rM.splice;function nM(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iM.call(t,r,1),--this.size,!0}var oM=nM;function aM(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var lM=aM;function sM(e){return Kn(this.__data__,e)>-1}var uM=sM;function cM(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dM=cM;function _t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}_t.prototype.clear=eM;_t.prototype.delete=oM;_t.prototype.get=lM;_t.prototype.has=uM;_t.prototype.set=dM;var Jn=_t,pM=jt(re,"Map"),oi=pM;function gM(){this.size=0,this.__data__={hash:new gd,map:new(oi||Jn),string:new gd}}var fM=gM;function yM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mM=yM;function bM(e,t){var r=e.__data__;return mM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=bM;function hM(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var vM=hM;function wM(e){return Xn(this,e).get(e)}var kM=wM;function xM(e){return Xn(this,e).has(e)}var IM=xM;function CM(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AM=CM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=fM;Et.prototype.delete=vM;Et.prototype.get=kM;Et.prototype.has=IM;Et.prototype.set=AM;var ep=Et;function SM(){this.__data__=new Jn,this.size=0}var MM=SM;function jM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $M=jM;function _M(e){return this.__data__.get(e)}var EM=_M;function LM(e){return this.__data__.has(e)}var TM=LM,OM=200;function NM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!oi||i.length<OM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ep(i)}return r.set(e,t),this.size=r.size,this}var DM=NM;function pi(e){var t=this.__data__=new Jn(e);this.size=t.size}pi.prototype.clear=MM;pi.prototype.delete=$M;pi.prototype.get=EM;pi.prototype.has=TM;pi.prototype.set=DM;var PM=Object.prototype,oee=PM.propertyIsEnumerable,zM=jt(re,"DataView"),Ua=zM,UM=jt(re,"Promise"),Ra=UM,RM=jt(re,"Set"),Fa=RM,fd="[object Map]",FM="[object Object]",yd="[object Promise]",md="[object Set]",bd="[object WeakMap]",hd="[object DataView]",VM=De(Ua),BM=De(oi),qM=De(Ra),GM=De(Fa),HM=De(za),wt=di;(Ua&&wt(new Ua(new ArrayBuffer(1)))!=hd||oi&&wt(new oi)!=fd||Ra&&wt(Ra.resolve())!=yd||Fa&&wt(new Fa)!=md||za&&wt(new za)!=bd)&&(wt=function(e){var t=di(e),r=t==FM?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case VM:return hd;case BM:return fd;case qM:return yd;case GM:return md;case HM:return bd}return t});var aee=re.Uint8Array,YM="__lodash_hash_undefined__";function ZM(e){return this.__data__.set(e,YM),this}var QM=ZM;function WM(e){return this.__data__.has(e)}var KM=WM;function Va(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ep;++t<r;)this.add(e[t])}Va.prototype.add=Va.prototype.push=QM;Va.prototype.has=KM;var vd=It?It.prototype:void 0,lee=vd?vd.valueOf:void 0,JM=Object.prototype,see=JM.hasOwnProperty,XM=Object.prototype,uee=XM.hasOwnProperty,cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ej(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function tp(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ej(i,t)}function tj(e){return e==null?[]:Array.isArray(e)?e:[e]}var wd=tj;function rj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ij(e){return typeof e?.translate=="function"}function nj(e,t,r){return e&&rj(e)&&ij(e.i18n)?e.i18n.translate(t):r}var Xr="@imgly/plugin-ai-video-generation-web";var eo="createVideo",kd=`ly.img.${eo}`,oj=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,xd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function aj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var lj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${xd}`]:"Create Video from Reference...",[`${xd}.description`]:"Create a video from the selected image"}}),{id:kd,type:"quick",kind:"image",label:`${oj}`,enable:ZI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${kd}.button`,{label:aj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",isDisabled:!TI(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await tp(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",n),OI(e,n,o),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),sj=lj,to="animateBetweenImages",Id=`ly.img.${to}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,Cd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${Cd}`]:"Animate Between Images...",[`${Cd}.description`]:"Create a video transitioning between two images"}}),{id:Id,type:"quick",kind:"image",label:`${uj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Id}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>tp(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),pj=dj,be="ly.img.ai.video-generation";function gj(e){return{async initialize({cesdk:t}){if(t==null)return;qI(t,Xr,"1.83.0-nightly.20260918"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Xr}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),fj(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:Xr,pluginId:Xr,label:nj(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(wd(n).map(l=>l({cesdk:t}))),s=await Promise.all(wd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await iA("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(sj({cesdk:t})),Hn.get().register(pj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),HI({cesdk:t,panelId:be})):i()}}}function fj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var yj=gj,mj=e=>({name:Xr,version:"1.83.0-nightly.20260918",...yj(e)}),rp=mj;function bj(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var xe=bj,hj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Ot(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Ot(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Ot(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Ot(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Ot(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Ot(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Ot(n,t,a)}return e}var vj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wj=typeof global=="object"&&global&&global.Object===Object&&global,Fp=wj,kj=typeof self=="object"&&self&&self.Object===Object&&self,xj=Fp||kj||Function("return this")(),ie=xj,Ij=ie.Symbol,Nt=Ij,Vp=Object.prototype,Cj=Vp.hasOwnProperty,Aj=Vp.toString,gi=Nt?Nt.toStringTag:void 0;function Sj(e){var t=Cj.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=Aj.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var Mj=Sj,jj=Object.prototype,$j=jj.toString;function _j(e){return $j.call(e)}var Ej=_j,Lj="[object Null]",Tj="[object Undefined]",ip=Nt?Nt.toStringTag:void 0;function Oj(e){return e==null?e===void 0?Tj:Lj:ip&&ip in Object(e)?Mj(e):Ej(e)}var Ii=Oj;function Nj(e){return e!=null&&typeof e=="object"}var gl=Nj,mee=Array.isArray;function Dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bp=Dj,Pj="[object AsyncFunction]",zj="[object Function]",Uj="[object GeneratorFunction]",Rj="[object Proxy]";function Fj(e){if(!Bp(e))return!1;var t=Ii(e);return t==zj||t==Uj||t==Pj||t==Rj}var Vj=Fj,Bj=ie["__core-js_shared__"],Za=Bj,np=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qj(e){return!!np&&np in e}var Gj=qj,Hj=Function.prototype,Yj=Hj.toString;function Zj(e){if(e!=null){try{return Yj.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=Zj,Qj=/[\\^$.*+?()[\]{}|]/g,Wj=/^\[object .+?Constructor\]$/,Kj=Function.prototype,Jj=Object.prototype,Xj=Kj.toString,e$=Jj.hasOwnProperty,t$=RegExp("^"+Xj.call(e$).replace(Qj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function r$(e){if(!Bp(e)||Gj(e))return!1;var t=Vj(e)?t$:Wj;return t.test(Ue(e))}var i$=r$;function n$(e,t){return e?.[t]}var o$=n$;function a$(e,t){var r=o$(e,t);return i$(r)?r:void 0}var Pt=a$,l$=Pt(ie,"WeakMap"),tl=l$;function s$(e,t){return e===t||e!==e&&t!==t}var u$=s$,c$=9007199254740991;function d$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c$}var p$=d$,bee=Object.prototype,g$="[object Arguments]";function f$(e){return gl(e)&&Ii(e)==g$}var op=f$,qp=Object.prototype,y$=qp.hasOwnProperty,m$=qp.propertyIsEnumerable,hee=op(function(){return arguments}())?op:function(e){return gl(e)&&y$.call(e,"callee")&&!m$.call(e,"callee")},Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,b$=ap&&ap.exports===Gp,lp=b$?ie.Buffer:void 0,vee=lp?lp.isBuffer:void 0,h$="[object Arguments]",v$="[object Array]",w$="[object Boolean]",k$="[object Date]",x$="[object Error]",I$="[object Function]",C$="[object Map]",A$="[object Number]",S$="[object Object]",M$="[object RegExp]",j$="[object Set]",$$="[object String]",_$="[object WeakMap]",E$="[object ArrayBuffer]",L$="[object DataView]",T$="[object Float32Array]",O$="[object Float64Array]",N$="[object Int8Array]",D$="[object Int16Array]",P$="[object Int32Array]",z$="[object Uint8Array]",U$="[object Uint8ClampedArray]",R$="[object Uint16Array]",F$="[object Uint32Array]",U={};U[T$]=U[O$]=U[N$]=U[D$]=U[P$]=U[z$]=U[U$]=U[R$]=U[F$]=!0;U[h$]=U[v$]=U[E$]=U[w$]=U[L$]=U[k$]=U[x$]=U[I$]=U[C$]=U[A$]=U[S$]=U[M$]=U[j$]=U[$$]=U[_$]=!1;function V$(e){return gl(e)&&p$(e.length)&&!!U[Ii(e)]}var B$=V$;function q$(e){return function(t){return e(t)}}var G$=q$,Hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=Hp&&typeof module=="object"&&module&&!module.nodeType&&module,H$=bi&&bi.exports===Hp,Qa=H$&&Fp.process,Y$=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),sp=Y$,up=sp&&sp.isTypedArray,wee=up?G$(up):B$,Z$=Object.prototype,kee=Z$.hasOwnProperty;function Q$(e,t){return function(r){return e(t(r))}}var W$=Q$,xee=W$(Object.keys,Object),K$=Object.prototype,Iee=K$.hasOwnProperty,J$=Pt(Object,"create"),vi=J$;function X$(){this.__data__=vi?vi(null):{},this.size=0}var e_=X$;function t_(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var r_=t_,i_="__lodash_hash_undefined__",n_=Object.prototype,o_=n_.hasOwnProperty;function a_(e){var t=this.__data__;if(vi){var r=t[e];return r===i_?void 0:r}return o_.call(t,e)?t[e]:void 0}var l_=a_,s_=Object.prototype,u_=s_.hasOwnProperty;function c_(e){var t=this.__data__;return vi?t[e]!==void 0:u_.call(t,e)}var d_=c_,p_="__lodash_hash_undefined__";function g_(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vi&&t===void 0?p_:t,this}var f_=g_;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=e_;zt.prototype.delete=r_;zt.prototype.get=l_;zt.prototype.has=d_;zt.prototype.set=f_;var cp=zt;function y_(){this.__data__=[],this.size=0}var m_=y_;function b_(e,t){for(var r=e.length;r--;)if(u$(e[r][0],t))return r;return-1}var io=b_,h_=Array.prototype,v_=h_.splice;function w_(e){var t=this.__data__,r=io(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():v_.call(t,r,1),--this.size,!0}var k_=w_;function x_(e){var t=this.__data__,r=io(t,e);return r<0?void 0:t[r][1]}var I_=x_;function C_(e){return io(this.__data__,e)>-1}var A_=C_;function S_(e,t){var r=this.__data__,i=io(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var M_=S_;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=m_;Ut.prototype.delete=k_;Ut.prototype.get=I_;Ut.prototype.has=A_;Ut.prototype.set=M_;var no=Ut,j_=Pt(ie,"Map"),wi=j_;function $_(){this.size=0,this.__data__={hash:new cp,map:new(wi||no),string:new cp}}var __=$_;function E_(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var L_=E_;function T_(e,t){var r=e.__data__;return L_(t)?r[typeof t=="string"?"string":"hash"]:r.map}var oo=T_;function O_(e){var t=oo(this,e).delete(e);return this.size-=t?1:0,t}var N_=O_;function D_(e){return oo(this,e).get(e)}var P_=D_;function z_(e){return oo(this,e).has(e)}var U_=z_;function R_(e,t){var r=oo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var F_=R_;function Rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Rt.prototype.clear=__;Rt.prototype.delete=N_;Rt.prototype.get=P_;Rt.prototype.has=U_;Rt.prototype.set=F_;var Yp=Rt;function V_(){this.__data__=new no,this.size=0}var B_=V_;function q_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var G_=q_;function H_(e){return this.__data__.get(e)}var Y_=H_;function Z_(e){return this.__data__.has(e)}var Q_=Z_,W_=200;function K_(e,t){var r=this.__data__;if(r instanceof no){var i=r.__data__;if(!wi||i.length<W_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var J_=K_;function Ci(e){var t=this.__data__=new no(e);this.size=t.size}Ci.prototype.clear=B_;Ci.prototype.delete=G_;Ci.prototype.get=Y_;Ci.prototype.has=Q_;Ci.prototype.set=J_;var X_=Object.prototype,Cee=X_.propertyIsEnumerable,eE=Pt(ie,"DataView"),rl=eE,tE=Pt(ie,"Promise"),il=tE,rE=Pt(ie,"Set"),nl=rE,dp="[object Map]",iE="[object Object]",pp="[object Promise]",gp="[object Set]",fp="[object WeakMap]",yp="[object DataView]",nE=Ue(rl),oE=Ue(wi),aE=Ue(il),lE=Ue(nl),sE=Ue(tl),Lt=Ii;(rl&&Lt(new rl(new ArrayBuffer(1)))!=yp||wi&&Lt(new wi)!=dp||il&&Lt(il.resolve())!=pp||nl&&Lt(new nl)!=gp||tl&&Lt(new tl)!=fp)&&(Lt=function(e){var t=Ii(e),r=t==iE?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case nE:return yp;case oE:return dp;case aE:return pp;case lE:return gp;case sE:return fp}return t});var Aee=ie.Uint8Array,uE="__lodash_hash_undefined__";function cE(e){return this.__data__.set(e,uE),this}var dE=cE;function pE(e){return this.__data__.has(e)}var gE=pE;function ol(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}ol.prototype.add=ol.prototype.push=dE;ol.prototype.has=gE;var mp=Nt?Nt.prototype:void 0,See=mp?mp.valueOf:void 0,fE=Object.prototype,Mee=fE.hasOwnProperty,yE=Object.prototype,jee=yE.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Zp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function mE(e,t){let r=await Zp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function bE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Zp(i,t)}function hE(e){return e!==void 0}var vE=hE;function Ai(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function fl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Qp=class Wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},wE=class Kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function kE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function xE({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var IE=xE,Wa="ly.img.ai.temp";async function CE(e,t){return e.engine.asset.findAllSources().includes(Wa)||e.engine.asset.addLocalSource(Wa),e.engine.asset.apply(Wa,t)}function AE(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Jp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function SE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function ME(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function yl(e){return e instanceof Error&&e.name==="AbortError"}function jE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function $E(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
210
243
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
211
244
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
212
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function d_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var pp=d_;function p_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),g_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:a_(e)}))}function g_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var gp=p_,f_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yl=f_;function y_(e,t,r){switch(t){case"image":return m_(e,r[t]);case"video":return h_(e,r[t]);case"sticker":return b_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function m_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:yl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function h_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:yl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function b_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:yl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var v_=y_;async function w_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return k_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return x_(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return I_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return A_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function k_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function x_(e,t,r){let i=t.width,n=t.height,a=await l_(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function I_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function A_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Qp=w_;function C_(e){switch(e.userFlow){case"placeholder":return M_(e);case"generation-only":return S_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function S_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Zp(),c=await Qp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function M_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Zp(),c=v_(s,a,o);if(i=await o_(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Qp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(fl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var j_=C_;function ml(e){return`${e}.generating`}function $_(e){return`${e}.abort`}function E_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global($_(d),()=>{}),y=c.global(ml(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await j_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){gp(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;__(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(fl(h))return;gp(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function __(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Wp=E_;function ol(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function T_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ml(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Wp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var L_=T_;function Kp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function bi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Kp(e,t.$ref),n={...bi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=bi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>bi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=bi(e,t[n],r));return i}return t}function O_(e){return bi(e,{...e})}function N_(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function D_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return P_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function P_(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=z_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function z_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Jp=D_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Xp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function eg(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?U_(e,c,r,i,n,a,o,s):tg(e,c,r,i,n,a,o,s);case"boolean":return rg(e,c,r,i,n,a,o,s);case"number":case"integer":return ig(e,c,r,i,n,a,o,s);case"object":return al(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return R_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function al(e,t,r,i,n,a,o,s){let c=Jp(t.schema??{},i).reduce((l,u)=>{let d=eg(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=$i(d,m,f,t.schema.default,""),k=l(p,b),w=F_(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function U_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:y,icons:f}=Xp(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:xe(t,r,o,x),icon:f[x]})),b=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function rg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function ig(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function R_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Xp(t.schema),I=ji(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:tg,boolean:rg,integer:ig,object:al},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:xe(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>al(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=$i(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function F_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var V_=eg,B_={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function fp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function yp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||fp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||fp(g);n[a(l.id,g)]=y}})}});let c={...B_,...n};Object.keys(c).length>0&&gl(r.cesdk,{en:c})}function mp(e){return typeof e.document=="function"?e.document():e.document}function hp(e,t,r){let i=O_(e),n=Kp(i,t.inputReference);if(!N_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Jp(a,t);return{inputSchema:a,properties:o}}function bp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=V_(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Wp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function q_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=mp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=hp(c,s,a.debug);return yp(y,i,r,i.kind),bp(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(mp(s)).then(g=>{let{inputSchema:y,properties:f}=hp(g,s,a.debug);yp(f,i,r,i.kind),u=bp(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var G_=q_;async function Y_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return L_(e,t);case"schema":return G_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var H_=Y_;function Z_(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new XM(o,r)),o}return i}var Q_=Z_;function W_(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var K_=W_,Wa="@imgly/plugin-ai-generation",J_=`
245
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function _E(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var bp=_E;function EE(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:AE(e)}))}function LE(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var hp=EE,TE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ml=TE;function OE(e,t,r){switch(t){case"image":return NE(e,r[t]);case"video":return DE(e,r[t]);case"sticker":return PE(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function NE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ml,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function DE(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ml,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function PE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ml,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var zE=OE;async function UE(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return RE(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return FE(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return VE(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return BE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function RE(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function FE(e,t,r){let i=t.width,n=t.height,a=await SE(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function VE(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function BE(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Xp=UE;function qE(e){switch(e.userFlow){case"placeholder":return HE(e);case"generation-only":return GE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function GE(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Jp(),c=await Xp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function HE(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Jp(),c=zE(s,a,o);if(i=await CE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Xp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(yl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var YE=qE;function bl(e){return`${e}.generating`}function ZE(e){return`${e}.abort`}function QE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(ZE(d),()=>{}),y=c.global(bl(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await YE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){hp(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;WE(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(yl(b))return;hp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function WE(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var eg=QE;function al(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function KE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(bl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return eg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var JE=KE;function tg(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function mi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=tg(e,t.$ref),n={...mi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=mi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>mi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=mi(e,t[n],r));return i}return t}function XE(e){return mi(e,{...e})}function eL(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function tL(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return rL(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function rL(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=iL(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function iL(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var rg=tL;function ig(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function ng(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?nL(e,c,r,i,n,a,o,s):og(e,c,r,i,n,a,o,s);case"boolean":return ag(e,c,r,i,n,a,o,s);case"number":case"integer":return lg(e,c,r,i,n,a,o,s);case"object":return ll(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return oL(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ll(e,t,r,i,n,a,o,s){let c=rg(t.schema??{},i).reduce((l,u)=>{let d=ng(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function og(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=xe(r.id,o,d,"placeholder"),f=Ai(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Si(d,h,f,t.schema.default,""),v=l(p,m),k=aL(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function nL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),{labels:y,icons:f}=ig(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:xe(r.id,o,d,x),icon:f[x]})),m=Ai(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ag(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=Ai(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function lg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Ai(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Si(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function oL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=ig(t.schema),I=Ai(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:og,boolean:ag,integer:lg,object:ll},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:xe(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>ll(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Si(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function aL(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var lL=ng,sL={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function vp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||vp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||vp(g);n[a(l.id,g)]=y}})}});let c={...sL,...n};Object.keys(c).length>0&&fl(r.cesdk,{en:c})}function kp(e){return typeof e.document=="function"?e.document():e.document}function xp(e,t,r){let i=XE(e),n=tg(i,t.inputReference);if(!eL(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=rg(a,t);return{inputSchema:a,properties:o}}function Ip(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=lL(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];eg(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function uL(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=kp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=xp(c,s,a.debug);return wp(y,i,r,i.kind),Ip(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(kp(s)).then(g=>{let{inputSchema:y,properties:f}=xp(g,s,a.debug);wp(f,i,r,i.kind),u=Ip(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var cL=uL;async function dL(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return JE(e,t);case"schema":return cL(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var pL=dL;function gL(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new hj(o,r)),o}return i}var fL=gL;function yL(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var mL=yL,Ka="@imgly/plugin-ai-generation",bL=`
213
246
  <svg>
214
247
  <symbol
215
248
  fill="none"
@@ -227,7 +260,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
227
260
  fill="none"
228
261
  xmlns="http://www.w3.org/2000/svg"
229
262
  viewBox="0 0 24 24"
230
- id="${Wa}/image"
263
+ id="${Ka}/image"
231
264
  >
232
265
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
233
266
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -239,7 +272,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
239
272
  fill="none"
240
273
  xmlns="http://www.w3.org/2000/svg"
241
274
  viewBox="0 0 24 24"
242
- id="${Wa}/video"
275
+ id="${Ka}/video"
243
276
  >
244
277
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
245
278
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -250,11 +283,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
250
283
  fill="none"
251
284
  xmlns="http://www.w3.org/2000/svg"
252
285
  viewBox="0 0 24 24"
253
- id="${Wa}/audio"
286
+ id="${Ka}/audio"
254
287
  >
255
288
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
256
289
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
257
290
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
291
+ </symbol>
292
+ <symbol
293
+ fill="none"
294
+ xmlns="http://www.w3.org/2000/svg"
295
+ viewBox="0 0 24 24"
296
+ id="@imgly/ImageAdd"
297
+ >
298
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
299
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
300
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
301
+
258
302
  </symbol>
259
303
  <symbol
260
304
  fill="none"
@@ -270,8 +314,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
270
314
 
271
315
  </symbol>
272
316
  </svg>
273
- `,X_=J_;function eT(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await ng(2e3),await tT(t,e,r)):i(t,r)}async function tT(e,t,r){switch(t.kind){case"image":return rT(e,t,r);case"video":return iT(e,t,r);case"text":return nT(e,t,r);case"audio":return aT(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function rT(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await JE(s,r),l=await KE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function iT(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function nT(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=mi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=mi(n,o)}else"customPrompt"in e?a=mi(n,"custom"):a=mi(n,"improved");else a=mi(n,"generated");return oT(a,r.abortSignal)}async function*oT(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await ng(100)}return{kind:"text",text:e}}function mi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function aT(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:lT(220,i),duration:i,thumbnailUrl:void 0}}function lT(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return sT(i,44100)}function sT(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function ng(e){return new Promise(t=>{setTimeout(t,e)})}var uT=eT,cT="USER_CANCEL";function dT(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=r_([...e.provider.output.middleware??[],...r?.middlewares??[],n_({enable:r?.debug}),uT({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:s_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return fl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===cT?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var pT=dT;async function gT(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Gp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=Q_(a),s=K_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=pT({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await H_(a,c);u_(r.cesdk,"@imgly/plugin-ai-generation",X_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return t_.get().register(u),u}var Ka=gT;function fT(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new ej(n,r,i);return r.engine.asset.addSource(a),a.id}var yT=fT;function vi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function mT(e,t,r,i){let{cesdk:n}=r;gl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ka(e,u,r,i)));o.push(...l),a=bT({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ka(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ka(e,d,r,i)));o.push(...u),a=hT({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=yT({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(e_)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function hT({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:ol(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:ol(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&vp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&vp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function bT({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:ol(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function vp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ml(r.id),!1).value)}var wp=mT,see=5*60*1e3,vT=typeof global=="object"&&global&&global.Object===Object&&global,og=vT,wT=typeof self=="object"&&self&&self.Object===Object&&self,kT=og||wT||Function("return this")(),ne=kT,xT=ne.Symbol,Nt=xT,ag=Object.prototype,IT=ag.hasOwnProperty,AT=ag.toString,hi=Nt?Nt.toStringTag:void 0;function CT(e){var t=IT.call(e,hi),r=e[hi];try{e[hi]=void 0;var i=!0}catch{}var n=AT.call(e);return i&&(t?e[hi]=r:delete e[hi]),n}var ST=CT,MT=Object.prototype,jT=MT.toString;function $T(e){return jT.call(e)}var ET=$T,_T="[object Null]",TT="[object Undefined]",kp=Nt?Nt.toStringTag:void 0;function LT(e){return e==null?e===void 0?TT:_T:kp&&kp in Object(e)?ST(e):ET(e)}var Ei=LT;function OT(e){return e!=null&&typeof e=="object"}var hl=OT,uee=Array.isArray;function NT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var lg=NT,DT="[object AsyncFunction]",PT="[object Function]",zT="[object GeneratorFunction]",UT="[object Proxy]";function RT(e){if(!lg(e))return!1;var t=Ei(e);return t==PT||t==zT||t==DT||t==UT}var FT=RT,VT=ne["__core-js_shared__"],Ja=VT,xp=function(){var e=/[^.]+$/.exec(Ja&&Ja.keys&&Ja.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function BT(e){return!!xp&&xp in e}var qT=BT,GT=Function.prototype,YT=GT.toString;function HT(e){if(e!=null){try{return YT.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=HT,ZT=/[\\^$.*+?()[\]{}|]/g,QT=/^\[object .+?Constructor\]$/,WT=Function.prototype,KT=Object.prototype,JT=WT.toString,XT=KT.hasOwnProperty,eL=RegExp("^"+JT.call(XT).replace(ZT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tL(e){if(!lg(e)||qT(e))return!1;var t=FT(e)?eL:QT;return t.test(Ue(e))}var rL=tL;function iL(e,t){return e?.[t]}var nL=iL;function oL(e,t){var r=nL(e,t);return rL(r)?r:void 0}var Rt=oL,aL=Rt(ne,"WeakMap"),ll=aL;function lL(e,t){return e===t||e!==e&&t!==t}var sL=lL,uL=9007199254740991;function cL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=uL}var dL=cL,cee=Object.prototype,pL="[object Arguments]";function gL(e){return hl(e)&&Ei(e)==pL}var Ip=gL,sg=Object.prototype,fL=sg.hasOwnProperty,yL=sg.propertyIsEnumerable,dee=Ip(function(){return arguments}())?Ip:function(e){return hl(e)&&fL.call(e,"callee")&&!yL.call(e,"callee")},ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ap=ug&&typeof module=="object"&&module&&!module.nodeType&&module,mL=Ap&&Ap.exports===ug,Cp=mL?ne.Buffer:void 0,pee=Cp?Cp.isBuffer:void 0,hL="[object Arguments]",bL="[object Array]",vL="[object Boolean]",wL="[object Date]",kL="[object Error]",xL="[object Function]",IL="[object Map]",AL="[object Number]",CL="[object Object]",SL="[object RegExp]",ML="[object Set]",jL="[object String]",$L="[object WeakMap]",EL="[object ArrayBuffer]",_L="[object DataView]",TL="[object Float32Array]",LL="[object Float64Array]",OL="[object Int8Array]",NL="[object Int16Array]",DL="[object Int32Array]",PL="[object Uint8Array]",zL="[object Uint8ClampedArray]",UL="[object Uint16Array]",RL="[object Uint32Array]",U={};U[TL]=U[LL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=U[UL]=U[RL]=!0;U[hL]=U[bL]=U[EL]=U[vL]=U[_L]=U[wL]=U[kL]=U[xL]=U[IL]=U[AL]=U[CL]=U[SL]=U[ML]=U[jL]=U[$L]=!1;function FL(e){return hl(e)&&dL(e.length)&&!!U[Ei(e)]}var VL=FL;function BL(e){return function(t){return e(t)}}var qL=BL,cg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=cg&&typeof module=="object"&&module&&!module.nodeType&&module,GL=ki&&ki.exports===cg,Xa=GL&&og.process,YL=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Xa&&Xa.binding&&Xa.binding("util")}catch{}}(),Sp=YL,Mp=Sp&&Sp.isTypedArray,gee=Mp?qL(Mp):VL,HL=Object.prototype,fee=HL.hasOwnProperty;function ZL(e,t){return function(r){return e(t(r))}}var QL=ZL,yee=QL(Object.keys,Object),WL=Object.prototype,mee=WL.hasOwnProperty,KL=Rt(Object,"create"),Ai=KL;function JL(){this.__data__=Ai?Ai(null):{},this.size=0}var XL=JL;function eO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var tO=eO,rO="__lodash_hash_undefined__",iO=Object.prototype,nO=iO.hasOwnProperty;function oO(e){var t=this.__data__;if(Ai){var r=t[e];return r===rO?void 0:r}return nO.call(t,e)?t[e]:void 0}var aO=oO,lO=Object.prototype,sO=lO.hasOwnProperty;function uO(e){var t=this.__data__;return Ai?t[e]!==void 0:sO.call(t,e)}var cO=uO,dO="__lodash_hash_undefined__";function pO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ai&&t===void 0?dO:t,this}var gO=pO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=XL;Ft.prototype.delete=tO;Ft.prototype.get=aO;Ft.prototype.has=cO;Ft.prototype.set=gO;var jp=Ft;function fO(){this.__data__=[],this.size=0}var yO=fO;function mO(e,t){for(var r=e.length;r--;)if(sL(e[r][0],t))return r;return-1}var lo=mO,hO=Array.prototype,bO=hO.splice;function vO(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():bO.call(t,r,1),--this.size,!0}var wO=vO;function kO(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var xO=kO;function IO(e){return lo(this.__data__,e)>-1}var AO=IO;function CO(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var SO=CO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=yO;Vt.prototype.delete=wO;Vt.prototype.get=xO;Vt.prototype.has=AO;Vt.prototype.set=SO;var so=Vt,MO=Rt(ne,"Map"),Ci=MO;function jO(){this.size=0,this.__data__={hash:new jp,map:new(Ci||so),string:new jp}}var $O=jO;function EO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _O=EO;function TO(e,t){var r=e.__data__;return _O(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=TO;function LO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var OO=LO;function NO(e){return uo(this,e).get(e)}var DO=NO;function PO(e){return uo(this,e).has(e)}var zO=PO;function UO(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var RO=UO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=$O;Bt.prototype.delete=OO;Bt.prototype.get=DO;Bt.prototype.has=zO;Bt.prototype.set=RO;var dg=Bt;function FO(){this.__data__=new so,this.size=0}var VO=FO;function BO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var qO=BO;function GO(e){return this.__data__.get(e)}var YO=GO;function HO(e){return this.__data__.has(e)}var ZO=HO,QO=200;function WO(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Ci||i.length<QO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new dg(i)}return r.set(e,t),this.size=r.size,this}var KO=WO;function _i(e){var t=this.__data__=new so(e);this.size=t.size}_i.prototype.clear=VO;_i.prototype.delete=qO;_i.prototype.get=YO;_i.prototype.has=ZO;_i.prototype.set=KO;var JO=Object.prototype,hee=JO.propertyIsEnumerable,XO=Rt(ne,"DataView"),sl=XO,eN=Rt(ne,"Promise"),ul=eN,tN=Rt(ne,"Set"),cl=tN,$p="[object Map]",rN="[object Object]",Ep="[object Promise]",_p="[object Set]",Tp="[object WeakMap]",Lp="[object DataView]",iN=Ue(sl),nN=Ue(Ci),oN=Ue(ul),aN=Ue(cl),lN=Ue(ll),Tt=Ei;(sl&&Tt(new sl(new ArrayBuffer(1)))!=Lp||Ci&&Tt(new Ci)!=$p||ul&&Tt(ul.resolve())!=Ep||cl&&Tt(new cl)!=_p||ll&&Tt(new ll)!=Tp)&&(Tt=function(e){var t=Ei(e),r=t==rN?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case iN:return Lp;case nN:return $p;case oN:return Ep;case aN:return _p;case lN:return Tp}return t});var bee=ne.Uint8Array,sN="__lodash_hash_undefined__";function uN(e){return this.__data__.set(e,sN),this}var cN=uN;function dN(e){return this.__data__.has(e)}var pN=dN;function dl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new dg;++t<r;)this.add(e[t])}dl.prototype.add=dl.prototype.push=cN;dl.prototype.has=pN;var Op=Nt?Nt.prototype:void 0,vee=Op?Op.valueOf:void 0,gN=Object.prototype,wee=gN.hasOwnProperty,fN=Object.prototype,kee=fN.hasOwnProperty,xee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Iee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Aee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function yN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Np=yN;function mN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function hN(e){return typeof e?.translate=="function"}function Dp(e,t,r){return e&&mN(e)&&hN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function bN(e){return{async initialize({cesdk:t}){if(t==null)return;c_(t,we,"1.82.0"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;gl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),vN(e);let n=Gp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Dp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Dp(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Np(s).map(f=>f({cesdk:t}))),u=await Promise.all(Np(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await wp("audio",l,{cesdk:t},e),y=await wp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),pp({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),pp({cesdk:t,panelId:De})):o()}}}function vN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var wN=bN,kN=e=>({name:we,version:"1.82.0",...wN(e)}),pg=kN;var xN="@imgly/plugin-ai-text-generation",IN=`
317
+ `,hL=bL;function vL(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await sg(2e3),await wL(t,e,r)):i(t,r)}async function wL(e,t,r){switch(t.kind){case"image":return kL(e,t,r);case"video":return xL(e,t,r);case"text":return IL(e,t,r);case"audio":return AL(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function kL(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await bE(s,r),l=await mE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
318
+ `,"+")}`}}async function xL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function IL(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=fi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=fi(n,o)}else"customPrompt"in e?a=fi(n,"custom"):a=fi(n,"improved");else a=fi(n,"generated");return CL(a,r.abortSignal)}async function*CL(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await sg(100)}return{kind:"text",text:e}}function fi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function AL(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:SL(220,i),duration:i,thumbnailUrl:void 0}}function SL(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return ML(i,44100)}function ML(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function sg(e){return new Promise(t=>{setTimeout(t,e)})}var jL=vL,$L="USER_CANCEL";function _L(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=kE([...e.provider.output.middleware??[],...r?.middlewares??[],IE({enable:r?.debug}),jL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ME(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return yl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$L?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var EL=_L;async function LL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=fL(a),s=mL(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=EL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await pL(a,c);jE(r.cesdk,"@imgly/plugin-ai-generation",hL);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return wE.get().register(u),u}var Ja=LL;function TL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new vj(n,r,i);return r.engine.asset.addSource(a),a.id}var OL=TL;function ro(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NL(e,t,r,i){let{cesdk:n}=r;fl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ja(e,u,r,i)));o.push(...l),a=PL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ja(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ja(e,d,r,i)));o.push(...u),a=DL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(vE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function DL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:al(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:al(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:ro(e,`${A}.label`),icon:f.value!==A&&zL(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:ro(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ro(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:al(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ro(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function zL(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(bl(r.id),!1).value)}var Cp=NL,Lee=5*60*1e3,UL=typeof global=="object"&&global&&global.Object===Object&&global,ug=UL,RL=typeof self=="object"&&self&&self.Object===Object&&self,FL=ug||RL||Function("return this")(),ne=FL,VL=ne.Symbol,Dt=VL,cg=Object.prototype,BL=cg.hasOwnProperty,qL=cg.toString,yi=Dt?Dt.toStringTag:void 0;function GL(e){var t=BL.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=qL.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var HL=GL,YL=Object.prototype,ZL=YL.toString;function QL(e){return ZL.call(e)}var WL=QL,KL="[object Null]",JL="[object Undefined]",Ap=Dt?Dt.toStringTag:void 0;function XL(e){return e==null?e===void 0?JL:KL:Ap&&Ap in Object(e)?HL(e):WL(e)}var Mi=XL;function eT(e){return e!=null&&typeof e=="object"}var hl=eT,Tee=Array.isArray;function tT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=tT,rT="[object AsyncFunction]",iT="[object Function]",nT="[object GeneratorFunction]",oT="[object Proxy]";function aT(e){if(!dg(e))return!1;var t=Mi(e);return t==iT||t==nT||t==rT||t==oT}var lT=aT,sT=ne["__core-js_shared__"],Xa=sT,Sp=function(){var e=/[^.]+$/.exec(Xa&&Xa.keys&&Xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uT(e){return!!Sp&&Sp in e}var cT=uT,dT=Function.prototype,pT=dT.toString;function gT(e){if(e!=null){try{return pT.call(e)}catch{}try{return e+""}catch{}}return""}var Re=gT,fT=/[\\^$.*+?()[\]{}|]/g,yT=/^\[object .+?Constructor\]$/,mT=Function.prototype,bT=Object.prototype,hT=mT.toString,vT=bT.hasOwnProperty,wT=RegExp("^"+hT.call(vT).replace(fT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kT(e){if(!dg(e)||cT(e))return!1;var t=lT(e)?wT:yT;return t.test(Re(e))}var xT=kT;function IT(e,t){return e?.[t]}var CT=IT;function AT(e,t){var r=CT(e,t);return xT(r)?r:void 0}var Ft=AT,ST=Ft(ne,"WeakMap"),sl=ST;function MT(e,t){return e===t||e!==e&&t!==t}var jT=MT,$T=9007199254740991;function _T(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$T}var ET=_T,Oee=Object.prototype,LT="[object Arguments]";function TT(e){return hl(e)&&Mi(e)==LT}var Mp=TT,pg=Object.prototype,OT=pg.hasOwnProperty,NT=pg.propertyIsEnumerable,Nee=Mp(function(){return arguments}())?Mp:function(e){return hl(e)&&OT.call(e,"callee")&&!NT.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,DT=jp&&jp.exports===gg,$p=DT?ne.Buffer:void 0,Dee=$p?$p.isBuffer:void 0,PT="[object Arguments]",zT="[object Array]",UT="[object Boolean]",RT="[object Date]",FT="[object Error]",VT="[object Function]",BT="[object Map]",qT="[object Number]",GT="[object Object]",HT="[object RegExp]",YT="[object Set]",ZT="[object String]",QT="[object WeakMap]",WT="[object ArrayBuffer]",KT="[object DataView]",JT="[object Float32Array]",XT="[object Float64Array]",eO="[object Int8Array]",tO="[object Int16Array]",rO="[object Int32Array]",iO="[object Uint8Array]",nO="[object Uint8ClampedArray]",oO="[object Uint16Array]",aO="[object Uint32Array]",R={};R[JT]=R[XT]=R[eO]=R[tO]=R[rO]=R[iO]=R[nO]=R[oO]=R[aO]=!0;R[PT]=R[zT]=R[WT]=R[UT]=R[KT]=R[RT]=R[FT]=R[VT]=R[BT]=R[qT]=R[GT]=R[HT]=R[YT]=R[ZT]=R[QT]=!1;function lO(e){return hl(e)&&ET(e.length)&&!!R[Mi(e)]}var sO=lO;function uO(e){return function(t){return e(t)}}var cO=uO,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hi=fg&&typeof module=="object"&&module&&!module.nodeType&&module,dO=hi&&hi.exports===fg,el=dO&&ug.process,pO=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||el&&el.binding&&el.binding("util")}catch{}}(),_p=pO,Ep=_p&&_p.isTypedArray,Pee=Ep?cO(Ep):sO,gO=Object.prototype,zee=gO.hasOwnProperty;function fO(e,t){return function(r){return e(t(r))}}var yO=fO,Uee=yO(Object.keys,Object),mO=Object.prototype,Ree=mO.hasOwnProperty,bO=Ft(Object,"create"),ki=bO;function hO(){this.__data__=ki?ki(null):{},this.size=0}var vO=hO;function wO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kO=wO,xO="__lodash_hash_undefined__",IO=Object.prototype,CO=IO.hasOwnProperty;function AO(e){var t=this.__data__;if(ki){var r=t[e];return r===xO?void 0:r}return CO.call(t,e)?t[e]:void 0}var SO=AO,MO=Object.prototype,jO=MO.hasOwnProperty;function $O(e){var t=this.__data__;return ki?t[e]!==void 0:jO.call(t,e)}var _O=$O,EO="__lodash_hash_undefined__";function LO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?EO:t,this}var TO=LO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=vO;Vt.prototype.delete=kO;Vt.prototype.get=SO;Vt.prototype.has=_O;Vt.prototype.set=TO;var Lp=Vt;function OO(){this.__data__=[],this.size=0}var NO=OO;function DO(e,t){for(var r=e.length;r--;)if(jT(e[r][0],t))return r;return-1}var ao=DO,PO=Array.prototype,zO=PO.splice;function UO(e){var t=this.__data__,r=ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zO.call(t,r,1),--this.size,!0}var RO=UO;function FO(e){var t=this.__data__,r=ao(t,e);return r<0?void 0:t[r][1]}var VO=FO;function BO(e){return ao(this.__data__,e)>-1}var qO=BO;function GO(e,t){var r=this.__data__,i=ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HO=GO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=NO;Bt.prototype.delete=RO;Bt.prototype.get=VO;Bt.prototype.has=qO;Bt.prototype.set=HO;var lo=Bt,YO=Ft(ne,"Map"),xi=YO;function ZO(){this.size=0,this.__data__={hash:new Lp,map:new(xi||lo),string:new Lp}}var QO=ZO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KO=WO;function JO(e,t){var r=e.__data__;return KO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var so=JO;function XO(e){var t=so(this,e).delete(e);return this.size-=t?1:0,t}var eN=XO;function tN(e){return so(this,e).get(e)}var rN=tN;function iN(e){return so(this,e).has(e)}var nN=iN;function oN(e,t){var r=so(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var aN=oN;function qt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qt.prototype.clear=QO;qt.prototype.delete=eN;qt.prototype.get=rN;qt.prototype.has=nN;qt.prototype.set=aN;var yg=qt;function lN(){this.__data__=new lo,this.size=0}var sN=lN;function uN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cN=uN;function dN(e){return this.__data__.get(e)}var pN=dN;function gN(e){return this.__data__.has(e)}var fN=gN,yN=200;function mN(e,t){var r=this.__data__;if(r instanceof lo){var i=r.__data__;if(!xi||i.length<yN-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yg(i)}return r.set(e,t),this.size=r.size,this}var bN=mN;function ji(e){var t=this.__data__=new lo(e);this.size=t.size}ji.prototype.clear=sN;ji.prototype.delete=cN;ji.prototype.get=pN;ji.prototype.has=fN;ji.prototype.set=bN;var hN=Object.prototype,Fee=hN.propertyIsEnumerable,vN=Ft(ne,"DataView"),ul=vN,wN=Ft(ne,"Promise"),cl=wN,kN=Ft(ne,"Set"),dl=kN,Tp="[object Map]",xN="[object Object]",Op="[object Promise]",Np="[object Set]",Dp="[object WeakMap]",Pp="[object DataView]",IN=Re(ul),CN=Re(xi),AN=Re(cl),SN=Re(dl),MN=Re(sl),Tt=Mi;(ul&&Tt(new ul(new ArrayBuffer(1)))!=Pp||xi&&Tt(new xi)!=Tp||cl&&Tt(cl.resolve())!=Op||dl&&Tt(new dl)!=Np||sl&&Tt(new sl)!=Dp)&&(Tt=function(e){var t=Mi(e),r=t==xN?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case IN:return Pp;case CN:return Tp;case AN:return Op;case SN:return Np;case MN:return Dp}return t});var Vee=ne.Uint8Array,jN="__lodash_hash_undefined__";function $N(e){return this.__data__.set(e,jN),this}var _N=$N;function EN(e){return this.__data__.has(e)}var LN=EN;function pl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}pl.prototype.add=pl.prototype.push=_N;pl.prototype.has=LN;var zp=Dt?Dt.prototype:void 0,Bee=zp?zp.valueOf:void 0,TN=Object.prototype,qee=TN.hasOwnProperty,ON=Object.prototype,Gee=ON.hasOwnProperty,Hee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Zee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function NN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Up=NN;function DN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function PN(e){return typeof e?.translate=="function"}function Rp(e,t,r){return e&&DN(e)&&PN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",Pe="ly.img.ai.audio-generation.speech",ze="ly.img.ai.audio-generation.sound";function zN(e){return{async initialize({cesdk:t}){if(t==null)return;$E(t,we,"1.83.0-nightly.20260918"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;fl(t,{en:{[`panel.${Pe}`]:"AI Voice",[`panel.${ze}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),UN(e);let n=Qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Rp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:ze},execute:()=>{t.ui.isPanelOpen(ze)?t.ui.closePanel(ze):t.ui.openPanel(ze)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Rp(t,i,"AI Voice"),labelKey:i,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Up(s).map(f=>f({cesdk:t}))),u=await Promise.all(Up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Cp("audio",l,{cesdk:t},e),y=await Cp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(ze,y.panel.builderRenderFunction),bp({cesdk:t,panelId:ze})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,g.panel.builderRenderFunction),bp({cesdk:t,panelId:Pe})):o()}}}function UN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var RN=zN,FN=e=>({name:we,version:"1.83.0-nightly.20260918",...RN(e)}),mg=FN;var VN="@imgly/plugin-ai-text-generation",BN=`
275
319
  <svg>
276
320
  <symbol
277
321
  fill="none"
@@ -347,10 +391,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
347
391
  <path d="M3.72318 6.44728C3.63105 6.26302 3.3681 6.26302 3.27597 6.44728L3.03684 6.92554C3.01265 6.97392 2.97343 7.01314 2.92505 7.03733L2.44677 7.27652C2.26252 7.36866 2.26254 7.63161 2.44681 7.72373L2.92503 7.9628C2.97342 7.98699 3.01266 8.02622 3.03685 8.07461L3.27597 8.55285C3.3681 8.73711 3.63105 8.73711 3.72318 8.55285L3.96231 8.0746C3.9865 8.02622 4.02573 7.98699 4.07411 7.9628L4.55236 7.72367C4.73663 7.63154 4.73663 7.36859 4.55236 7.27646L4.07411 7.03733C4.02573 7.01314 3.9865 6.97391 3.96231 6.92553L3.72318 6.44728Z" fill="currentColor"/>
348
392
  </symbol>
349
393
  </svg>
350
- `,AN=IN,CN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var SN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},MN=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)}},i1=MN,jN=typeof global=="object"&&global&&global.Object===Object&&global,n1=jN,$N=typeof self=="object"&&self&&self.Object===Object&&self,EN=n1||$N||Function("return this")(),oe=EN,_N=oe.Symbol,Ht=_N,o1=Object.prototype,TN=o1.hasOwnProperty,LN=o1.toString,Ti=Ht?Ht.toStringTag:void 0;function ON(e){var t=TN.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=LN.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var NN=ON,DN=Object.prototype,PN=DN.toString;function zN(e){return PN.call(e)}var UN=zN,RN="[object Null]",FN="[object Undefined]",gg=Ht?Ht.toStringTag:void 0;function VN(e){return e==null?e===void 0?FN:RN:gg&&gg in Object(e)?NN(e):UN(e)}var Yi=VN;function BN(e){return e!=null&&typeof e=="object"}var Ul=BN,jee=Array.isArray;function qN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var a1=qN,GN="[object AsyncFunction]",YN="[object Function]",HN="[object GeneratorFunction]",ZN="[object Proxy]";function QN(e){if(!a1(e))return!1;var t=Yi(e);return t==YN||t==HN||t==GN||t==ZN}var WN=QN,KN=oe["__core-js_shared__"],bl=KN,fg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JN(e){return!!fg&&fg in e}var XN=JN,eD=Function.prototype,tD=eD.toString;function rD(e){if(e!=null){try{return tD.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=rD,iD=/[\\^$.*+?()[\]{}|]/g,nD=/^\[object .+?Constructor\]$/,oD=Function.prototype,aD=Object.prototype,lD=oD.toString,sD=aD.hasOwnProperty,uD=RegExp("^"+lD.call(sD).replace(iD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cD(e){if(!a1(e)||XN(e))return!1;var t=WN(e)?uD:nD;return t.test(Ve(e))}var dD=cD;function pD(e,t){return e?.[t]}var gD=pD;function fD(e,t){var r=gD(e,t);return dD(r)?r:void 0}var Qt=fD,yD=Qt(oe,"WeakMap"),Sl=yD;function mD(e,t){return e===t||e!==e&&t!==t}var hD=mD,bD=9007199254740991;function vD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bD}var wD=vD,$ee=Object.prototype,kD="[object Arguments]";function xD(e){return Ul(e)&&Yi(e)==kD}var yg=xD,l1=Object.prototype,ID=l1.hasOwnProperty,AD=l1.propertyIsEnumerable,Eee=yg(function(){return arguments}())?yg:function(e){return Ul(e)&&ID.call(e,"callee")&&!AD.call(e,"callee")},s1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mg=s1&&typeof module=="object"&&module&&!module.nodeType&&module,CD=mg&&mg.exports===s1,hg=CD?oe.Buffer:void 0,_ee=hg?hg.isBuffer:void 0,SD="[object Arguments]",MD="[object Array]",jD="[object Boolean]",$D="[object Date]",ED="[object Error]",_D="[object Function]",TD="[object Map]",LD="[object Number]",OD="[object Object]",ND="[object RegExp]",DD="[object Set]",PD="[object String]",zD="[object WeakMap]",UD="[object ArrayBuffer]",RD="[object DataView]",FD="[object Float32Array]",VD="[object Float64Array]",BD="[object Int8Array]",qD="[object Int16Array]",GD="[object Int32Array]",YD="[object Uint8Array]",HD="[object Uint8ClampedArray]",ZD="[object Uint16Array]",QD="[object Uint32Array]",R={};R[FD]=R[VD]=R[BD]=R[qD]=R[GD]=R[YD]=R[HD]=R[ZD]=R[QD]=!0;R[SD]=R[MD]=R[UD]=R[jD]=R[RD]=R[$D]=R[ED]=R[_D]=R[TD]=R[LD]=R[OD]=R[ND]=R[DD]=R[PD]=R[zD]=!1;function WD(e){return Ul(e)&&wD(e.length)&&!!R[Yi(e)]}var KD=WD;function JD(e){return function(t){return e(t)}}var XD=JD,u1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=u1&&typeof module=="object"&&module&&!module.nodeType&&module,eP=Ui&&Ui.exports===u1,vl=eP&&n1.process,tP=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),bg=tP,vg=bg&&bg.isTypedArray,Tee=vg?XD(vg):KD,rP=Object.prototype,Lee=rP.hasOwnProperty;function iP(e,t){return function(r){return e(t(r))}}var nP=iP,Oee=nP(Object.keys,Object),oP=Object.prototype,Nee=oP.hasOwnProperty,aP=Qt(Object,"create"),Fi=aP;function lP(){this.__data__=Fi?Fi(null):{},this.size=0}var sP=lP;function uP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cP=uP,dP="__lodash_hash_undefined__",pP=Object.prototype,gP=pP.hasOwnProperty;function fP(e){var t=this.__data__;if(Fi){var r=t[e];return r===dP?void 0:r}return gP.call(t,e)?t[e]:void 0}var yP=fP,mP=Object.prototype,hP=mP.hasOwnProperty;function bP(e){var t=this.__data__;return Fi?t[e]!==void 0:hP.call(t,e)}var vP=bP,wP="__lodash_hash_undefined__";function kP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fi&&t===void 0?wP:t,this}var xP=kP;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=sP;Wt.prototype.delete=cP;Wt.prototype.get=yP;Wt.prototype.has=vP;Wt.prototype.set=xP;var wg=Wt;function IP(){this.__data__=[],this.size=0}var AP=IP;function CP(e,t){for(var r=e.length;r--;)if(hD(e[r][0],t))return r;return-1}var co=CP,SP=Array.prototype,MP=SP.splice;function jP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():MP.call(t,r,1),--this.size,!0}var $P=jP;function EP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var _P=EP;function TP(e){return co(this.__data__,e)>-1}var LP=TP;function OP(e,t){var r=this.__data__,i=co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var NP=OP;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=AP;Kt.prototype.delete=$P;Kt.prototype.get=_P;Kt.prototype.has=LP;Kt.prototype.set=NP;var po=Kt,DP=Qt(oe,"Map"),Vi=DP;function PP(){this.size=0,this.__data__={hash:new wg,map:new(Vi||po),string:new wg}}var zP=PP;function UP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RP=UP;function FP(e,t){var r=e.__data__;return RP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=FP;function VP(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var BP=VP;function qP(e){return go(this,e).get(e)}var GP=qP;function YP(e){return go(this,e).has(e)}var HP=YP;function ZP(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QP=ZP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=zP;Jt.prototype.delete=BP;Jt.prototype.get=GP;Jt.prototype.has=HP;Jt.prototype.set=QP;var c1=Jt;function WP(){this.__data__=new po,this.size=0}var KP=WP;function JP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XP=JP;function ez(e){return this.__data__.get(e)}var tz=ez;function rz(e){return this.__data__.has(e)}var iz=rz,nz=200;function oz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Vi||i.length<nz-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new c1(i)}return r.set(e,t),this.size=r.size,this}var az=oz;function Hi(e){var t=this.__data__=new po(e);this.size=t.size}Hi.prototype.clear=KP;Hi.prototype.delete=XP;Hi.prototype.get=tz;Hi.prototype.has=iz;Hi.prototype.set=az;var lz=Object.prototype,Dee=lz.propertyIsEnumerable,sz=Qt(oe,"DataView"),Ml=sz,uz=Qt(oe,"Promise"),jl=uz,cz=Qt(oe,"Set"),$l=cz,kg="[object Map]",dz="[object Object]",xg="[object Promise]",Ig="[object Set]",Ag="[object WeakMap]",Cg="[object DataView]",pz=Ve(Ml),gz=Ve(Vi),fz=Ve(jl),yz=Ve($l),mz=Ve(Sl),qt=Yi;(Ml&&qt(new Ml(new ArrayBuffer(1)))!=Cg||Vi&&qt(new Vi)!=kg||jl&&qt(jl.resolve())!=xg||$l&&qt(new $l)!=Ig||Sl&&qt(new Sl)!=Ag)&&(qt=function(e){var t=Yi(e),r=t==dz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case pz:return Cg;case gz:return kg;case fz:return xg;case yz:return Ig;case mz:return Ag}return t});var Pee=oe.Uint8Array,hz="__lodash_hash_undefined__";function bz(e){return this.__data__.set(e,hz),this}var vz=bz;function wz(e){return this.__data__.has(e)}var kz=wz;function El(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new c1;++t<r;)this.add(e[t])}El.prototype.add=El.prototype.push=vz;El.prototype.has=kz;var Sg=Ht?Ht.prototype:void 0,zee=Sg?Sg.valueOf:void 0,xz=Object.prototype,Uee=xz.hasOwnProperty,Iz=Object.prototype,Ree=Iz.hasOwnProperty,Fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function d1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function _l(e,t){let r=await d1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Az(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return d1(i,t)}function Cz(e){return e!==void 0}var fo=Cz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Zi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Qi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Rl=class p1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new p1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},g1=class f1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new f1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Sz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Mz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var jz=Mz,wl="ly.img.ai.temp";async function $z(e,t){return e.engine.asset.findAllSources().includes(wl)||e.engine.asset.addLocalSource(wl),e.engine.asset.apply(wl,t)}function Ez(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function y1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function _z(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function Tz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Fl(e){return e instanceof Error&&e.name==="AbortError"}function Lz(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Oz(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
394
+ `,qN=BN;function GN(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var Ae=GN,HN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var YN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},ZN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},a1=ZN,QN=typeof global=="object"&&global&&global.Object===Object&&global,l1=QN,WN=typeof self=="object"&&self&&self.Object===Object&&self,KN=l1||WN||Function("return this")(),oe=KN,JN=oe.Symbol,Zt=JN,s1=Object.prototype,XN=s1.hasOwnProperty,eD=s1.toString,$i=Zt?Zt.toStringTag:void 0;function tD(e){var t=XN.call(e,$i),r=e[$i];try{e[$i]=void 0;var i=!0}catch{}var n=eD.call(e);return i&&(t?e[$i]=r:delete e[$i]),n}var rD=tD,iD=Object.prototype,nD=iD.toString;function oD(e){return nD.call(e)}var aD=oD,lD="[object Null]",sD="[object Undefined]",bg=Zt?Zt.toStringTag:void 0;function uD(e){return e==null?e===void 0?sD:lD:bg&&bg in Object(e)?rD(e):aD(e)}var Vi=uD;function cD(e){return e!=null&&typeof e=="object"}var Rl=cD,Jee=Array.isArray;function dD(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var u1=dD,pD="[object AsyncFunction]",gD="[object Function]",fD="[object GeneratorFunction]",yD="[object Proxy]";function mD(e){if(!u1(e))return!1;var t=Vi(e);return t==gD||t==fD||t==pD||t==yD}var bD=mD,hD=oe["__core-js_shared__"],vl=hD,hg=function(){var e=/[^.]+$/.exec(vl&&vl.keys&&vl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vD(e){return!!hg&&hg in e}var wD=vD,kD=Function.prototype,xD=kD.toString;function ID(e){if(e!=null){try{return xD.call(e)}catch{}try{return e+""}catch{}}return""}var Be=ID,CD=/[\\^$.*+?()[\]{}|]/g,AD=/^\[object .+?Constructor\]$/,SD=Function.prototype,MD=Object.prototype,jD=SD.toString,$D=MD.hasOwnProperty,_D=RegExp("^"+jD.call($D).replace(CD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ED(e){if(!u1(e)||wD(e))return!1;var t=bD(e)?_D:AD;return t.test(Be(e))}var LD=ED;function TD(e,t){return e?.[t]}var OD=TD;function ND(e,t){var r=OD(e,t);return LD(r)?r:void 0}var Wt=ND,DD=Wt(oe,"WeakMap"),Ml=DD;function PD(e,t){return e===t||e!==e&&t!==t}var zD=PD,UD=9007199254740991;function RD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=UD}var FD=RD,Xee=Object.prototype,VD="[object Arguments]";function BD(e){return Rl(e)&&Vi(e)==VD}var vg=BD,c1=Object.prototype,qD=c1.hasOwnProperty,GD=c1.propertyIsEnumerable,ete=vg(function(){return arguments}())?vg:function(e){return Rl(e)&&qD.call(e,"callee")&&!GD.call(e,"callee")},d1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wg=d1&&typeof module=="object"&&module&&!module.nodeType&&module,HD=wg&&wg.exports===d1,kg=HD?oe.Buffer:void 0,tte=kg?kg.isBuffer:void 0,YD="[object Arguments]",ZD="[object Array]",QD="[object Boolean]",WD="[object Date]",KD="[object Error]",JD="[object Function]",XD="[object Map]",eP="[object Number]",tP="[object Object]",rP="[object RegExp]",iP="[object Set]",nP="[object String]",oP="[object WeakMap]",aP="[object ArrayBuffer]",lP="[object DataView]",sP="[object Float32Array]",uP="[object Float64Array]",cP="[object Int8Array]",dP="[object Int16Array]",pP="[object Int32Array]",gP="[object Uint8Array]",fP="[object Uint8ClampedArray]",yP="[object Uint16Array]",mP="[object Uint32Array]",F={};F[sP]=F[uP]=F[cP]=F[dP]=F[pP]=F[gP]=F[fP]=F[yP]=F[mP]=!0;F[YD]=F[ZD]=F[aP]=F[QD]=F[lP]=F[WD]=F[KD]=F[JD]=F[XD]=F[eP]=F[tP]=F[rP]=F[iP]=F[nP]=F[oP]=!1;function bP(e){return Rl(e)&&FD(e.length)&&!!F[Vi(e)]}var hP=bP;function vP(e){return function(t){return e(t)}}var wP=vP,p1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ni=p1&&typeof module=="object"&&module&&!module.nodeType&&module,kP=Ni&&Ni.exports===p1,wl=kP&&l1.process,xP=function(){try{var e=Ni&&Ni.require&&Ni.require("util").types;return e||wl&&wl.binding&&wl.binding("util")}catch{}}(),xg=xP,Ig=xg&&xg.isTypedArray,rte=Ig?wP(Ig):hP,IP=Object.prototype,ite=IP.hasOwnProperty;function CP(e,t){return function(r){return e(t(r))}}var AP=CP,nte=AP(Object.keys,Object),SP=Object.prototype,ote=SP.hasOwnProperty,MP=Wt(Object,"create"),Pi=MP;function jP(){this.__data__=Pi?Pi(null):{},this.size=0}var $P=jP;function _P(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var EP=_P,LP="__lodash_hash_undefined__",TP=Object.prototype,OP=TP.hasOwnProperty;function NP(e){var t=this.__data__;if(Pi){var r=t[e];return r===LP?void 0:r}return OP.call(t,e)?t[e]:void 0}var DP=NP,PP=Object.prototype,zP=PP.hasOwnProperty;function UP(e){var t=this.__data__;return Pi?t[e]!==void 0:zP.call(t,e)}var RP=UP,FP="__lodash_hash_undefined__";function VP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pi&&t===void 0?FP:t,this}var BP=VP;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=$P;Kt.prototype.delete=EP;Kt.prototype.get=DP;Kt.prototype.has=RP;Kt.prototype.set=BP;var Cg=Kt;function qP(){this.__data__=[],this.size=0}var GP=qP;function HP(e,t){for(var r=e.length;r--;)if(zD(e[r][0],t))return r;return-1}var co=HP,YP=Array.prototype,ZP=YP.splice;function QP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ZP.call(t,r,1),--this.size,!0}var WP=QP;function KP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var JP=KP;function XP(e){return co(this.__data__,e)>-1}var ez=XP;function tz(e,t){var r=this.__data__,i=co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var rz=tz;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=GP;Jt.prototype.delete=WP;Jt.prototype.get=JP;Jt.prototype.has=ez;Jt.prototype.set=rz;var po=Jt,iz=Wt(oe,"Map"),zi=iz;function nz(){this.size=0,this.__data__={hash:new Cg,map:new(zi||po),string:new Cg}}var oz=nz;function az(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var lz=az;function sz(e,t){var r=e.__data__;return lz(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=sz;function uz(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var cz=uz;function dz(e){return go(this,e).get(e)}var pz=dz;function gz(e){return go(this,e).has(e)}var fz=gz;function yz(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var mz=yz;function Xt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Xt.prototype.clear=oz;Xt.prototype.delete=cz;Xt.prototype.get=pz;Xt.prototype.has=fz;Xt.prototype.set=mz;var g1=Xt;function bz(){this.__data__=new po,this.size=0}var hz=bz;function vz(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var wz=vz;function kz(e){return this.__data__.get(e)}var xz=kz;function Iz(e){return this.__data__.has(e)}var Cz=Iz,Az=200;function Sz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!zi||i.length<Az-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new g1(i)}return r.set(e,t),this.size=r.size,this}var Mz=Sz;function Bi(e){var t=this.__data__=new po(e);this.size=t.size}Bi.prototype.clear=hz;Bi.prototype.delete=wz;Bi.prototype.get=xz;Bi.prototype.has=Cz;Bi.prototype.set=Mz;var jz=Object.prototype,ate=jz.propertyIsEnumerable,$z=Wt(oe,"DataView"),jl=$z,_z=Wt(oe,"Promise"),$l=_z,Ez=Wt(oe,"Set"),_l=Ez,Ag="[object Map]",Lz="[object Object]",Sg="[object Promise]",Mg="[object Set]",jg="[object WeakMap]",$g="[object DataView]",Tz=Be(jl),Oz=Be(zi),Nz=Be($l),Dz=Be(_l),Pz=Be(Ml),Gt=Vi;(jl&&Gt(new jl(new ArrayBuffer(1)))!=$g||zi&&Gt(new zi)!=Ag||$l&&Gt($l.resolve())!=Sg||_l&&Gt(new _l)!=Mg||Ml&&Gt(new Ml)!=jg)&&(Gt=function(e){var t=Vi(e),r=t==Lz?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case Tz:return $g;case Oz:return Ag;case Nz:return Sg;case Dz:return Mg;case Pz:return jg}return t});var lte=oe.Uint8Array,zz="__lodash_hash_undefined__";function Uz(e){return this.__data__.set(e,zz),this}var Rz=Uz;function Fz(e){return this.__data__.has(e)}var Vz=Fz;function El(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new g1;++t<r;)this.add(e[t])}El.prototype.add=El.prototype.push=Rz;El.prototype.has=Vz;var _g=Zt?Zt.prototype:void 0,ste=_g?_g.valueOf:void 0,Bz=Object.prototype,ute=Bz.hasOwnProperty,qz=Object.prototype,cte=qz.hasOwnProperty,dte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function f1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Ll(e,t){let r=await f1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Gz(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return f1(i,t)}function Hz(e){return e!==void 0}var fo=Hz;function qi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Fl=class y1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new y1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},m1=class b1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new b1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Yz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Zz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Qz=Zz,kl="ly.img.ai.temp";async function Wz(e,t){return e.engine.asset.findAllSources().includes(kl)||e.engine.asset.addLocalSource(kl),e.engine.asset.apply(kl,t)}function Kz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function h1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Jz(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function Xz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Vl(e){return e instanceof Error&&e.name==="AbortError"}function eU(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function tU(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
351
395
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
352
396
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
353
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Nz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),Dz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Ez(e)}))}function Dz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var Tl=Nz,Pz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Vl=Pz;function zz(e,t,r){switch(t){case"image":return Uz(e,r[t]);case"video":return Rz(e,r[t]);case"sticker":return Fz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Uz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Vl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Rz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Vl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Fz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Vl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Vz=zz;async function Bz(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return qz(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return Gz(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return Yz(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return Hz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function qz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Gz(e,t,r){let i=t.width,n=t.height,a=await _z(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function Yz(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function Hz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var m1=Bz;function Zz(e){switch(e.userFlow){case"placeholder":return Wz(e);case"generation-only":return Qz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Qz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ae(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ae(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ae(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=y1(),c=await m1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function Wz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ae(t,r))return{status:"aborted"};let s=y1(),c=Vz(s,a,o);if(i=await $z(t,c),Ae(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ae(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await m1(s,a,o,l.output);if(Ae(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ae(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Fl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Ae(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Kz=Zz;function Bl(e){return`${e}.generating`}function Jz(e){return`${e}.abort`}function Xz(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(Jz(d),()=>{}),y=c.global(Bl(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await Kz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){Tl(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;eU(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(Fl(h))return;Tl(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function eU(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var h1=Xz;function Bi(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function tU({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Bl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return h1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var rU=tU;function b1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=b1(e,t.$ref),n={...Pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Pi(e,t[n],r));return i}return t}function iU(e){return Pi(e,{...e})}function nU(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function oU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return aU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function aU(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=lU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function lU(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var v1=oU;function Ce(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function w1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function k1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?sU(e,c,r,i,n,a,o,s):x1(e,c,r,i,n,a,o,s);case"boolean":return I1(e,c,r,i,n,a,o,s);case"number":case"integer":return A1(e,c,r,i,n,a,o,s);case"object":return Ll(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return uU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ll(e,t,r,i,n,a,o,s){let c=v1(t.schema??{},i).reduce((l,u)=>{let d=k1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function x1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ce(t,r,o),y=Ce(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=Qi(d,m,f,t.schema.default,""),k=l(p,b),w=cU(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function sU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ce(t,r,o),{labels:y,icons:f}=w1(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:Ce(t,r,o,x),icon:f[x]})),b=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function I1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ce(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function A1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ce(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function uU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ce(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=w1(t.schema),I=Zi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:x1,boolean:I1,integer:A1,object:Ll},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:Ce(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>Ll(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=Qi(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function cU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var dU=k1,pU={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Mg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function jg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Mg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Mg(g);n[a(l.id,g)]=y}})}});let c={...pU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function $g(e){return typeof e.document=="function"?e.document():e.document}function Eg(e,t,r){let i=iU(e),n=b1(i,t.inputReference);if(!nU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=v1(a,t);return{inputSchema:a,properties:o}}function _g(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=dU(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];h1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function gU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=$g(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Eg(c,s,a.debug);return jg(y,i,r,i.kind),_g(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve($g(s)).then(g=>{let{inputSchema:y,properties:f}=Eg(g,s,a.debug);jg(f,i,r,i.kind),u=_g(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var fU=gU;async function yU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return rU(e,t);case"schema":return fU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var mU=yU;function hU(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new CN(o,r)),o}return i}var bU=hU;function vU(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var wU=vU,kl="@imgly/plugin-ai-generation",kU=`
397
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function rU(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),iU(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Kz(e)}))}function iU(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var Tl=rU,nU="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Bl=nU;function oU(e,t,r){switch(t){case"image":return aU(e,r[t]);case"video":return lU(e,r[t]);case"sticker":return sU(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function aU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Bl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function lU(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Bl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function sU(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Bl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var uU=oU;async function cU(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return dU(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return pU(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return gU(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return fU(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function dU(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function pU(e,t,r){let i=t.width,n=t.height,a=await Jz(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function gU(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function fU(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var v1=cU;function yU(e){switch(e.userFlow){case"placeholder":return bU(e);case"generation-only":return mU(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function mU(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=h1(),c=await v1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function bU(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=h1(),c=uU(s,a,o);if(i=await Wz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await v1(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Vl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var hU=yU;function ql(e){return`${e}.generating`}function vU(e){return`${e}.abort`}function wU(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(vU(d),()=>{}),y=c.global(ql(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await hU({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Tl(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;kU(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(Vl(b))return;Tl(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function kU(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var w1=wU;function Ui(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function xU({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ql(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return w1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var IU=xU;function k1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Oi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=k1(e,t.$ref),n={...Oi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Oi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Oi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Oi(e,t[n],r));return i}return t}function CU(e){return Oi(e,{...e})}function AU(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function SU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return MU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function MU(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=jU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function jU(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var x1=SU;function I1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function C1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?$U(e,c,r,i,n,a,o,s):A1(e,c,r,i,n,a,o,s);case"boolean":return S1(e,c,r,i,n,a,o,s);case"number":case"integer":return M1(e,c,r,i,n,a,o,s);case"object":return Ol(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return _U(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ol(e,t,r,i,n,a,o,s){let c=x1(t.schema??{},i).reduce((l,u)=>{let d=C1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function A1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=Ae(r.id,o,d,"placeholder"),f=qi(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Gi(d,h,f,t.schema.default,""),v=l(p,m),k=EU(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function $U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),{labels:y,icons:f}=I1(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Ae(r.id,o,d,x),icon:f[x]})),m=qi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Gi(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function S1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=qi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Gi(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function M1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=qi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Gi(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function _U(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=I1(t.schema),I=qi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:A1,boolean:S1,integer:M1,object:Ol},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:Ae(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ol(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Gi(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function EU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var LU=C1,TU={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Eg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Lg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||Eg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||Eg(g);n[a(l.id,g)]=y}})}});let c={...TU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function Tg(e){return typeof e.document=="function"?e.document():e.document}function Og(e,t,r){let i=CU(e),n=k1(i,t.inputReference);if(!AU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=x1(a,t);return{inputSchema:a,properties:o}}function Ng(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=LU(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];w1(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function OU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Tg(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Og(c,s,a.debug);return Lg(y,i,r,i.kind),Ng(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Tg(s)).then(g=>{let{inputSchema:y,properties:f}=Og(g,s,a.debug);Lg(f,i,r,i.kind),u=Ng(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var NU=OU;async function DU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return IU(e,t);case"schema":return NU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var PU=DU;function zU(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new HN(o,r)),o}return i}var UU=zU;function RU(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var FU=RU,xl="@imgly/plugin-ai-generation",VU=`
354
398
  <svg>
355
399
  <symbol
356
400
  fill="none"
@@ -368,7 +412,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
368
412
  fill="none"
369
413
  xmlns="http://www.w3.org/2000/svg"
370
414
  viewBox="0 0 24 24"
371
- id="${kl}/image"
415
+ id="${xl}/image"
372
416
  >
373
417
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
374
418
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -380,7 +424,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
380
424
  fill="none"
381
425
  xmlns="http://www.w3.org/2000/svg"
382
426
  viewBox="0 0 24 24"
383
- id="${kl}/video"
427
+ id="${xl}/video"
384
428
  >
385
429
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
386
430
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -391,11 +435,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
391
435
  fill="none"
392
436
  xmlns="http://www.w3.org/2000/svg"
393
437
  viewBox="0 0 24 24"
394
- id="${kl}/audio"
438
+ id="${xl}/audio"
395
439
  >
396
440
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
397
441
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
398
442
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
443
+ </symbol>
444
+ <symbol
445
+ fill="none"
446
+ xmlns="http://www.w3.org/2000/svg"
447
+ viewBox="0 0 24 24"
448
+ id="@imgly/ImageAdd"
449
+ >
450
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
451
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
452
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
453
+
399
454
  </symbol>
400
455
  <symbol
401
456
  fill="none"
@@ -411,8 +466,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
411
466
 
412
467
  </symbol>
413
468
  </svg>
414
- `,xU=kU;function IU(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await C1(2e3),await AU(t,e,r)):i(t,r)}async function AU(e,t,r){switch(t.kind){case"image":return CU(e,t,r);case"video":return SU(e,t,r);case"text":return MU(e,t,r);case"audio":return $U(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function CU(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await Az(s,r),l=await _l(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
- `,"+")}`}}async function SU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function MU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Li(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Li(n,o)}else"customPrompt"in e?a=Li(n,"custom"):a=Li(n,"improved");else a=Li(n,"generated");return jU(a,r.abortSignal)}async function*jU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await C1(100)}return{kind:"text",text:e}}function Li(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function $U(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:EU(220,i),duration:i,thumbnailUrl:void 0}}function EU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return _U(i,44100)}function _U(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function C1(e){return new Promise(t=>{setTimeout(t,e)})}var TU=IU,S1="USER_CANCEL";function LU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Sz([...e.provider.output.middleware??[],...r?.middlewares??[],jz({enable:r?.debug}),TU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Tz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===S1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var OU=LU;async function NU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Rl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=bU(a),s=wU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=OU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mU(a,c);Lz(r.cesdk,"@imgly/plugin-ai-generation",xU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return g1.get().register(u),u}var xl=NU;function DU(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new SN(n,r,i);return r.engine.asset.addSource(a),a.id}var PU=DU;function zi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function zU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>xl(e,u,r,i)));o.push(...l),a=RU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>xl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>xl(e,d,r,i)));o.push(...u),a=UU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=PU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function UU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:Bi(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:Bi(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&Tg(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function RU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Bi(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Tg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Bl(r.id),!1).value)}var FU=zU,yo="ly.img.ai.editMode",M1="ly.img.ai.metadata";async function VU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new i1(n,M1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let b=e.cesdk.engine.editor;typeof b._update=="function"&&b._update(),m()}});break}default:}};return Promise.resolve(r)}var BU=VU;function qU(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var GU=qU;function YU(e){return`ly.img.ai.${e}.canvasMenu`}var HU=YU;function ZU(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Lg(e){let t=[];for(let r of e){let i=ZU(r);i!=null&&t.push(i)}return t}function QU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=HU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?Lg(o.children):n??[]}return Lg(i.children)}var WU=QU;function KU(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return JU(e,t);case"image":return XU(e,t);case"video":return eR(e,t);case"audio":return tR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function JU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function XU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await _l(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),m=r.engine.block.getCropScaleY(a),b=r.engine.block.getCropTranslationX(a),k=r.engine.block.getCropTranslationY(a),w=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,m),r.engine.block.setCropTranslationX(a,b),r.engine.block.setCropTranslationY(a,k),r.engine.block.setCropRotation(a,w),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let h=e.output.url,x=await _l(h,t.cesdk.engine),M=x.width/x.height,C=Math.abs(y-M)>.001,_=c?[{uri:h,width:x.width,height:x.height}]:void 0,$=h,E=()=>{_==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",_)),r.engine.block.setString(o,"fill/image/previewFileURI","")};E(),await r.engine.block.forceLoadResources([o]),C?r.engine.block.setContentFillMode(a,"Cover"):I();let v=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{E(),C?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:v,onAfter:j,onCancel:()=>{v()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function eR(e,t){throw new Error("Function not implemented.")}async function tR(e,t){throw new Error("Function not implemented.")}var rR=KU;function iR(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var nR=iR,oR=class j1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new j1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=oR;function aR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new i1(e.cesdk.engine,M1),l=e.lock??!0?nR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(S1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await rR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),Tl(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Og=aR;function lR(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=WU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=sR(s).filter(h=>{if(h==="ly.img.separator")return!0;let x=h.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let C=h.scopes;if(C!=null&&C.length>0&&!n.every(_=>C.every($=>e.engine.block.isAllowedByScope(_,$))))return!1;if(h.enable!=null){if(typeof h.enable=="function")return h.enable({engine:e.engine});if(typeof h.enable=="boolean")return h.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((h,x)=>{if(x.provider.kind!==e.kind)return h;let M=c.map(C=>{if(C==="ly.img.separator")return C;if(x.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let _=g1.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[C.id]!=null);if(_!=null){let $={definition:C,providerInitializationResult:_};return l.push($),$}else return}}).filter(fo);return M=GU(M),M.length===0||M.every(C=>C==="ly.img.separator")||M.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||h.push({providerInitializationResult:x,quickActions:M}),h},[]);if(u.length===0)if(l.length>0){let h=new Map;l.forEach(M=>{let C=M.definition.id;h.has(C)||h.set(C,M)});let x=Array.from(h.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:h})=>({id:h.provider.id,label:Bi(h.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:h}}})=>h===p.value?.id),y=n.every(h=>i.engine.block.getState(h).type==="Ready"),{builder:f,experimental:m,state:b}=i,k=b(`${t}.isGenerating`,!1),w=b(`${t}.toggleExpandedState`,void 0),I=async(h,x,M)=>{k.setValue(!0);try{return await M(h,x)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:h})=>{if(w.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===w.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(E=>E!=="ly.img.separator"&&E.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Bi($.provider)})),C=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(C,{engine:e.engine});M.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Og({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(C=>{if(C==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}C.definition.render!=null&&C.definition.render({...i,toggleExpand:()=>{w.setValue(C.definition.id)},isExpanded:!1,generate:Og({blockIds:n,providerInitializationResult:C.providerInitializationResult??g?.providerInitializationResult,quickAction:C.definition,middlewares:[I],confirmation:C.definition.defaults?.confirmation??!0,close:h,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:h,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function sR(e){return e.map(t=>t==="ly.img.separator"?t:Rl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var uR=lR;async function cR(e){let t=await uR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await BU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var dR=cR,qee=5*60*1e3,pR=typeof global=="object"&&global&&global.Object===Object&&global,$1=pR,gR=typeof self=="object"&&self&&self.Object===Object&&self,fR=$1||gR||Function("return this")(),ae=fR,yR=ae.Symbol,Zt=yR,E1=Object.prototype,mR=E1.hasOwnProperty,hR=E1.toString,Oi=Zt?Zt.toStringTag:void 0;function bR(e){var t=mR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=hR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var vR=bR,wR=Object.prototype,kR=wR.toString;function xR(e){return kR.call(e)}var IR=xR,AR="[object Null]",CR="[object Undefined]",Ng=Zt?Zt.toStringTag:void 0;function SR(e){return e==null?e===void 0?CR:AR:Ng&&Ng in Object(e)?vR(e):IR(e)}var Wi=SR;function MR(e){return e!=null&&typeof e=="object"}var ql=MR,Gee=Array.isArray;function jR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _1=jR,$R="[object AsyncFunction]",ER="[object Function]",_R="[object GeneratorFunction]",TR="[object Proxy]";function LR(e){if(!_1(e))return!1;var t=Wi(e);return t==ER||t==_R||t==$R||t==TR}var OR=LR,NR=ae["__core-js_shared__"],Il=NR,Dg=function(){var e=/[^.]+$/.exec(Il&&Il.keys&&Il.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function DR(e){return!!Dg&&Dg in e}var PR=DR,zR=Function.prototype,UR=zR.toString;function RR(e){if(e!=null){try{return UR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=RR,FR=/[\\^$.*+?()[\]{}|]/g,VR=/^\[object .+?Constructor\]$/,BR=Function.prototype,qR=Object.prototype,GR=BR.toString,YR=qR.hasOwnProperty,HR=RegExp("^"+GR.call(YR).replace(FR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZR(e){if(!_1(e)||PR(e))return!1;var t=OR(e)?HR:VR;return t.test(Be(e))}var QR=ZR;function WR(e,t){return e?.[t]}var KR=WR;function JR(e,t){var r=KR(e,t);return QR(r)?r:void 0}var Xt=JR,XR=Xt(ae,"WeakMap"),Ol=XR;function eF(e,t){return e===t||e!==e&&t!==t}var tF=eF,rF=9007199254740991;function iF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rF}var nF=iF,Yee=Object.prototype,oF="[object Arguments]";function aF(e){return ql(e)&&Wi(e)==oF}var Pg=aF,T1=Object.prototype,lF=T1.hasOwnProperty,sF=T1.propertyIsEnumerable,Hee=Pg(function(){return arguments}())?Pg:function(e){return ql(e)&&lF.call(e,"callee")&&!sF.call(e,"callee")},L1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zg=L1&&typeof module=="object"&&module&&!module.nodeType&&module,uF=zg&&zg.exports===L1,Ug=uF?ae.Buffer:void 0,Zee=Ug?Ug.isBuffer:void 0,cF="[object Arguments]",dF="[object Array]",pF="[object Boolean]",gF="[object Date]",fF="[object Error]",yF="[object Function]",mF="[object Map]",hF="[object Number]",bF="[object Object]",vF="[object RegExp]",wF="[object Set]",kF="[object String]",xF="[object WeakMap]",IF="[object ArrayBuffer]",AF="[object DataView]",CF="[object Float32Array]",SF="[object Float64Array]",MF="[object Int8Array]",jF="[object Int16Array]",$F="[object Int32Array]",EF="[object Uint8Array]",_F="[object Uint8ClampedArray]",TF="[object Uint16Array]",LF="[object Uint32Array]",F={};F[CF]=F[SF]=F[MF]=F[jF]=F[$F]=F[EF]=F[_F]=F[TF]=F[LF]=!0;F[cF]=F[dF]=F[IF]=F[pF]=F[AF]=F[gF]=F[fF]=F[yF]=F[mF]=F[hF]=F[bF]=F[vF]=F[wF]=F[kF]=F[xF]=!1;function OF(e){return ql(e)&&nF(e.length)&&!!F[Wi(e)]}var NF=OF;function DF(e){return function(t){return e(t)}}var PF=DF,O1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=O1&&typeof module=="object"&&module&&!module.nodeType&&module,zF=Ri&&Ri.exports===O1,Al=zF&&$1.process,UF=function(){try{var e=Ri&&Ri.require&&Ri.require("util").types;return e||Al&&Al.binding&&Al.binding("util")}catch{}}(),Rg=UF,Fg=Rg&&Rg.isTypedArray,Qee=Fg?PF(Fg):NF,RF=Object.prototype,Wee=RF.hasOwnProperty;function FF(e,t){return function(r){return e(t(r))}}var VF=FF,Kee=VF(Object.keys,Object),BF=Object.prototype,Jee=BF.hasOwnProperty,qF=Xt(Object,"create"),qi=qF;function GF(){this.__data__=qi?qi(null):{},this.size=0}var YF=GF;function HF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ZF=HF,QF="__lodash_hash_undefined__",WF=Object.prototype,KF=WF.hasOwnProperty;function JF(e){var t=this.__data__;if(qi){var r=t[e];return r===QF?void 0:r}return KF.call(t,e)?t[e]:void 0}var XF=JF,eV=Object.prototype,tV=eV.hasOwnProperty;function rV(e){var t=this.__data__;return qi?t[e]!==void 0:tV.call(t,e)}var iV=rV,nV="__lodash_hash_undefined__";function oV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qi&&t===void 0?nV:t,this}var aV=oV;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=YF;er.prototype.delete=ZF;er.prototype.get=XF;er.prototype.has=iV;er.prototype.set=aV;var Vg=er;function lV(){this.__data__=[],this.size=0}var sV=lV;function uV(e,t){for(var r=e.length;r--;)if(tF(e[r][0],t))return r;return-1}var mo=uV,cV=Array.prototype,dV=cV.splice;function pV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():dV.call(t,r,1),--this.size,!0}var gV=pV;function fV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var yV=fV;function mV(e){return mo(this.__data__,e)>-1}var hV=mV;function bV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var vV=bV;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=sV;tr.prototype.delete=gV;tr.prototype.get=yV;tr.prototype.has=hV;tr.prototype.set=vV;var ho=tr,wV=Xt(ae,"Map"),Gi=wV;function kV(){this.size=0,this.__data__={hash:new Vg,map:new(Gi||ho),string:new Vg}}var xV=kV;function IV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var AV=IV;function CV(e,t){var r=e.__data__;return AV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var bo=CV;function SV(e){var t=bo(this,e).delete(e);return this.size-=t?1:0,t}var MV=SV;function jV(e){return bo(this,e).get(e)}var $V=jV;function EV(e){return bo(this,e).has(e)}var _V=EV;function TV(e,t){var r=bo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LV=TV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=xV;rr.prototype.delete=MV;rr.prototype.get=$V;rr.prototype.has=_V;rr.prototype.set=LV;var N1=rr;function OV(){this.__data__=new ho,this.size=0}var NV=OV;function DV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var PV=DV;function zV(e){return this.__data__.get(e)}var UV=zV;function RV(e){return this.__data__.has(e)}var FV=RV,VV=200;function BV(e,t){var r=this.__data__;if(r instanceof ho){var i=r.__data__;if(!Gi||i.length<VV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new N1(i)}return r.set(e,t),this.size=r.size,this}var qV=BV;function Ki(e){var t=this.__data__=new ho(e);this.size=t.size}Ki.prototype.clear=NV;Ki.prototype.delete=PV;Ki.prototype.get=UV;Ki.prototype.has=FV;Ki.prototype.set=qV;var GV=Object.prototype,Xee=GV.propertyIsEnumerable,YV=Xt(ae,"DataView"),Nl=YV,HV=Xt(ae,"Promise"),Dl=HV,ZV=Xt(ae,"Set"),Pl=ZV,Bg="[object Map]",QV="[object Object]",qg="[object Promise]",Gg="[object Set]",Yg="[object WeakMap]",Hg="[object DataView]",WV=Be(Nl),KV=Be(Gi),JV=Be(Dl),XV=Be(Pl),eB=Be(Ol),Gt=Wi;(Nl&&Gt(new Nl(new ArrayBuffer(1)))!=Hg||Gi&&Gt(new Gi)!=Bg||Dl&&Gt(Dl.resolve())!=qg||Pl&&Gt(new Pl)!=Gg||Ol&&Gt(new Ol)!=Yg)&&(Gt=function(e){var t=Wi(e),r=t==QV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case WV:return Hg;case KV:return Bg;case JV:return qg;case XV:return Gg;case eB:return Yg}return t});var ete=ae.Uint8Array,tB="__lodash_hash_undefined__";function rB(e){return this.__data__.set(e,tB),this}var iB=rB;function nB(e){return this.__data__.has(e)}var oB=nB;function zl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new N1;++t<r;)this.add(e[t])}zl.prototype.add=zl.prototype.push=iB;zl.prototype.has=oB;var Zg=Zt?Zt.prototype:void 0,tte=Zg?Zg.valueOf:void 0,aB=Object.prototype,rte=aB.hasOwnProperty,lB=Object.prototype,ite=lB.hasOwnProperty,nte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ote=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ate=new RegExp(/[A-Fa-f0-9]{2}/,"g");function sB(e){return e==null?[]:Array.isArray(e)?e:[e]}var uB=sB;function cB(e){return`
469
+ `,BU=VU;function qU(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await j1(2e3),await GU(t,e,r)):i(t,r)}async function GU(e,t,r){switch(t.kind){case"image":return HU(e,t,r);case"video":return YU(e,t,r);case"text":return ZU(e,t,r);case"audio":return WU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function HU(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await Gz(s,r),l=await Ll(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
470
+ `,"+")}`}}async function YU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function ZU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=_i(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=_i(n,o)}else"customPrompt"in e?a=_i(n,"custom"):a=_i(n,"improved");else a=_i(n,"generated");return QU(a,r.abortSignal)}async function*QU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await j1(100)}return{kind:"text",text:e}}function _i(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function WU(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:KU(220,i),duration:i,thumbnailUrl:void 0}}function KU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return JU(i,44100)}function JU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function j1(e){return new Promise(t=>{setTimeout(t,e)})}var XU=qU,$1="USER_CANCEL";function eR(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Yz([...e.provider.output.middleware??[],...r?.middlewares??[],Qz({enable:r?.debug}),XU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Xz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Vl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var tR=eR;async function rR(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Fl.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=UU(a),s=FU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=tR({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await PU(a,c);eU(r.cesdk,"@imgly/plugin-ai-generation",BU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return m1.get().register(u),u}var Il=rR;function iR(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new YN(n,r,i);return r.engine.asset.addSource(a),a.id}var nR=iR;function uo(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function oR(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Il(e,u,r,i)));o.push(...l),a=lR({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Il(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Il(e,d,r,i)));o.push(...u),a=aR({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=nR({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function aR({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:Ui(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:uo(e,`${A}.label`),icon:f.value!==A&&sR(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:uo(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:uo(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function lR({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:Ui(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:uo(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function sR(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ql(r.id),!1).value)}var uR=oR,yo="ly.img.ai.editMode",_1="ly.img.ai.metadata";async function cR(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new a1(n,_1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let h=s.applyCallbacks?.onApply;h!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let m=e.cesdk.engine.editor;typeof m._update=="function"&&m._update(),h()}});break}default:}};return Promise.resolve(r)}var dR=cR;function pR(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var gR=pR;function fR(e){return`ly.img.ai.${e}.canvasMenu`}var yR=fR;function mR(e){if(typeof e=="string")return e;if(e!=null&&typeof e=="object"&&"id"in e&&typeof e.id=="string")return e.id}function Dg(e){let t=[];for(let r of e){let i=mR(r);i!=null&&t.push(i)}return t}function bR(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=yR(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?Dg(o.children):n??[]}return Dg(i.children)}var hR=bR;function vR(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return wR(e,t);case"image":return kR(e,t);case"video":return xR(e,t);case"audio":return IR(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function wR(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function kR(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l=r.engine.block.getString(o,"fill/image/imageFileURI"),u=r.engine.block.getString(o,"fill/image/previewFileURI"),d=r.engine.block.getContentFillMode(a),p=await r.engine.editor.getMimeType(c?.uri??l),g=await Ll(c?.uri??l,t.cesdk.engine),y=g.width/g.height;if(n?.throwIfAborted(),p==="image/svg+xml")throw new Error("SVG images are not supported");let f=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),m=r.engine.block.getCropTranslationX(a),v=r.engine.block.getCropTranslationY(a),k=r.engine.block.getCropRotation(a),I=()=>{r.engine.block.setCropScaleX(a,f),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,m),r.engine.block.setCropTranslationY(a,v),r.engine.block.setCropRotation(a,k),r.engine.block.setContentFillMode(a,d)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let b=e.output.url,x=await Ll(b,t.cesdk.engine),M=x.width/x.height,S=Math.abs(y-M)>.001,E=c?[{uri:b,width:x.width,height:x.height}]:void 0,$=b,_=()=>{E==null?r.engine.block.setString(o,"fill/image/imageFileURI",$):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",E)),r.engine.block.setString(o,"fill/image/previewFileURI","")};_(),await r.engine.block.forceLoadResources([o]),S?r.engine.block.setContentFillMode(a,"Cover"):I();let w=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s),r.engine.block.setString(o,"fill/image/imageFileURI",l);r.engine.block.setString(o,"fill/image/previewFileURI",u),I()},j=()=>{_(),S?r.engine.block.setContentFillMode(a,"Cover"):I()};return{applyCallbacks:{onBefore:w,onAfter:j,onCancel:()=>{w()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function xR(e,t){throw new Error("Function not implemented.")}async function IR(e,t){throw new Error("Function not implemented.")}var CR=vR;function AR(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var SR=AR,MR=class E1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new E1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Ve=MR;function jR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new a1(e.cesdk.engine,_1),l=e.lock??!0?SR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Ve.get().register(u,{onCancelGeneration:()=>{o.abort($1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await CR(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Ve.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),Tl(u.error??u.message,{cesdk:e.cesdk,provider:e.providerInitializationResult.provider,middlewareOptions:u.middlewareOptions}),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Pg=jR;function $R(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=hR({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=_R(s).filter(b=>{if(b==="ly.img.separator")return!0;let x=b.id.replace("ly.img.",""),M=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${x}`;if(!e.cesdk.feature.isEnabled(M,{engine:e.engine}))return!1;let S=b.scopes;if(S!=null&&S.length>0&&!n.every(E=>S.every($=>e.engine.block.isAllowedByScope(E,$))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,x)=>{if(x.provider.kind!==e.kind)return b;let M=c.map(S=>{if(S==="ly.img.separator")return S;if(x.provider.input?.quickActions?.supported?.[S.id]!=null)return{definition:S};{let E=m1.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==x.provider.id).find($=>$.provider.input?.quickActions?.supported?.[S.id]!=null);if(E!=null){let $={definition:S,providerInitializationResult:E};return l.push($),$}else return}}).filter(fo);return M=gR(M),M.length===0||M.every(S=>S==="ly.img.separator")||M.every(S=>S==="ly.img.separator"||S.providerInitializationResult!=null)||b.push({providerInitializationResult:x,quickActions:M}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(M=>{let S=M.definition.id;b.has(S)||b.set(S,M)});let x=Array.from(b.values());u.push({providerInitializationResult:x[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:x})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Ui(b.provider)})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:h,state:m}=i,v=m(`${t}.isGenerating`,!1),k=m(`${t}.toggleExpandedState`,void 0),I=async(b,x,M)=>{v.setValue(!0);try{return await M(b,x)}finally{v.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:v.value,trailingIcon:null,children:({close:b})=>{if(k.value!==void 0){let x=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===k.value);if(x==null||x.definition.render==null)return;let M=u.filter(({quickActions:$})=>$.some(_=>_!=="ly.img.separator"&&_.definition.id===x.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:Ui($.provider)})),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,E=e.cesdk.feature.isEnabled(S,{engine:e.engine});M.length>1&&E&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:M,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>x.definition.render({...i,toggleExpand:()=>{k.setValue(void 0)},isExpanded:!0,generate:Pg({blockIds:n,providerInitializationResult:x.providerInitializationResult??g?.providerInitializationResult,quickAction:x.definition,middlewares:[I],confirmation:x.definition.defaults?.confirmation??!0,lock:x.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:x.providerInitializationResult?.provider.id??p.value.id})})}else{let x=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,M=e.cesdk.feature.isEnabled(x,{engine:e.engine});d.length>1&&M&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{h.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(S=>{if(S==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}S.definition.render!=null&&S.definition.render({...i,toggleExpand:()=>{k.setValue(S.definition.id)},isExpanded:!1,generate:Pg({blockIds:n,providerInitializationResult:S.providerInitializationResult??g?.providerInitializationResult,quickAction:S.definition,middlewares:[I],confirmation:S.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:S.providerInitializationResult?.provider.id??p.value.id})})}})}})}}})};return Promise.resolve(r)}function _R(e){return e.map(t=>t==="ly.img.separator"?t:Fl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var ER=$R;async function LR(e){let t=await ER({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await dR({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Ve.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Ve.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var TR=LR,fte=5*60*1e3,OR=typeof global=="object"&&global&&global.Object===Object&&global,L1=OR,NR=typeof self=="object"&&self&&self.Object===Object&&self,DR=L1||NR||Function("return this")(),ae=DR,PR=ae.Symbol,Qt=PR,T1=Object.prototype,zR=T1.hasOwnProperty,UR=T1.toString,Ei=Qt?Qt.toStringTag:void 0;function RR(e){var t=zR.call(e,Ei),r=e[Ei];try{e[Ei]=void 0;var i=!0}catch{}var n=UR.call(e);return i&&(t?e[Ei]=r:delete e[Ei]),n}var FR=RR,VR=Object.prototype,BR=VR.toString;function qR(e){return BR.call(e)}var GR=qR,HR="[object Null]",YR="[object Undefined]",zg=Qt?Qt.toStringTag:void 0;function ZR(e){return e==null?e===void 0?YR:HR:zg&&zg in Object(e)?FR(e):GR(e)}var Hi=ZR;function QR(e){return e!=null&&typeof e=="object"}var Gl=QR,yte=Array.isArray;function WR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var O1=WR,KR="[object AsyncFunction]",JR="[object Function]",XR="[object GeneratorFunction]",eF="[object Proxy]";function tF(e){if(!O1(e))return!1;var t=Hi(e);return t==JR||t==XR||t==KR||t==eF}var rF=tF,iF=ae["__core-js_shared__"],Cl=iF,Ug=function(){var e=/[^.]+$/.exec(Cl&&Cl.keys&&Cl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function nF(e){return!!Ug&&Ug in e}var oF=nF,aF=Function.prototype,lF=aF.toString;function sF(e){if(e!=null){try{return lF.call(e)}catch{}try{return e+""}catch{}}return""}var qe=sF,uF=/[\\^$.*+?()[\]{}|]/g,cF=/^\[object .+?Constructor\]$/,dF=Function.prototype,pF=Object.prototype,gF=dF.toString,fF=pF.hasOwnProperty,yF=RegExp("^"+gF.call(fF).replace(uF,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mF(e){if(!O1(e)||oF(e))return!1;var t=rF(e)?yF:cF;return t.test(qe(e))}var bF=mF;function hF(e,t){return e?.[t]}var vF=hF;function wF(e,t){var r=vF(e,t);return bF(r)?r:void 0}var er=wF,kF=er(ae,"WeakMap"),Nl=kF;function xF(e,t){return e===t||e!==e&&t!==t}var IF=xF,CF=9007199254740991;function AF(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=CF}var SF=AF,mte=Object.prototype,MF="[object Arguments]";function jF(e){return Gl(e)&&Hi(e)==MF}var Rg=jF,N1=Object.prototype,$F=N1.hasOwnProperty,_F=N1.propertyIsEnumerable,bte=Rg(function(){return arguments}())?Rg:function(e){return Gl(e)&&$F.call(e,"callee")&&!_F.call(e,"callee")},D1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fg=D1&&typeof module=="object"&&module&&!module.nodeType&&module,EF=Fg&&Fg.exports===D1,Vg=EF?ae.Buffer:void 0,hte=Vg?Vg.isBuffer:void 0,LF="[object Arguments]",TF="[object Array]",OF="[object Boolean]",NF="[object Date]",DF="[object Error]",PF="[object Function]",zF="[object Map]",UF="[object Number]",RF="[object Object]",FF="[object RegExp]",VF="[object Set]",BF="[object String]",qF="[object WeakMap]",GF="[object ArrayBuffer]",HF="[object DataView]",YF="[object Float32Array]",ZF="[object Float64Array]",QF="[object Int8Array]",WF="[object Int16Array]",KF="[object Int32Array]",JF="[object Uint8Array]",XF="[object Uint8ClampedArray]",eV="[object Uint16Array]",tV="[object Uint32Array]",V={};V[YF]=V[ZF]=V[QF]=V[WF]=V[KF]=V[JF]=V[XF]=V[eV]=V[tV]=!0;V[LF]=V[TF]=V[GF]=V[OF]=V[HF]=V[NF]=V[DF]=V[PF]=V[zF]=V[UF]=V[RF]=V[FF]=V[VF]=V[BF]=V[qF]=!1;function rV(e){return Gl(e)&&SF(e.length)&&!!V[Hi(e)]}var iV=rV;function nV(e){return function(t){return e(t)}}var oV=nV,P1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Di=P1&&typeof module=="object"&&module&&!module.nodeType&&module,aV=Di&&Di.exports===P1,Al=aV&&L1.process,lV=function(){try{var e=Di&&Di.require&&Di.require("util").types;return e||Al&&Al.binding&&Al.binding("util")}catch{}}(),Bg=lV,qg=Bg&&Bg.isTypedArray,vte=qg?oV(qg):iV,sV=Object.prototype,wte=sV.hasOwnProperty;function uV(e,t){return function(r){return e(t(r))}}var cV=uV,kte=cV(Object.keys,Object),dV=Object.prototype,xte=dV.hasOwnProperty,pV=er(Object,"create"),Ri=pV;function gV(){this.__data__=Ri?Ri(null):{},this.size=0}var fV=gV;function yV(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var mV=yV,bV="__lodash_hash_undefined__",hV=Object.prototype,vV=hV.hasOwnProperty;function wV(e){var t=this.__data__;if(Ri){var r=t[e];return r===bV?void 0:r}return vV.call(t,e)?t[e]:void 0}var kV=wV,xV=Object.prototype,IV=xV.hasOwnProperty;function CV(e){var t=this.__data__;return Ri?t[e]!==void 0:IV.call(t,e)}var AV=CV,SV="__lodash_hash_undefined__";function MV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?SV:t,this}var jV=MV;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=fV;tr.prototype.delete=mV;tr.prototype.get=kV;tr.prototype.has=AV;tr.prototype.set=jV;var Gg=tr;function $V(){this.__data__=[],this.size=0}var _V=$V;function EV(e,t){for(var r=e.length;r--;)if(IF(e[r][0],t))return r;return-1}var mo=EV,LV=Array.prototype,TV=LV.splice;function OV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TV.call(t,r,1),--this.size,!0}var NV=OV;function DV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var PV=DV;function zV(e){return mo(this.__data__,e)>-1}var UV=zV;function RV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var FV=RV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=_V;rr.prototype.delete=NV;rr.prototype.get=PV;rr.prototype.has=UV;rr.prototype.set=FV;var bo=rr,VV=er(ae,"Map"),Fi=VV;function BV(){this.size=0,this.__data__={hash:new Gg,map:new(Fi||bo),string:new Gg}}var qV=BV;function GV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var HV=GV;function YV(e,t){var r=e.__data__;return HV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ho=YV;function ZV(e){var t=ho(this,e).delete(e);return this.size-=t?1:0,t}var QV=ZV;function WV(e){return ho(this,e).get(e)}var KV=WV;function JV(e){return ho(this,e).has(e)}var XV=JV;function eB(e,t){var r=ho(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var tB=eB;function ir(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ir.prototype.clear=qV;ir.prototype.delete=QV;ir.prototype.get=KV;ir.prototype.has=XV;ir.prototype.set=tB;var z1=ir;function rB(){this.__data__=new bo,this.size=0}var iB=rB;function nB(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var oB=nB;function aB(e){return this.__data__.get(e)}var lB=aB;function sB(e){return this.__data__.has(e)}var uB=sB,cB=200;function dB(e,t){var r=this.__data__;if(r instanceof bo){var i=r.__data__;if(!Fi||i.length<cB-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new z1(i)}return r.set(e,t),this.size=r.size,this}var pB=dB;function Yi(e){var t=this.__data__=new bo(e);this.size=t.size}Yi.prototype.clear=iB;Yi.prototype.delete=oB;Yi.prototype.get=lB;Yi.prototype.has=uB;Yi.prototype.set=pB;var gB=Object.prototype,Ite=gB.propertyIsEnumerable,fB=er(ae,"DataView"),Dl=fB,yB=er(ae,"Promise"),Pl=yB,mB=er(ae,"Set"),zl=mB,Hg="[object Map]",bB="[object Object]",Yg="[object Promise]",Zg="[object Set]",Qg="[object WeakMap]",Wg="[object DataView]",hB=qe(Dl),vB=qe(Fi),wB=qe(Pl),kB=qe(zl),xB=qe(Nl),Ht=Hi;(Dl&&Ht(new Dl(new ArrayBuffer(1)))!=Wg||Fi&&Ht(new Fi)!=Hg||Pl&&Ht(Pl.resolve())!=Yg||zl&&Ht(new zl)!=Zg||Nl&&Ht(new Nl)!=Qg)&&(Ht=function(e){var t=Hi(e),r=t==bB?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case hB:return Wg;case vB:return Hg;case wB:return Yg;case kB:return Zg;case xB:return Qg}return t});var Cte=ae.Uint8Array,IB="__lodash_hash_undefined__";function CB(e){return this.__data__.set(e,IB),this}var AB=CB;function SB(e){return this.__data__.has(e)}var MB=SB;function Ul(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new z1;++t<r;)this.add(e[t])}Ul.prototype.add=Ul.prototype.push=AB;Ul.prototype.has=MB;var Kg=Qt?Qt.prototype:void 0,Ate=Kg?Kg.valueOf:void 0,jB=Object.prototype,Ste=jB.hasOwnProperty,$B=Object.prototype,Mte=$B.hasOwnProperty,jte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$te=new RegExp(/[A-Fa-f0-9]{1}/,"g"),_te=new RegExp(/[A-Fa-f0-9]{2}/,"g");function _B(e){return e==null?[]:Array.isArray(e)?e:[e]}var EB=_B;function LB(e){return`
416
471
  You are an AI writing assistant tasked with improving a given text based on a specific type of improvement requested. Your goal is to enhance the text while maintaining its original meaning and intent.
417
472
 
418
473
  Here is the original text you will be working with:
@@ -436,7 +491,7 @@ Please follow these steps to improve the text:
436
491
  7. If you cannot make any meaningful improvements, return the original text as is.
437
492
 
438
493
  Once you have made the improvements, only return the improved text and nothing else.
439
- `}var dB=cB,vo="improve",Qg=`ly.img.${vo}`,pB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,gB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function fB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${gB}`]:"Improve Writing"}}),{id:Qg,type:"quick",kind:"text",scopes:["text/edit"],label:`${pB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Qg}.button`,{label:fB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:dB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),mB=yB;function hB(e){return`
494
+ `}var TB=LB,vo="improve",Jg=`ly.img.${vo}`,OB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,NB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function DB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var PB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${NB}`]:"Improve Writing"}}),{id:Jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${OB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Jg}.button`,{label:DB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:TB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),zB=PB;function UB(e){return`
440
495
  You are tasked with fixing spelling and grammar errors in a given text. Your goal is to improve the text while maintaining its original meaning and style. Here is the text you need to correct:
441
496
 
442
497
  <original_text>
@@ -466,7 +521,7 @@ Please follow these steps to complete the task:
466
521
  After making the necessary corrections, please provide only the improved output and nothing else.
467
522
 
468
523
  Remember to preserve the original structure and formatting of the text as much as possible while making your corrections.
469
- `}var bB=hB,wo="fix",Wg=`ly.img.${wo}`,vB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,wB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function kB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var xB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${wB}`]:"Fix Spelling & Grammar"}}),{id:Wg,type:"quick",kind:"text",scopes:["text/edit"],label:`${vB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Wg}.button`,{label:kB(a),icon:"@imgly/CheckmarkAll",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:bB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to fix text. Please try again.",duration:"medium"})}}})}}),IB=xB;function AB(e){return`
524
+ `}var RB=UB,wo="fix",Xg=`ly.img.${wo}`,FB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,VB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function BB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${VB}`]:"Fix Spelling & Grammar"}}),{id:Xg,type:"quick",kind:"text",scopes:["text/edit"],label:`${FB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Xg}.button`,{label:BB(a),icon:"@imgly/CheckmarkAll",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:RB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to fix text. Please try again.",duration:"medium"})}}})}}),GB=qB;function HB(e){return`
470
525
  You will be given a text to shorten. Your task is to reduce the length of the text by 30% to 50% while maintaining its original voice, perspective, and key information. This is not a summary - you should preserve the style and tone of the original text.
471
526
 
472
527
  Here is the original text:
@@ -497,7 +552,7 @@ To complete this task, follow these steps:
497
552
  6. Once you've finished shortening, review the text to ensure it still reads smoothly and retains the essence of the original.
498
553
 
499
554
  Provide only the shortened version of the text in your response, without any additional comments, tags or explanations.
500
- `}var CB=AB,ko="shorter",Kg=`ly.img.${ko}`,SB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,MB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function jB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var $B=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${MB}`]:"Make Shorter"}}),{id:Kg,type:"quick",kind:"text",scopes:["text/edit"],label:`${SB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Kg}.button`,{label:jB(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:CB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),EB=$B;function _B(e){return`
555
+ `}var YB=HB,ko="shorter",e1=`ly.img.${ko}`,ZB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,QB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function WB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var KB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${QB}`]:"Make Shorter"}}),{id:e1,type:"quick",kind:"text",scopes:["text/edit"],label:`${ZB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${e1}.button`,{label:WB(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:YB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),JB=KB;function XB(e){return`
501
556
  You are tasked with expanding a given text to make it longer. Here's how to proceed:
502
557
 
503
558
  First, you will be provided with the original text:
@@ -531,7 +586,7 @@ Only return the longer text and nothing else.
531
586
  Make sure to only return the expanded text and nothing else. Do not include any additional information or comments in your response about what you have done.
532
587
 
533
588
  Do not add the original text or the original_text tags to the response.
534
- `}var TB=_B,xo="longer",Jg=`ly.img.${xo}`,LB=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,OB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function NB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var DB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${OB}`]:"Make Longer"}}),{id:Jg,type:"quick",kind:"text",scopes:["text/edit"],label:`${LB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Jg}.button`,{label:NB(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:TB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),PB=DB;function zB(e,t){return`
589
+ `}var eq=XB,xo="longer",t1=`ly.img.${xo}`,tq=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,rq=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function iq(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var nq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${rq}`]:"Make Longer"}}),{id:t1,type:"quick",kind:"text",scopes:["text/edit"],label:`${tq}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${t1}.button`,{label:iq(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:eq(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),oq=nq;function aq(e,t){return`
535
590
  You will be given a piece of text and a desired tone. Your task is to rewrite the text to match the desired tone while preserving the original meaning and key information. Here's how to proceed:
536
591
 
537
592
  First, you will be provided with the original text:
@@ -553,7 +608,7 @@ To change the tone of the text:
553
608
  6. Only return the rewritten text without any additional commentary, tags or explanation.
554
609
 
555
610
  Now, rewrite the text to match the desired tone. Your response should contain only the rewritten text, without any additional explanations or comments. Do not use any tags in your response.
556
- `}var UB=zB,Io="changeTone",Ni=`ly.img.${Io}`,RB=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function Xg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var FB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],VB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${RB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:Xg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{FB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Xg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:UB(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),BB=VB,D1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},qB=Object.keys(D1);function GB(e,t){let r=D1[t]||t;return`
611
+ `}var lq=aq,Io="changeTone",Li=`ly.img.${Io}`,sq=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Fe=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function r1(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var uq=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],cq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Fe}`]:"Change Tone",[`${Fe}.professional`]:"Professional",[`${Fe}.casual`]:"Casual",[`${Fe}.friendly`]:"Friendly",[`${Fe}.serious`]:"Serious",[`${Fe}.humorous`]:"Humorous",[`${Fe}.optimistic`]:"Optimistic"}}),{id:Li,type:"quick",kind:"text",scopes:["text/edit"],label:`${sq}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Li}.popover`,{label:r1(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Li}.popover.section`,{children:()=>{a.builder.Menu(`${Li}.popover.menu`,{children:()=>{uq.forEach(s=>{t.Button(`${Li}.popover.menu.${s.id}`,{label:r1(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:lq(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),dq=cq,U1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},pq=Object.keys(U1);function gq(e,t){let r=U1[t]||t;return`
557
612
  You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
558
613
 
559
614
  1. Here is the source text to be translated:
@@ -569,7 +624,7 @@ ${r}
569
624
  3. Translate the source text into the target language. Ensure that you maintain the original meaning, tone, and style as closely as possible while adapting to the linguistic and cultural norms of the target language.
570
625
 
571
626
  4. Return only the translated text, without any additional comments, explanations, or metadata. Do not include the original text or any other information in your response.
572
- `}var YB=GB,Ao="translate",Di=`ly.img.${Ao}`,HB=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function e1(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ZB=qB.map(e=>({id:e})),QB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Di,type:"quick",kind:"text",scopes:["text/edit"],label:`${HB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Di}.popover`,{label:e1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Di}.popover.section`,{children:()=>{a.builder.Menu(`${Di}.popover.menu`,{children:()=>{ZB.forEach(s=>{t.Button(`${Di}.popover.menu.${s.id}`,{label:e1(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:YB(l,s.id),language:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to translate text. Please try again.",duration:"medium"})}}})})}})}})}})}}),WB=QB;function KB(e,t){return`
627
+ `}var fq=gq,Co="translate",Ti=`ly.img.${Co}`,yq=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function i1(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var mq=pq.map(e=>({id:e})),bq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Ti,type:"quick",kind:"text",scopes:["text/edit"],label:`${yq}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ti}.popover`,{label:i1(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ti}.popover.section`,{children:()=>{a.builder.Menu(`${Ti}.popover.menu`,{children:()=>{mq.forEach(s=>{t.Button(`${Ti}.popover.menu.${s.id}`,{label:i1(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:fq(l,s.id),language:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to translate text. Please try again.",duration:"medium"})}}})})}})}})}})}}),hq=bq;function vq(e,t){return`
573
628
  You will be given an original text and a custom prompt addition that specifies how to change the text. Your task is to modify the original text according to the prompt and return only the new, modified text.
574
629
 
575
630
  Here is the original text:
@@ -583,10 +638,10 @@ ${t}
583
638
  </change_text_to>
584
639
 
585
640
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
586
- `}var JB=KB,Co="changeTextTo",Ie=`ly.img.${Co}`,t1=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,r1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var XB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${r1}`]:"Change Text to...",[`${r1}.prompt`]:"Change Text to...",[`${t1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${t1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:JB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),eq=XB,P1="@imgly/plugin-ai-text-generation-web",tq=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function rq(e){return{async initialize({cesdk:t}){if(t==null)return;Oz(t,P1,"1.82.0"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(xN,AN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),iq(e);let r=Rl.get();r.register(mB({cesdk:t})),r.register(IB({cesdk:t})),r.register(EB({cesdk:t})),r.register(PB({cesdk:t})),r.register(BB({cesdk:t})),r.register(WB({cesdk:t})),r.register(eq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(uB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await FU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await dR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:tq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function iq(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var nq=rq,oq=e=>({name:P1,version:"1.82.0",...nq(e)}),z1=oq;var aq=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var lq=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},sq=typeof global=="object"&&global&&global.Object===Object&&global,kf=sq,uq=typeof self=="object"&&self&&self.Object===Object&&self,cq=kf||uq||Function("return this")(),le=cq,dq=le.Symbol,ar=dq,xf=Object.prototype,pq=xf.hasOwnProperty,gq=xf.toString,Ji=ar?ar.toStringTag:void 0;function fq(e){var t=pq.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=gq.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var yq=fq,mq=Object.prototype,hq=mq.toString;function bq(e){return hq.call(e)}var vq=bq,wq="[object Null]",kq="[object Undefined]",U1=ar?ar.toStringTag:void 0;function xq(e){return e==null?e===void 0?kq:wq:U1&&U1 in Object(e)?yq(e):vq(e)}var dn=xq;function Iq(e){return e!=null&&typeof e=="object"}var cs=Iq,dte=Array.isArray;function Aq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var If=Aq,Cq="[object AsyncFunction]",Sq="[object Function]",Mq="[object GeneratorFunction]",jq="[object Proxy]";function $q(e){if(!If(e))return!1;var t=dn(e);return t==Sq||t==Mq||t==Cq||t==jq}var Eq=$q,_q=le["__core-js_shared__"],Gl=_q,R1=function(){var e=/[^.]+$/.exec(Gl&&Gl.keys&&Gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tq(e){return!!R1&&R1 in e}var Lq=Tq,Oq=Function.prototype,Nq=Oq.toString;function Dq(e){if(e!=null){try{return Nq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Dq,Pq=/[\\^$.*+?()[\]{}|]/g,zq=/^\[object .+?Constructor\]$/,Uq=Function.prototype,Rq=Object.prototype,Fq=Uq.toString,Vq=Rq.hasOwnProperty,Bq=RegExp("^"+Fq.call(Vq).replace(Pq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qq(e){if(!If(e)||Lq(e))return!1;var t=Eq(e)?Bq:zq;return t.test(qe(e))}var Gq=qq;function Yq(e,t){return e?.[t]}var Hq=Yq;function Zq(e,t){var r=Hq(e,t);return Gq(r)?r:void 0}var sr=Zq,Qq=sr(le,"WeakMap"),Jl=Qq;function Wq(e,t){return e===t||e!==e&&t!==t}var Kq=Wq,Jq=9007199254740991;function Xq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jq}var eG=Xq,pte=Object.prototype,tG="[object Arguments]";function rG(e){return cs(e)&&dn(e)==tG}var F1=rG,Af=Object.prototype,iG=Af.hasOwnProperty,nG=Af.propertyIsEnumerable,gte=F1(function(){return arguments}())?F1:function(e){return cs(e)&&iG.call(e,"callee")&&!nG.call(e,"callee")},Cf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,V1=Cf&&typeof module=="object"&&module&&!module.nodeType&&module,oG=V1&&V1.exports===Cf,B1=oG?le.Buffer:void 0,fte=B1?B1.isBuffer:void 0,aG="[object Arguments]",lG="[object Array]",sG="[object Boolean]",uG="[object Date]",cG="[object Error]",dG="[object Function]",pG="[object Map]",gG="[object Number]",fG="[object Object]",yG="[object RegExp]",mG="[object Set]",hG="[object String]",bG="[object WeakMap]",vG="[object ArrayBuffer]",wG="[object DataView]",kG="[object Float32Array]",xG="[object Float64Array]",IG="[object Int8Array]",AG="[object Int16Array]",CG="[object Int32Array]",SG="[object Uint8Array]",MG="[object Uint8ClampedArray]",jG="[object Uint16Array]",$G="[object Uint32Array]",V={};V[kG]=V[xG]=V[IG]=V[AG]=V[CG]=V[SG]=V[MG]=V[jG]=V[$G]=!0;V[aG]=V[lG]=V[vG]=V[sG]=V[wG]=V[uG]=V[cG]=V[dG]=V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[hG]=V[bG]=!1;function EG(e){return cs(e)&&eG(e.length)&&!!V[dn(e)]}var _G=EG;function TG(e){return function(t){return e(t)}}var LG=TG,Sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Sf&&typeof module=="object"&&module&&!module.nodeType&&module,OG=on&&on.exports===Sf,Yl=OG&&kf.process,NG=function(){try{var e=on&&on.require&&on.require("util").types;return e||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),q1=NG,G1=q1&&q1.isTypedArray,yte=G1?LG(G1):_G,DG=Object.prototype,mte=DG.hasOwnProperty;function PG(e,t){return function(r){return e(t(r))}}var zG=PG,hte=zG(Object.keys,Object),UG=Object.prototype,bte=UG.hasOwnProperty,RG=sr(Object,"create"),ln=RG;function FG(){this.__data__=ln?ln(null):{},this.size=0}var VG=FG;function BG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qG=BG,GG="__lodash_hash_undefined__",YG=Object.prototype,HG=YG.hasOwnProperty;function ZG(e){var t=this.__data__;if(ln){var r=t[e];return r===GG?void 0:r}return HG.call(t,e)?t[e]:void 0}var QG=ZG,WG=Object.prototype,KG=WG.hasOwnProperty;function JG(e){var t=this.__data__;return ln?t[e]!==void 0:KG.call(t,e)}var XG=JG,eY="__lodash_hash_undefined__";function tY(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?eY:t,this}var rY=tY;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=VG;ur.prototype.delete=qG;ur.prototype.get=QG;ur.prototype.has=XG;ur.prototype.set=rY;var Y1=ur;function iY(){this.__data__=[],this.size=0}var nY=iY;function oY(e,t){for(var r=e.length;r--;)if(Kq(e[r][0],t))return r;return-1}var So=oY,aY=Array.prototype,lY=aY.splice;function sY(e){var t=this.__data__,r=So(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lY.call(t,r,1),--this.size,!0}var uY=sY;function cY(e){var t=this.__data__,r=So(t,e);return r<0?void 0:t[r][1]}var dY=cY;function pY(e){return So(this.__data__,e)>-1}var gY=pY;function fY(e,t){var r=this.__data__,i=So(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var yY=fY;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=nY;cr.prototype.delete=uY;cr.prototype.get=dY;cr.prototype.has=gY;cr.prototype.set=yY;var Mo=cr,mY=sr(le,"Map"),sn=mY;function hY(){this.size=0,this.__data__={hash:new Y1,map:new(sn||Mo),string:new Y1}}var bY=hY;function vY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wY=vY;function kY(e,t){var r=e.__data__;return wY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jo=kY;function xY(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t}var IY=xY;function AY(e){return jo(this,e).get(e)}var CY=AY;function SY(e){return jo(this,e).has(e)}var MY=SY;function jY(e,t){var r=jo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $Y=jY;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=bY;dr.prototype.delete=IY;dr.prototype.get=CY;dr.prototype.has=MY;dr.prototype.set=$Y;var Mf=dr;function EY(){this.__data__=new Mo,this.size=0}var _Y=EY;function TY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LY=TY;function OY(e){return this.__data__.get(e)}var NY=OY;function DY(e){return this.__data__.has(e)}var PY=DY,zY=200;function UY(e,t){var r=this.__data__;if(r instanceof Mo){var i=r.__data__;if(!sn||i.length<zY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mf(i)}return r.set(e,t),this.size=r.size,this}var RY=UY;function pn(e){var t=this.__data__=new Mo(e);this.size=t.size}pn.prototype.clear=_Y;pn.prototype.delete=LY;pn.prototype.get=NY;pn.prototype.has=PY;pn.prototype.set=RY;var FY=Object.prototype,vte=FY.propertyIsEnumerable,VY=sr(le,"DataView"),Xl=VY,BY=sr(le,"Promise"),es=BY,qY=sr(le,"Set"),ts=qY,H1="[object Map]",GY="[object Object]",Z1="[object Promise]",Q1="[object Set]",W1="[object WeakMap]",K1="[object DataView]",YY=qe(Xl),HY=qe(sn),ZY=qe(es),QY=qe(ts),WY=qe(Jl),ir=dn;(Xl&&ir(new Xl(new ArrayBuffer(1)))!=K1||sn&&ir(new sn)!=H1||es&&ir(es.resolve())!=Z1||ts&&ir(new ts)!=Q1||Jl&&ir(new Jl)!=W1)&&(ir=function(e){var t=dn(e),r=t==GY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case YY:return K1;case HY:return H1;case ZY:return Z1;case QY:return Q1;case WY:return W1}return t});var wte=le.Uint8Array,KY="__lodash_hash_undefined__";function JY(e){return this.__data__.set(e,KY),this}var XY=JY;function eH(e){return this.__data__.has(e)}var tH=eH;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=XY;rs.prototype.has=tH;var J1=ar?ar.prototype:void 0,kte=J1?J1.valueOf:void 0,rH=Object.prototype,xte=rH.hasOwnProperty,iH=Object.prototype,Ite=iH.hasOwnProperty,Ate=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Cte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Ste=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jf(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function nH(e,t){let r=await jf(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function oH(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return jf(i,t)}function aH(e){return e!==void 0}var lH=aH;function ds(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function gn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function fn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var $f=class Ef{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ef),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},sH=class _f{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new _f),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function uH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function cH({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var dH=cH,Hl="ly.img.ai.temp";async function pH(e,t){return e.engine.asset.findAllSources().includes(Hl)||e.engine.asset.addLocalSource(Hl),e.engine.asset.apply(Hl,t)}function gH(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Tf(){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 fH(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function yH(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 ps(e){return e instanceof Error&&e.name==="AbortError"}function mH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function hH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
641
+ `}var wq=vq,Ao="changeTextTo",Ie=`ly.img.${Ao}`,n1=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,o1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function Sl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var kq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${o1}`]:"Change Text to...",[`${o1}.prompt`]:"Change Text to...",[`${n1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${n1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.PromptInput(`${Ie}.prompt`,{inputLabel:Sl(l,"prompt"),placeholder:Sl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:wq(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Sl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),xq=kq,R1="@imgly/plugin-ai-text-generation-web",Iq=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function Cq(e){return{async initialize({cesdk:t}){if(t==null)return;tU(t,R1,"1.83.0-nightly.20260918"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(VN,qN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),Aq(e);let r=Fl.get();r.register(zB({cesdk:t})),r.register(GB({cesdk:t})),r.register(JB({cesdk:t})),r.register(oq({cesdk:t})),r.register(dq({cesdk:t})),r.register(hq({cesdk:t})),r.register(xq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(EB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await uR("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await TR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Iq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function Aq(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var Sq=Cq,Mq=e=>({name:R1,version:"1.83.0-nightly.20260918",...Sq(e)}),F1=Mq;function jq(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var je=jq,$q=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ar(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ar(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ar(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ar(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ar(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ar(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ar(n,t,a)}return e}var _q=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Eq=typeof global=="object"&&global&&global.Object===Object&&global,If=Eq,Lq=typeof self=="object"&&self&&self.Object===Object&&self,Tq=If||Lq||Function("return this")(),le=Tq,Oq=le.Symbol,lr=Oq,Cf=Object.prototype,Nq=Cf.hasOwnProperty,Dq=Cf.toString,Zi=lr?lr.toStringTag:void 0;function Pq(e){var t=Nq.call(e,Zi),r=e[Zi];try{e[Zi]=void 0;var i=!0}catch{}var n=Dq.call(e);return i&&(t?e[Zi]=r:delete e[Zi]),n}var zq=Pq,Uq=Object.prototype,Rq=Uq.toString;function Fq(e){return Rq.call(e)}var Vq=Fq,Bq="[object Null]",qq="[object Undefined]",V1=lr?lr.toStringTag:void 0;function Gq(e){return e==null?e===void 0?qq:Bq:V1&&V1 in Object(e)?zq(e):Vq(e)}var an=Gq;function Hq(e){return e!=null&&typeof e=="object"}var ds=Hq,Nte=Array.isArray;function Yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Af=Yq,Zq="[object AsyncFunction]",Qq="[object Function]",Wq="[object GeneratorFunction]",Kq="[object Proxy]";function Jq(e){if(!Af(e))return!1;var t=an(e);return t==Qq||t==Wq||t==Zq||t==Kq}var Xq=Jq,eG=le["__core-js_shared__"],Hl=eG,B1=function(){var e=/[^.]+$/.exec(Hl&&Hl.keys&&Hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tG(e){return!!B1&&B1 in e}var rG=tG,iG=Function.prototype,nG=iG.toString;function oG(e){if(e!=null){try{return nG.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oG,aG=/[\\^$.*+?()[\]{}|]/g,lG=/^\[object .+?Constructor\]$/,sG=Function.prototype,uG=Object.prototype,cG=sG.toString,dG=uG.hasOwnProperty,pG=RegExp("^"+cG.call(dG).replace(aG,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gG(e){if(!Af(e)||rG(e))return!1;var t=Xq(e)?pG:lG;return t.test(Ge(e))}var fG=gG;function yG(e,t){return e?.[t]}var mG=yG;function bG(e,t){var r=mG(e,t);return fG(r)?r:void 0}var ur=bG,hG=ur(le,"WeakMap"),Xl=hG;function vG(e,t){return e===t||e!==e&&t!==t}var wG=vG,kG=9007199254740991;function xG(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kG}var IG=xG,Dte=Object.prototype,CG="[object Arguments]";function AG(e){return ds(e)&&an(e)==CG}var q1=AG,Sf=Object.prototype,SG=Sf.hasOwnProperty,MG=Sf.propertyIsEnumerable,Pte=q1(function(){return arguments}())?q1:function(e){return ds(e)&&SG.call(e,"callee")&&!MG.call(e,"callee")},Mf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G1=Mf&&typeof module=="object"&&module&&!module.nodeType&&module,jG=G1&&G1.exports===Mf,H1=jG?le.Buffer:void 0,zte=H1?H1.isBuffer:void 0,$G="[object Arguments]",_G="[object Array]",EG="[object Boolean]",LG="[object Date]",TG="[object Error]",OG="[object Function]",NG="[object Map]",DG="[object Number]",PG="[object Object]",zG="[object RegExp]",UG="[object Set]",RG="[object String]",FG="[object WeakMap]",VG="[object ArrayBuffer]",BG="[object DataView]",qG="[object Float32Array]",GG="[object Float64Array]",HG="[object Int8Array]",YG="[object Int16Array]",ZG="[object Int32Array]",QG="[object Uint8Array]",WG="[object Uint8ClampedArray]",KG="[object Uint16Array]",JG="[object Uint32Array]",B={};B[qG]=B[GG]=B[HG]=B[YG]=B[ZG]=B[QG]=B[WG]=B[KG]=B[JG]=!0;B[$G]=B[_G]=B[VG]=B[EG]=B[BG]=B[LG]=B[TG]=B[OG]=B[NG]=B[DG]=B[PG]=B[zG]=B[UG]=B[RG]=B[FG]=!1;function XG(e){return ds(e)&&IG(e.length)&&!!B[an(e)]}var eH=XG;function tH(e){return function(t){return e(t)}}var rH=tH,jf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=jf&&typeof module=="object"&&module&&!module.nodeType&&module,iH=Xi&&Xi.exports===jf,Yl=iH&&If.process,nH=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),Y1=nH,Z1=Y1&&Y1.isTypedArray,Ute=Z1?rH(Z1):eH,oH=Object.prototype,Rte=oH.hasOwnProperty;function aH(e,t){return function(r){return e(t(r))}}var lH=aH,Fte=lH(Object.keys,Object),sH=Object.prototype,Vte=sH.hasOwnProperty,uH=ur(Object,"create"),tn=uH;function cH(){this.__data__=tn?tn(null):{},this.size=0}var dH=cH;function pH(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gH=pH,fH="__lodash_hash_undefined__",yH=Object.prototype,mH=yH.hasOwnProperty;function bH(e){var t=this.__data__;if(tn){var r=t[e];return r===fH?void 0:r}return mH.call(t,e)?t[e]:void 0}var hH=bH,vH=Object.prototype,wH=vH.hasOwnProperty;function kH(e){var t=this.__data__;return tn?t[e]!==void 0:wH.call(t,e)}var xH=kH,IH="__lodash_hash_undefined__";function CH(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?IH:t,this}var AH=CH;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=dH;cr.prototype.delete=gH;cr.prototype.get=hH;cr.prototype.has=xH;cr.prototype.set=AH;var Q1=cr;function SH(){this.__data__=[],this.size=0}var MH=SH;function jH(e,t){for(var r=e.length;r--;)if(wG(e[r][0],t))return r;return-1}var Mo=jH,$H=Array.prototype,_H=$H.splice;function EH(e){var t=this.__data__,r=Mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_H.call(t,r,1),--this.size,!0}var LH=EH;function TH(e){var t=this.__data__,r=Mo(t,e);return r<0?void 0:t[r][1]}var OH=TH;function NH(e){return Mo(this.__data__,e)>-1}var DH=NH;function PH(e,t){var r=this.__data__,i=Mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zH=PH;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=MH;dr.prototype.delete=LH;dr.prototype.get=OH;dr.prototype.has=DH;dr.prototype.set=zH;var jo=dr,UH=ur(le,"Map"),rn=UH;function RH(){this.size=0,this.__data__={hash:new Q1,map:new(rn||jo),string:new Q1}}var FH=RH;function VH(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BH=VH;function qH(e,t){var r=e.__data__;return BH(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=qH;function GH(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var HH=GH;function YH(e){return $o(this,e).get(e)}var ZH=YH;function QH(e){return $o(this,e).has(e)}var WH=QH;function KH(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JH=KH;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=FH;pr.prototype.delete=HH;pr.prototype.get=ZH;pr.prototype.has=WH;pr.prototype.set=JH;var $f=pr;function XH(){this.__data__=new jo,this.size=0}var eY=XH;function tY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rY=tY;function iY(e){return this.__data__.get(e)}var nY=iY;function oY(e){return this.__data__.has(e)}var aY=oY,lY=200;function sY(e,t){var r=this.__data__;if(r instanceof jo){var i=r.__data__;if(!rn||i.length<lY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $f(i)}return r.set(e,t),this.size=r.size,this}var uY=sY;function ln(e){var t=this.__data__=new jo(e);this.size=t.size}ln.prototype.clear=eY;ln.prototype.delete=rY;ln.prototype.get=nY;ln.prototype.has=aY;ln.prototype.set=uY;var cY=Object.prototype,Bte=cY.propertyIsEnumerable,dY=ur(le,"DataView"),es=dY,pY=ur(le,"Promise"),ts=pY,gY=ur(le,"Set"),rs=gY,W1="[object Map]",fY="[object Object]",K1="[object Promise]",J1="[object Set]",X1="[object WeakMap]",ef="[object DataView]",yY=Ge(es),mY=Ge(rn),bY=Ge(ts),hY=Ge(rs),vY=Ge(Xl),nr=an;(es&&nr(new es(new ArrayBuffer(1)))!=ef||rn&&nr(new rn)!=W1||ts&&nr(ts.resolve())!=K1||rs&&nr(new rs)!=J1||Xl&&nr(new Xl)!=X1)&&(nr=function(e){var t=an(e),r=t==fY?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yY:return ef;case mY:return W1;case bY:return K1;case hY:return J1;case vY:return X1}return t});var qte=le.Uint8Array,wY="__lodash_hash_undefined__";function kY(e){return this.__data__.set(e,wY),this}var xY=kY;function IY(e){return this.__data__.has(e)}var CY=IY;function is(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $f;++t<r;)this.add(e[t])}is.prototype.add=is.prototype.push=xY;is.prototype.has=CY;var tf=lr?lr.prototype:void 0,Gte=tf?tf.valueOf:void 0,AY=Object.prototype,Hte=AY.hasOwnProperty,SY=Object.prototype,Yte=SY.hasOwnProperty,Zte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Qte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Wte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function _f(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MY(e,t){let r=await _f(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return _f(i,t)}function $Y(e){return e!==void 0}var _Y=$Y;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ps(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Ef=class Lf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Lf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},EY=class Tf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function LY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function TY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var OY=TY,Zl="ly.img.ai.temp";async function NY(e,t){return e.engine.asset.findAllSources().includes(Zl)||e.engine.asset.addLocalSource(Zl),e.engine.asset.apply(Zl,t)}function DY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function PY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gs(e){return e instanceof Error&&e.name==="AbortError"}function UY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function RY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
587
642
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
588
643
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
589
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function bH(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var vH=bH;function wH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),kH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:gH(e)}))}function kH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var X1=wH,xH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",gs=xH;function IH(e,t,r){switch(t){case"image":return AH(e,r[t]);case"video":return CH(e,r[t]);case"sticker":return SH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function AH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:gs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function CH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:gs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function SH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:gs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var MH=IH;async function jH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return $H(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return EH(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return _H(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return TH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function $H(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function EH(e,t,r){let i=t.width,n=t.height,a=await fH(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function _H(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function TH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Lf=jH;function LH(e){switch(e.userFlow){case"placeholder":return NH(e);case"generation-only":return OH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function OH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Tf(),c=await Lf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function NH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Tf(),c=MH(s,a,o);if(i=await pH(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Lf(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ps(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var DH=LH;function fs(e){return`${e}.generating`}function PH(e){return`${e}.abort`}function zH(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(PH(d),()=>{}),y=c.global(fs(d),!1),f,m=y.value&&p,b=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();k=a.requiredInputs.some(h=>!I.input[h])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:h})=>{l.ui.closeDialog(h),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:h})=>{b(),l.ui.closeDialog(h),w.setValue(void 0)}}});w.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let h=await DH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(h.status==="aborted")return;if(h.status==="error"){X1(h.error??h.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:h.middlewareOptions});return}if(h.status==="success"&&h.type==="sync"&&!h.middlewareOptions?.defaultPrevented()){let x=t.output.notification;UH(l,x,()=>({input:i().input,output:h.output}))}}catch(h){if(ps(h))return;X1(h,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function UH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Of=zH;function is(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function RH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(fs(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Of(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var FH=RH;function Nf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function tn(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Nf(e,t.$ref),n={...tn(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=tn(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>tn(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=tn(e,t[n],r));return i}return t}function VH(e){return tn(e,{...e})}function BH(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function qH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return GH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function GH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=YH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function YH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Df=qH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Pf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function zf(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?HH(e,c,r,i,n,a,o,s):Uf(e,c,r,i,n,a,o,s);case"boolean":return Rf(e,c,r,i,n,a,o,s);case"number":case"integer":return Ff(e,c,r,i,n,a,o,s);case"object":return ns(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return ZH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ns(e,t,r,i,n,a,o,s){let c=Df(t.schema??{},i).reduce((l,u)=>{let d=zf(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Uf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],b=fn(d,m,f,t.schema.default,""),k=l(p,b),w=QH(t.schema),I=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",h=y.length>0?y:void 0;return c[I](p,{inputLabel:g,...h&&{placeholder:h},...k}),()=>({id:t.id,type:"string",value:k.value})}function HH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),{labels:y,icons:f}=Pf(t.schema),m=(t.schema.enum??[]).map(x=>({id:x,label:je(t,r,o,x),icon:f[x]})),b=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,b,t.schema.default,m[0]?.id),I=w!=null?m.find(x=>x.id===w)??m[0]:m[0],h=l(p,I);return c.Select(p,{inputLabel:g,values:m,...h}),()=>({id:t.id,type:"string",value:h.value.id})}function Rf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),b=l(p,m);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,b,m,k,k),I=l(p,w);if(y!=null&&f!=null){let h=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(h=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:h,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function ZH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},b={},{labels:k,icons:w}=Pf(t.schema),I=gn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],x={string:Uf,boolean:Rf,integer:Ff,object:ns},M=(v,j)=>v.$ref?v.$ref.split("/").pop():j.split(".").pop()??j,C=(v,j)=>({id:v,label:je(t,r,o,j),icon:w[j]??w[v]});y.forEach((v,j)=>{let A=`${r.id}.${d}.anyOf[${j}]`;if(v.$ref||v.title){let S=v.$ref?v.$ref.split("/").pop():v.title;m[A]=()=>ns(e,{id:A,schema:{...v,title:k[S]||S}},r,i,n,a,o,s),f.push(C(A,S))}else if(v.type==="string"&&v.enum)v.enum.forEach(S=>{f.push(C(S,S))});else if(v.type&&x[v.type]){let S=x[v.type];m[A]=()=>S(e,{id:A,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=M(v,A);f.push(v.type==="string"&&!v.enum?{id:A,label:v.title||q,icon:v.title&&w[v.title]||w[q]}:C(A,q))}});let _=fn(d,h,I,t.schema.default,null),$=_!=null?f.find(v=>v.id===_)??f[0]:f[0],E=l(p,$);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let v=m[E.value.id]();b[E.value.id]=v}return()=>{let v=b[E.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function QH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var WH=zf,KH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function ef(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function tf(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||ef(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||ef(g);n[a(l.id,g)]=y}})}});let c={...KH,...n};Object.keys(c).length>0&&ds(r.cesdk,{en:c})}function rf(e){return typeof e.document=="function"?e.document():e.document}function nf(e,t,r){let i=VH(e),n=Nf(i,t.inputReference);if(!BH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Df(a,t);return{inputSchema:a,properties:o}}function of(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let b=WH(l,m,n,r,i,a,n.kind,o);b!=null&&(Array.isArray(b)?d.push(...b):d.push(b))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((b,[k,w])=>(b[k]=g(w),b),{}):m.value,y=p.reduce((m,b)=>(m[b.id]=g(b),m),{}),f=[...new Set([...e.required??[],...p.filter(m=>m.required).map(m=>m.id)])];Of(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:f,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function JH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=rf(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nf(c,s,a.debug);return tf(y,i,r,i.kind),of(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(rf(s)).then(g=>{let{inputSchema:y,properties:f}=nf(g,s,a.debug);tf(f,i,r,i.kind),u=of(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var XH=JH;async function eZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return FH(e,t);case"schema":return XH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var tZ=eZ;function rZ(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new aq(o,r)),o}return i}var iZ=rZ;function nZ(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var oZ=nZ,Zl="@imgly/plugin-ai-generation",aZ=`
644
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function FY(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var VY=FY;function BY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),qY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:DY(e)}))}function qY(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var rf=BY,GY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fs=GY;function HY(e,t,r){switch(t){case"image":return YY(e,r[t]);case"video":return ZY(e,r[t]);case"sticker":return QY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function YY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ZY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var WY=HY;async function KY(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return JY(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return XY(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return eZ(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return tZ(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function JY(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function XY(e,t,r){let i=t.width,n=t.height,a=await PY(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function eZ(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function tZ(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Nf=KY;function rZ(e){switch(e.userFlow){case"placeholder":return nZ(e);case"generation-only":return iZ(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function iZ(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Of(),c=await Nf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function nZ(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Of(),c=WY(s,a,o);if(i=await NY(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Nf(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oZ=rZ;function ys(e){return`${e}.generating`}function aZ(e){return`${e}.abort`}function lZ(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(aZ(d),()=>{}),y=c.global(ys(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await oZ({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){rf(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;sZ(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gs(b))return;rf(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function sZ(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Df=lZ;function ns(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function uZ({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ys(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Df(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var cZ=uZ;function Pf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Ki(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Pf(e,t.$ref),n={...Ki(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Ki(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Ki(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Ki(e,t[n],r));return i}return t}function dZ(e){return Ki(e,{...e})}function pZ(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function gZ(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return fZ(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function fZ(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=yZ(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function yZ(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var zf=gZ;function Uf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Rf(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?mZ(e,c,r,i,n,a,o,s):Ff(e,c,r,i,n,a,o,s);case"boolean":return Vf(e,c,r,i,n,a,o,s);case"number":case"integer":return Bf(e,c,r,i,n,a,o,s);case"object":return os(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return bZ(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function os(e,t,r,i,n,a,o,s){let c=zf(t.schema??{},i).reduce((l,u)=>{let d=Rf(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=je(r.id,o,d,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=un(d,h,f,t.schema.default,""),v=l(p,m),k=hZ(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function mZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),{labels:y,icons:f}=Uf(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(r.id,o,d,x),icon:f[x]})),m=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Vf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Bf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=un(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function bZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Uf(t.schema),I=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ff,boolean:Vf,integer:Bf,object:os},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:je(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>os(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=un(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function hZ(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vZ=Rf,wZ={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function nf(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function of(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||nf(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||nf(g);n[a(l.id,g)]=y}})}});let c={...wZ,...n};Object.keys(c).length>0&&ps(r.cesdk,{en:c})}function af(e){return typeof e.document=="function"?e.document():e.document}function lf(e,t,r){let i=dZ(e),n=Pf(i,t.inputReference);if(!pZ(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=zf(a,t);return{inputSchema:a,properties:o}}function sf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=vZ(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Df(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function kZ(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=af(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=lf(c,s,a.debug);return of(y,i,r,i.kind),sf(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(af(s)).then(g=>{let{inputSchema:y,properties:f}=lf(g,s,a.debug);of(f,i,r,i.kind),u=sf(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var xZ=kZ;async function IZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return cZ(e,t);case"schema":return xZ(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CZ=IZ;function AZ(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $q(o,r)),o}return i}var SZ=AZ;function MZ(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var jZ=MZ,Ql="@imgly/plugin-ai-generation",$Z=`
590
645
  <svg>
591
646
  <symbol
592
647
  fill="none"
@@ -604,7 +659,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
604
659
  fill="none"
605
660
  xmlns="http://www.w3.org/2000/svg"
606
661
  viewBox="0 0 24 24"
607
- id="${Zl}/image"
662
+ id="${Ql}/image"
608
663
  >
609
664
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
610
665
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -616,7 +671,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
616
671
  fill="none"
617
672
  xmlns="http://www.w3.org/2000/svg"
618
673
  viewBox="0 0 24 24"
619
- id="${Zl}/video"
674
+ id="${Ql}/video"
620
675
  >
621
676
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
622
677
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -627,11 +682,22 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
627
682
  fill="none"
628
683
  xmlns="http://www.w3.org/2000/svg"
629
684
  viewBox="0 0 24 24"
630
- id="${Zl}/audio"
685
+ id="${Ql}/audio"
631
686
  >
632
687
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
633
688
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
634
689
  <path d="M19.5996 4.3845C19.4747 4.06795 19.0267 4.06795 18.9019 4.3845L17.8255 7.11355C17.7874 7.2102 17.7109 7.2867 17.6143 7.32482L14.8852 8.40114C14.5687 8.52598 14.5687 8.97399 14.8852 9.09883L17.6143 10.1752C17.7109 10.2133 17.7874 10.2898 17.8255 10.3864L18.9019 13.1155C19.0267 13.432 19.4747 13.432 19.5996 13.1155L20.6759 10.3864C20.714 10.2898 20.7905 10.2133 20.8872 10.1752L23.6162 9.09883C23.9328 8.97399 23.9328 8.52598 23.6162 8.40114L20.8872 7.32482C20.7905 7.2867 20.714 7.2102 20.6759 7.11355L19.5996 4.3845Z" fill="currentColor"/>
690
+ </symbol>
691
+ <symbol
692
+ fill="none"
693
+ xmlns="http://www.w3.org/2000/svg"
694
+ viewBox="0 0 24 24"
695
+ id="@imgly/ImageAdd"
696
+ >
697
+ <path d="M18 3C19.6569 3 21 4.34315 21 6V12.291C20.3662 12.1024 19.6951 12 19 12V6C19 5.44772 18.5523 5 18 5H6C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H8.33398L13.1689 11.748C13.5648 11.1544 14.4372 11.1544 14.833 11.748L15.5908 12.8857C13.4487 14.0827 12 16.3719 12 19C12 19.6951 12.1024 20.3662 12.291 21H6C4.34315 21 3 19.6569 3 18V6C3 4.34315 4.34315 3 6 3H18Z" fill="currentColor"/>
698
+ <path d="M9.25 7C10.4926 7 11.5 8.00736 11.5 9.25C11.5 10.4926 10.4926 11.5 9.25 11.5C8.00736 11.5 7 10.4926 7 9.25C7 8.00736 8.00736 7 9.25 7Z" fill="currentColor"/>
699
+ <path d="M18 18V15H20V18H23V20H20V23H18V20H15V18H18Z" fill="currentColor"/>
700
+
635
701
  </symbol>
636
702
  <symbol
637
703
  fill="none"
@@ -647,8 +713,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
647
713
 
648
714
  </symbol>
649
715
  </svg>
650
- `,lZ=aZ;function sZ(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Vf(2e3),await uZ(t,e,r)):i(t,r)}async function uZ(e,t,r){switch(t.kind){case"image":return cZ(e,t,r);case"video":return dZ(e,t,r);case"text":return pZ(e,t,r);case"audio":return fZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function cZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await oH(s,r),l=await nH(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
- `,"+")}`}}async function dZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function pZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Xi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Xi(n,o)}else"customPrompt"in e?a=Xi(n,"custom"):a=Xi(n,"improved");else a=Xi(n,"generated");return gZ(a,r.abortSignal)}async function*gZ(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Vf(100)}return{kind:"text",text:e}}function Xi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function fZ(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:yZ(220,i),duration:i,thumbnailUrl:void 0}}function yZ(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return mZ(i,44100)}function mZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let b=0;b<m.length;b++)u.setUint8(f+b,m.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),b=Math.round(m*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Vf(e){return new Promise(t=>{setTimeout(t,e)})}var hZ=sZ,bZ="USER_CANCEL";function vZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=uH([...e.provider.output.middleware??[],...r?.middlewares??[],dH({enable:r?.debug}),hZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:yH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ps(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===bZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var wZ=vZ;async function kZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=$f.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=iZ(a),s=oZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=wZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await tZ(a,c);mH(r.cesdk,"@imgly/plugin-ai-generation",lZ);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return sH.get().register(u),u}var Ql=kZ;function xZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new lq(n,r,i);return r.engine.asset.addSource(a),a.id}var IZ=xZ;function rn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function AZ(e,t,r,i){let{cesdk:n}=r;ds(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ql(e,u,r,i)));o.push(...l),a=SZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ql(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ql(e,d,r,i)));o.push(...u),a=CZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=IZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(lH)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function CZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let b=r.map(({provider:A,panel:S})=>({id:A.id,label:is(A),builderRenderFunction:S?.builderRenderFunction})),k=i.map(({provider:A,panel:S})=>({id:A.id,label:is(A),builderRenderFunction:S?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),h=b.find(A=>A.id===w.value)??b[0],x=k.find(A=>A.id===I.value)??k[0],M=f.value==="fromText"?w:f.value==="fromImage"?I:void 0,C=f.value==="fromText"?h:f.value==="fromImage"?x:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,v=a&&E,j=m.length>1&&$;if((v||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(v&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&af(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&af(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),j){let A=f.value==="fromText"?b:f.value==="fromImage"?k:[...b,...k];M!=null&&C!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:A,value:C,setValue:S=>{M.setValue(S.id)}})}}}),m.length>1)C?.builderRenderFunction?.(o);else{let A=m[0];A&&A.panel?.builderRenderFunction?.(o)}}}function SZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:is(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function af(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(fs(r.id),!1).value)}var MZ=AZ,Mte=5*60*1e3,jZ="@imgly/plugin-ai-sticker-generation",$Z=`
716
+ `,_Z=$Z;function EZ(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await qf(2e3),await LZ(t,e,r)):i(t,r)}async function LZ(e,t,r){switch(t.kind){case"image":return TZ(e,t,r);case"video":return OZ(e,t,r);case"text":return NZ(e,t,r);case"audio":return PZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function TZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await jY(s,r),l=await MY(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
717
+ `,"+")}`}}async function OZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function NZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Qi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Qi(n,o)}else"customPrompt"in e?a=Qi(n,"custom"):a=Qi(n,"improved");else a=Qi(n,"generated");return DZ(a,r.abortSignal)}async function*DZ(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await qf(100)}return{kind:"text",text:e}}function Qi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function PZ(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:zZ(220,i),duration:i,thumbnailUrl:void 0}}function zZ(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return UZ(i,44100)}function UZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function qf(e){return new Promise(t=>{setTimeout(t,e)})}var RZ=EZ,FZ="USER_CANCEL";function VZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=LY([...e.provider.output.middleware??[],...r?.middlewares??[],OY({enable:r?.debug}),RZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:zY(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gs(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===FZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var BZ=VZ;async function qZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ef.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=SZ(a),s=jZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=BZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await CZ(a,c);UY(r.cesdk,"@imgly/plugin-ai-generation",_Z);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return EY.get().register(u),u}var Wl=qZ;function GZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _q(n,r,i);return r.engine.asset.addSource(a),a.id}var HZ=GZ;function So(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function YZ(e,t,r,i){let{cesdk:n}=r;ps(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Wl(e,u,r,i)));o.push(...l),a=QZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Wl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Wl(e,d,r,i)));o.push(...u),a=ZZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=HZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_Y)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function ZZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:ns(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:ns(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:So(e,`${A}.label`),icon:f.value!==A&&WZ(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{inputLabel:So(e,"fromType.label"),tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:So(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function QZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:ns(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:So(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function WZ(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ys(r.id),!1).value)}var KZ=YZ,Kte=5*60*1e3,JZ="@imgly/plugin-ai-sticker-generation",XZ=`
652
718
  <svg>
653
719
  <symbol
654
720
  fill="none"
@@ -662,7 +728,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
728
 
663
729
  </symbol>
664
730
  </svg>
665
- `,EZ=$Z,_Z=typeof global=="object"&&global&&global.Object===Object&&global,Bf=_Z,TZ=typeof self=="object"&&self&&self.Object===Object&&self,LZ=Bf||TZ||Function("return this")(),se=LZ,OZ=se.Symbol,lr=OZ,qf=Object.prototype,NZ=qf.hasOwnProperty,DZ=qf.toString,en=lr?lr.toStringTag:void 0;function PZ(e){var t=NZ.call(e,en),r=e[en];try{e[en]=void 0;var i=!0}catch{}var n=DZ.call(e);return i&&(t?e[en]=r:delete e[en]),n}var zZ=PZ,UZ=Object.prototype,RZ=UZ.toString;function FZ(e){return RZ.call(e)}var VZ=FZ,BZ="[object Null]",qZ="[object Undefined]",lf=lr?lr.toStringTag:void 0;function GZ(e){return e==null?e===void 0?qZ:BZ:lf&&lf in Object(e)?zZ(e):VZ(e)}var yn=GZ;function YZ(e){return e!=null&&typeof e=="object"}var ys=YZ,jte=Array.isArray;function HZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gf=HZ,ZZ="[object AsyncFunction]",QZ="[object Function]",WZ="[object GeneratorFunction]",KZ="[object Proxy]";function JZ(e){if(!Gf(e))return!1;var t=yn(e);return t==QZ||t==WZ||t==ZZ||t==KZ}var XZ=JZ,eQ=se["__core-js_shared__"],Wl=eQ,sf=function(){var e=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tQ(e){return!!sf&&sf in e}var rQ=tQ,iQ=Function.prototype,nQ=iQ.toString;function oQ(e){if(e!=null){try{return nQ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oQ,aQ=/[\\^$.*+?()[\]{}|]/g,lQ=/^\[object .+?Constructor\]$/,sQ=Function.prototype,uQ=Object.prototype,cQ=sQ.toString,dQ=uQ.hasOwnProperty,pQ=RegExp("^"+cQ.call(dQ).replace(aQ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gQ(e){if(!Gf(e)||rQ(e))return!1;var t=XZ(e)?pQ:lQ;return t.test(Ge(e))}var fQ=gQ;function yQ(e,t){return e?.[t]}var mQ=yQ;function hQ(e,t){var r=mQ(e,t);return fQ(r)?r:void 0}var pr=hQ,bQ=pr(se,"WeakMap"),os=bQ;function vQ(e,t){return e===t||e!==e&&t!==t}var wQ=vQ,kQ=9007199254740991;function xQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kQ}var IQ=xQ,$te=Object.prototype,AQ="[object Arguments]";function CQ(e){return ys(e)&&yn(e)==AQ}var uf=CQ,Yf=Object.prototype,SQ=Yf.hasOwnProperty,MQ=Yf.propertyIsEnumerable,Ete=uf(function(){return arguments}())?uf:function(e){return ys(e)&&SQ.call(e,"callee")&&!MQ.call(e,"callee")},Hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cf=Hf&&typeof module=="object"&&module&&!module.nodeType&&module,jQ=cf&&cf.exports===Hf,df=jQ?se.Buffer:void 0,_te=df?df.isBuffer:void 0,$Q="[object Arguments]",EQ="[object Array]",_Q="[object Boolean]",TQ="[object Date]",LQ="[object Error]",OQ="[object Function]",NQ="[object Map]",DQ="[object Number]",PQ="[object Object]",zQ="[object RegExp]",UQ="[object Set]",RQ="[object String]",FQ="[object WeakMap]",VQ="[object ArrayBuffer]",BQ="[object DataView]",qQ="[object Float32Array]",GQ="[object Float64Array]",YQ="[object Int8Array]",HQ="[object Int16Array]",ZQ="[object Int32Array]",QQ="[object Uint8Array]",WQ="[object Uint8ClampedArray]",KQ="[object Uint16Array]",JQ="[object Uint32Array]",B={};B[qQ]=B[GQ]=B[YQ]=B[HQ]=B[ZQ]=B[QQ]=B[WQ]=B[KQ]=B[JQ]=!0;B[$Q]=B[EQ]=B[VQ]=B[_Q]=B[BQ]=B[TQ]=B[LQ]=B[OQ]=B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=!1;function XQ(e){return ys(e)&&IQ(e.length)&&!!B[yn(e)]}var eW=XQ;function tW(e){return function(t){return e(t)}}var rW=tW,Zf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,an=Zf&&typeof module=="object"&&module&&!module.nodeType&&module,iW=an&&an.exports===Zf,Kl=iW&&Bf.process,nW=function(){try{var e=an&&an.require&&an.require("util").types;return e||Kl&&Kl.binding&&Kl.binding("util")}catch{}}(),pf=nW,gf=pf&&pf.isTypedArray,Tte=gf?rW(gf):eW,oW=Object.prototype,Lte=oW.hasOwnProperty;function aW(e,t){return function(r){return e(t(r))}}var lW=aW,Ote=lW(Object.keys,Object),sW=Object.prototype,Nte=sW.hasOwnProperty,uW=pr(Object,"create"),un=uW;function cW(){this.__data__=un?un(null):{},this.size=0}var dW=cW;function pW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gW=pW,fW="__lodash_hash_undefined__",yW=Object.prototype,mW=yW.hasOwnProperty;function hW(e){var t=this.__data__;if(un){var r=t[e];return r===fW?void 0:r}return mW.call(t,e)?t[e]:void 0}var bW=hW,vW=Object.prototype,wW=vW.hasOwnProperty;function kW(e){var t=this.__data__;return un?t[e]!==void 0:wW.call(t,e)}var xW=kW,IW="__lodash_hash_undefined__";function AW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=un&&t===void 0?IW:t,this}var CW=AW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=dW;gr.prototype.delete=gW;gr.prototype.get=bW;gr.prototype.has=xW;gr.prototype.set=CW;var ff=gr;function SW(){this.__data__=[],this.size=0}var MW=SW;function jW(e,t){for(var r=e.length;r--;)if(wQ(e[r][0],t))return r;return-1}var $o=jW,$W=Array.prototype,EW=$W.splice;function _W(e){var t=this.__data__,r=$o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():EW.call(t,r,1),--this.size,!0}var TW=_W;function LW(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var OW=LW;function NW(e){return $o(this.__data__,e)>-1}var DW=NW;function PW(e,t){var r=this.__data__,i=$o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zW=PW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=MW;fr.prototype.delete=TW;fr.prototype.get=OW;fr.prototype.has=DW;fr.prototype.set=zW;var Eo=fr,UW=pr(se,"Map"),cn=UW;function RW(){this.size=0,this.__data__={hash:new ff,map:new(cn||Eo),string:new ff}}var FW=RW;function VW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BW=VW;function qW(e,t){var r=e.__data__;return BW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _o=qW;function GW(e){var t=_o(this,e).delete(e);return this.size-=t?1:0,t}var YW=GW;function HW(e){return _o(this,e).get(e)}var ZW=HW;function QW(e){return _o(this,e).has(e)}var WW=QW;function KW(e,t){var r=_o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JW=KW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=FW;yr.prototype.delete=YW;yr.prototype.get=ZW;yr.prototype.has=WW;yr.prototype.set=JW;var Qf=yr;function XW(){this.__data__=new Eo,this.size=0}var eK=XW;function tK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rK=tK;function iK(e){return this.__data__.get(e)}var nK=iK;function oK(e){return this.__data__.has(e)}var aK=oK,lK=200;function sK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!cn||i.length<lK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qf(i)}return r.set(e,t),this.size=r.size,this}var uK=sK;function mn(e){var t=this.__data__=new Eo(e);this.size=t.size}mn.prototype.clear=eK;mn.prototype.delete=rK;mn.prototype.get=nK;mn.prototype.has=aK;mn.prototype.set=uK;var cK=Object.prototype,Dte=cK.propertyIsEnumerable,dK=pr(se,"DataView"),as=dK,pK=pr(se,"Promise"),ls=pK,gK=pr(se,"Set"),ss=gK,yf="[object Map]",fK="[object Object]",mf="[object Promise]",hf="[object Set]",bf="[object WeakMap]",vf="[object DataView]",yK=Ge(as),mK=Ge(cn),hK=Ge(ls),bK=Ge(ss),vK=Ge(os),nr=yn;(as&&nr(new as(new ArrayBuffer(1)))!=vf||cn&&nr(new cn)!=yf||ls&&nr(ls.resolve())!=mf||ss&&nr(new ss)!=hf||os&&nr(new os)!=bf)&&(nr=function(e){var t=yn(e),r=t==fK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yK:return vf;case mK:return yf;case hK:return mf;case bK:return hf;case vK:return bf}return t});var Pte=se.Uint8Array,wK="__lodash_hash_undefined__";function kK(e){return this.__data__.set(e,wK),this}var xK=kK;function IK(e){return this.__data__.has(e)}var AK=IK;function us(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qf;++t<r;)this.add(e[t])}us.prototype.add=us.prototype.push=xK;us.prototype.has=AK;var wf=lr?lr.prototype:void 0,zte=wf?wf.valueOf:void 0,CK=Object.prototype,Ute=CK.hasOwnProperty,SK=Object.prototype,Rte=SK.hasOwnProperty,Fte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function MK(e){return e==null?[]:Array.isArray(e)?e:[e]}var jK=MK;function $K(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function EK(e){return typeof e?.translate=="function"}function _K(e,t,r){return e&&$K(e)&&EK(e.i18n)?e.i18n.translate(t):r}var nn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function TK(e){return{async initialize({cesdk:t}){if(t==null)return;hH(t,nn,"1.82.0"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=$f.get(),i=`${nn}.action.label`;t.ui.addIconSet(jZ,EZ),ds(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:nn,pluginId:nn,label:_K(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(jK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await MZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),vH({cesdk:t,panelId:Se})):n()}}}var LK=TK,OK=e=>({name:nn,version:"1.82.0",...LK(e)}),Wf=OK;var ms=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(I=>w.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(I=>w.groups?.includes(I)))),o){let w=o.toLowerCase();p=p.filter(I=>{let h=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return h&&h.includes(w)||x.some(M=>M.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(I=>{let h=I.tags?.[n]||[];return w.some(x=>h.includes(x))})}a&&p.sort((w,I)=>{let h=this.activeAssetIds.has(w.id),x=this.activeAssetIds.has(I.id);return h&&!x?-1:!h&&x?1:0}),d&&d!=="id"?p.sort((w,I)=>{let h=w.meta?.[d],x=I.meta?.[d];return h===void 0?1:x===void 0?-1:typeof h=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(h):h.localeCompare(x):typeof h=="number"&&typeof x=="number"?u==="Descending"?x-h:h-x:0}):d==="id"&&p.sort((w,I)=>u==="Descending"?I.id.localeCompare(w.id):w.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,b=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=NK(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Kf(e,t,r=[]){return new ms(e,t,r)}function NK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var hn="ly.img.ai.apps";var Y=su("apps"),DK=512,PK=128,Jf=e=>({async initialize({cesdk:t}){if(t==null)return;uu(t,hn,"1.82.0");let{providers:r}=e;await t.addPlugin(z1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Nc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Kd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(pg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Wf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),VK(t),zK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function zK(e,t){FK(e);let r=UK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{An.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?An.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function UK(e,t){let r=An.get(),i=Kf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?RK(t.baseURL,o):void 0,width:DK,height:PK}}).filter(zs)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function RK(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function FK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let b=e.ui.getAssetLibraryEntry(m);if(b==null)return!1;if(u==null)return!0;let k=b.sceneMode;return typeof k=="string"?b.sceneMode===u||b.sceneMode==="All":typeof k=="function"?(typeof b.sourceIds=="function"?b.sourceIds({cesdk:e,engine:r}):b.sourceIds).some(I=>{let h=k(e.version.startsWith("1.51.")?I:{sourceId:I});return h===u||h==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function VK(e){au(e,cu)}var BK=e=>({name:hn,version:"1.82.0",...Jf(e)}),sre=BK;export{sre as default};
731
+ `,eQ=XZ,tQ=typeof global=="object"&&global&&global.Object===Object&&global,Gf=tQ,rQ=typeof self=="object"&&self&&self.Object===Object&&self,iQ=Gf||rQ||Function("return this")(),se=iQ,nQ=se.Symbol,sr=nQ,Hf=Object.prototype,oQ=Hf.hasOwnProperty,aQ=Hf.toString,Wi=sr?sr.toStringTag:void 0;function lQ(e){var t=oQ.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=aQ.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var sQ=lQ,uQ=Object.prototype,cQ=uQ.toString;function dQ(e){return cQ.call(e)}var pQ=dQ,gQ="[object Null]",fQ="[object Undefined]",uf=sr?sr.toStringTag:void 0;function yQ(e){return e==null?e===void 0?fQ:gQ:uf&&uf in Object(e)?sQ(e):pQ(e)}var cn=yQ;function mQ(e){return e!=null&&typeof e=="object"}var ms=mQ,Jte=Array.isArray;function bQ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=bQ,hQ="[object AsyncFunction]",vQ="[object Function]",wQ="[object GeneratorFunction]",kQ="[object Proxy]";function xQ(e){if(!Yf(e))return!1;var t=cn(e);return t==vQ||t==wQ||t==hQ||t==kQ}var IQ=xQ,CQ=se["__core-js_shared__"],Kl=CQ,cf=function(){var e=/[^.]+$/.exec(Kl&&Kl.keys&&Kl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AQ(e){return!!cf&&cf in e}var SQ=AQ,MQ=Function.prototype,jQ=MQ.toString;function $Q(e){if(e!=null){try{return jQ.call(e)}catch{}try{return e+""}catch{}}return""}var He=$Q,_Q=/[\\^$.*+?()[\]{}|]/g,EQ=/^\[object .+?Constructor\]$/,LQ=Function.prototype,TQ=Object.prototype,OQ=LQ.toString,NQ=TQ.hasOwnProperty,DQ=RegExp("^"+OQ.call(NQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PQ(e){if(!Yf(e)||SQ(e))return!1;var t=IQ(e)?DQ:EQ;return t.test(He(e))}var zQ=PQ;function UQ(e,t){return e?.[t]}var RQ=UQ;function FQ(e,t){var r=RQ(e,t);return zQ(r)?r:void 0}var gr=FQ,VQ=gr(se,"WeakMap"),as=VQ;function BQ(e,t){return e===t||e!==e&&t!==t}var qQ=BQ,GQ=9007199254740991;function HQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=GQ}var YQ=HQ,Xte=Object.prototype,ZQ="[object Arguments]";function QQ(e){return ms(e)&&cn(e)==ZQ}var df=QQ,Zf=Object.prototype,WQ=Zf.hasOwnProperty,KQ=Zf.propertyIsEnumerable,ere=df(function(){return arguments}())?df:function(e){return ms(e)&&WQ.call(e,"callee")&&!KQ.call(e,"callee")},Qf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pf=Qf&&typeof module=="object"&&module&&!module.nodeType&&module,JQ=pf&&pf.exports===Qf,gf=JQ?se.Buffer:void 0,tre=gf?gf.isBuffer:void 0,XQ="[object Arguments]",eW="[object Array]",tW="[object Boolean]",rW="[object Date]",iW="[object Error]",nW="[object Function]",oW="[object Map]",aW="[object Number]",lW="[object Object]",sW="[object RegExp]",uW="[object Set]",cW="[object String]",dW="[object WeakMap]",pW="[object ArrayBuffer]",gW="[object DataView]",fW="[object Float32Array]",yW="[object Float64Array]",mW="[object Int8Array]",bW="[object Int16Array]",hW="[object Int32Array]",vW="[object Uint8Array]",wW="[object Uint8ClampedArray]",kW="[object Uint16Array]",xW="[object Uint32Array]",q={};q[fW]=q[yW]=q[mW]=q[bW]=q[hW]=q[vW]=q[wW]=q[kW]=q[xW]=!0;q[XQ]=q[eW]=q[pW]=q[tW]=q[gW]=q[rW]=q[iW]=q[nW]=q[oW]=q[aW]=q[lW]=q[sW]=q[uW]=q[cW]=q[dW]=!1;function IW(e){return ms(e)&&YQ(e.length)&&!!q[cn(e)]}var CW=IW;function AW(e){return function(t){return e(t)}}var SW=AW,Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,MW=en&&en.exports===Wf,Jl=MW&&Gf.process,jW=function(){try{var e=en&&en.require&&en.require("util").types;return e||Jl&&Jl.binding&&Jl.binding("util")}catch{}}(),ff=jW,yf=ff&&ff.isTypedArray,rre=yf?SW(yf):CW,$W=Object.prototype,ire=$W.hasOwnProperty;function _W(e,t){return function(r){return e(t(r))}}var EW=_W,nre=EW(Object.keys,Object),LW=Object.prototype,ore=LW.hasOwnProperty,TW=gr(Object,"create"),nn=TW;function OW(){this.__data__=nn?nn(null):{},this.size=0}var NW=OW;function DW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var PW=DW,zW="__lodash_hash_undefined__",UW=Object.prototype,RW=UW.hasOwnProperty;function FW(e){var t=this.__data__;if(nn){var r=t[e];return r===zW?void 0:r}return RW.call(t,e)?t[e]:void 0}var VW=FW,BW=Object.prototype,qW=BW.hasOwnProperty;function GW(e){var t=this.__data__;return nn?t[e]!==void 0:qW.call(t,e)}var HW=GW,YW="__lodash_hash_undefined__";function ZW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?YW:t,this}var QW=ZW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=NW;fr.prototype.delete=PW;fr.prototype.get=VW;fr.prototype.has=HW;fr.prototype.set=QW;var mf=fr;function WW(){this.__data__=[],this.size=0}var KW=WW;function JW(e,t){for(var r=e.length;r--;)if(qQ(e[r][0],t))return r;return-1}var _o=JW,XW=Array.prototype,eK=XW.splice;function tK(e){var t=this.__data__,r=_o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eK.call(t,r,1),--this.size,!0}var rK=tK;function iK(e){var t=this.__data__,r=_o(t,e);return r<0?void 0:t[r][1]}var nK=iK;function oK(e){return _o(this.__data__,e)>-1}var aK=oK;function lK(e,t){var r=this.__data__,i=_o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sK=lK;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=KW;yr.prototype.delete=rK;yr.prototype.get=nK;yr.prototype.has=aK;yr.prototype.set=sK;var Eo=yr,uK=gr(se,"Map"),on=uK;function cK(){this.size=0,this.__data__={hash:new mf,map:new(on||Eo),string:new mf}}var dK=cK;function pK(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gK=pK;function fK(e,t){var r=e.__data__;return gK(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Lo=fK;function yK(e){var t=Lo(this,e).delete(e);return this.size-=t?1:0,t}var mK=yK;function bK(e){return Lo(this,e).get(e)}var hK=bK;function vK(e){return Lo(this,e).has(e)}var wK=vK;function kK(e,t){var r=Lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xK=kK;function mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mr.prototype.clear=dK;mr.prototype.delete=mK;mr.prototype.get=hK;mr.prototype.has=wK;mr.prototype.set=xK;var Kf=mr;function IK(){this.__data__=new Eo,this.size=0}var CK=IK;function AK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SK=AK;function MK(e){return this.__data__.get(e)}var jK=MK;function $K(e){return this.__data__.has(e)}var _K=$K,EK=200;function LK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!on||i.length<EK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kf(i)}return r.set(e,t),this.size=r.size,this}var TK=LK;function dn(e){var t=this.__data__=new Eo(e);this.size=t.size}dn.prototype.clear=CK;dn.prototype.delete=SK;dn.prototype.get=jK;dn.prototype.has=_K;dn.prototype.set=TK;var OK=Object.prototype,are=OK.propertyIsEnumerable,NK=gr(se,"DataView"),ls=NK,DK=gr(se,"Promise"),ss=DK,PK=gr(se,"Set"),us=PK,bf="[object Map]",zK="[object Object]",hf="[object Promise]",vf="[object Set]",wf="[object WeakMap]",kf="[object DataView]",UK=He(ls),RK=He(on),FK=He(ss),VK=He(us),BK=He(as),or=cn;(ls&&or(new ls(new ArrayBuffer(1)))!=kf||on&&or(new on)!=bf||ss&&or(ss.resolve())!=hf||us&&or(new us)!=vf||as&&or(new as)!=wf)&&(or=function(e){var t=cn(e),r=t==zK?e.constructor:void 0,i=r?He(r):"";if(i)switch(i){case UK:return kf;case RK:return bf;case FK:return hf;case VK:return vf;case BK:return wf}return t});var lre=se.Uint8Array,qK="__lodash_hash_undefined__";function GK(e){return this.__data__.set(e,qK),this}var HK=GK;function YK(e){return this.__data__.has(e)}var ZK=YK;function cs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kf;++t<r;)this.add(e[t])}cs.prototype.add=cs.prototype.push=HK;cs.prototype.has=ZK;var xf=sr?sr.prototype:void 0,sre=xf?xf.valueOf:void 0,QK=Object.prototype,ure=QK.hasOwnProperty,WK=Object.prototype,cre=WK.hasOwnProperty,dre=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pre=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gre=new RegExp(/[A-Fa-f0-9]{2}/,"g");function KK(e){return e==null?[]:Array.isArray(e)?e:[e]}var JK=KK;function XK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function eJ(e){return typeof e?.translate=="function"}function tJ(e,t,r){return e&&XK(e)&&eJ(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function rJ(e){return{async initialize({cesdk:t}){if(t==null)return;RY(t,Ji,"1.83.0-nightly.20260918"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Ef.get(),i=`${Ji}.action.label`;t.ui.addIconSet(JZ,eQ),ps(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:tJ(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(JK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await KZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),VY({cesdk:t,panelId:Se})):n()}}}var iJ=rJ,nJ=e=>({name:Ji,version:"1.83.0-nightly.20260918",...iJ(e)}),Jf=nJ;var bs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let b=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return b&&b.includes(k)||x.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let b=I.tags?.[n]||[];return k.some(x=>b.includes(x))})}a&&p.sort((k,I)=>{let b=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return b&&!x?-1:!b&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let b=k.meta?.[d],x=I.meta?.[d];return b===void 0?1:x===void 0?-1:typeof b=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(b):b.localeCompare(x):typeof b=="number"&&typeof x=="number"?u==="Descending"?x-b:b-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,m=p.slice(y,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:m,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=oJ(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Xf(e,t,r=[]){return new bs(e,t,r)}function oJ(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=uu("apps"),aJ=512,lJ=128,ey=e=>({async initialize({cesdk:t}){if(t==null)return;cu(t,pn,"1.83.0-nightly.20260918");let{providers:r}=e;await t.addPlugin(F1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Uc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(rp({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Jf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),pJ(t),sJ(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function sJ(e,t){dJ(e);let r=uJ(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function uJ(e,t){let r=vn.get(),i=Xf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?cJ(t.baseURL,o):void 0,width:aJ,height:lJ}}).filter(Us)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function cJ(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function dJ(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let m=e.ui.getAssetLibraryEntry(h);if(m==null)return!1;if(u==null)return!0;let v=m.sceneMode;return typeof v=="string"?m.sceneMode===u||m.sceneMode==="All":typeof v=="function"?(typeof m.sourceIds=="function"?m.sourceIds({cesdk:e,engine:r}):m.sourceIds).some(I=>{let b=v(e.version.startsWith("1.51.")?I:{sourceId:I});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function pJ(e){lu(e,du)}var gJ=e=>({name:pn,version:"1.83.0-nightly.20260918",...ey(e)}),Lre=gJ;export{Lre as default};
666
732
  /*! Bundled license information:
667
733
 
668
734
  lodash-es/lodash.js: