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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -141,7 +141,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
141
141
 
142
142
  </symbol>
143
143
  </svg>
144
- `,rv=tv,iv=typeof global=="object"&&global&&global.Object===Object&&global,uc=iv,nv=typeof self=="object"&&self&&self.Object===Object&&self,ov=uc||nv||Function("return this")(),J=ov,av=J.Symbol,ot=av,cc=Object.prototype,lv=cc.hasOwnProperty,sv=cc.toString,Sr=ot?ot.toStringTag:void 0;function uv(e){var t=lv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=sv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var cv=uv,dv=Object.prototype,pv=dv.toString;function gv(e){return pv.call(e)}var fv=gv,yv="[object Null]",mv="[object Undefined]",fu=ot?ot.toStringTag:void 0;function hv(e){return e==null?e===void 0?mv:yv:fu&&fu in Object(e)?cv(e):fv(e)}var qr=hv;function bv(e){return e!=null&&typeof e=="object"}var fa=bv,ZK=Array.isArray;function vv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dc=vv,wv="[object AsyncFunction]",kv="[object Function]",xv="[object GeneratorFunction]",Iv="[object Proxy]";function Av(e){if(!dc(e))return!1;var t=qr(e);return t==kv||t==xv||t==wv||t==Iv}var Cv=Av,Mv=J["__core-js_shared__"],Ho=Mv,yu=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jv(e){return!!yu&&yu in e}var Sv=jv,$v=Function.prototype,_v=$v.toString;function Ev(e){if(e!=null){try{return _v.call(e)}catch{}try{return e+""}catch{}}return""}var Me=Ev,Lv=/[\\^$.*+?()[\]{}|]/g,Tv=/^\[object .+?Constructor\]$/,Ov=Function.prototype,Nv=Object.prototype,Dv=Ov.toString,Pv=Nv.hasOwnProperty,zv=RegExp("^"+Dv.call(Pv).replace(Lv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uv(e){if(!dc(e)||Sv(e))return!1;var t=Cv(e)?zv:Tv;return t.test(Me(e))}var Rv=Uv;function Fv(e,t){return e?.[t]}var Vv=Fv;function Bv(e,t){var r=Vv(e,t);return Rv(r)?r:void 0}var ct=Bv,qv=ct(J,"WeakMap"),na=qv;function Gv(e,t){return e===t||e!==e&&t!==t}var Yv=Gv,Hv=9007199254740991;function Zv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hv}var Qv=Zv,QK=Object.prototype,Wv="[object Arguments]";function Kv(e){return fa(e)&&qr(e)==Wv}var mu=Kv,pc=Object.prototype,Jv=pc.hasOwnProperty,Xv=pc.propertyIsEnumerable,WK=mu(function(){return arguments}())?mu:function(e){return fa(e)&&Jv.call(e,"callee")&&!Xv.call(e,"callee")},gc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=gc&&typeof module=="object"&&module&&!module.nodeType&&module,e7=hu&&hu.exports===gc,bu=e7?J.Buffer:void 0,KK=bu?bu.isBuffer:void 0,t7="[object Arguments]",r7="[object Array]",i7="[object Boolean]",n7="[object Date]",o7="[object Error]",a7="[object Function]",l7="[object Map]",s7="[object Number]",u7="[object Object]",c7="[object RegExp]",d7="[object Set]",p7="[object String]",g7="[object WeakMap]",f7="[object ArrayBuffer]",y7="[object DataView]",m7="[object Float32Array]",h7="[object Float64Array]",b7="[object Int8Array]",v7="[object Int16Array]",w7="[object Int32Array]",k7="[object Uint8Array]",x7="[object Uint8ClampedArray]",I7="[object Uint16Array]",A7="[object Uint32Array]",N={};N[m7]=N[h7]=N[b7]=N[v7]=N[w7]=N[k7]=N[x7]=N[I7]=N[A7]=!0;N[t7]=N[r7]=N[f7]=N[i7]=N[y7]=N[n7]=N[o7]=N[a7]=N[l7]=N[s7]=N[u7]=N[c7]=N[d7]=N[p7]=N[g7]=!1;function C7(e){return fa(e)&&Qv(e.length)&&!!N[qr(e)]}var M7=C7;function j7(e){return function(t){return e(t)}}var S7=j7,fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Or=fc&&typeof module=="object"&&module&&!module.nodeType&&module,$7=Or&&Or.exports===fc,Zo=$7&&uc.process,_7=function(){try{var e=Or&&Or.require&&Or.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),vu=_7,wu=vu&&vu.isTypedArray,JK=wu?S7(wu):M7,E7=Object.prototype,XK=E7.hasOwnProperty;function L7(e,t){return function(r){return e(t(r))}}var T7=L7,eJ=T7(Object.keys,Object),O7=Object.prototype,tJ=O7.hasOwnProperty,N7=ct(Object,"create"),Pr=N7;function D7(){this.__data__=Pr?Pr(null):{},this.size=0}var P7=D7;function z7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var U7=z7,R7="__lodash_hash_undefined__",F7=Object.prototype,V7=F7.hasOwnProperty;function B7(e){var t=this.__data__;if(Pr){var r=t[e];return r===R7?void 0:r}return V7.call(t,e)?t[e]:void 0}var q7=B7,G7=Object.prototype,Y7=G7.hasOwnProperty;function H7(e){var t=this.__data__;return Pr?t[e]!==void 0:Y7.call(t,e)}var Z7=H7,Q7="__lodash_hash_undefined__";function W7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pr&&t===void 0?Q7:t,this}var K7=W7;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=P7;dt.prototype.delete=U7;dt.prototype.get=q7;dt.prototype.has=Z7;dt.prototype.set=K7;var ku=dt;function J7(){this.__data__=[],this.size=0}var X7=J7;function e8(e,t){for(var r=e.length;r--;)if(Yv(e[r][0],t))return r;return-1}var En=e8,t8=Array.prototype,r8=t8.splice;function i8(e){var t=this.__data__,r=En(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():r8.call(t,r,1),--this.size,!0}var n8=i8;function o8(e){var t=this.__data__,r=En(t,e);return r<0?void 0:t[r][1]}var a8=o8;function l8(e){return En(this.__data__,e)>-1}var s8=l8;function u8(e,t){var r=this.__data__,i=En(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var c8=u8;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=X7;pt.prototype.delete=n8;pt.prototype.get=a8;pt.prototype.has=s8;pt.prototype.set=c8;var Ln=pt,d8=ct(J,"Map"),zr=d8;function p8(){this.size=0,this.__data__={hash:new ku,map:new(zr||Ln),string:new ku}}var g8=p8;function f8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var y8=f8;function m8(e,t){var r=e.__data__;return y8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=m8;function h8(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var b8=h8;function v8(e){return Tn(this,e).get(e)}var w8=v8;function k8(e){return Tn(this,e).has(e)}var x8=k8;function I8(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var A8=I8;function gt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gt.prototype.clear=g8;gt.prototype.delete=b8;gt.prototype.get=w8;gt.prototype.has=x8;gt.prototype.set=A8;var yc=gt;function C8(){this.__data__=new Ln,this.size=0}var M8=C8;function j8(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var S8=j8;function $8(e){return this.__data__.get(e)}var _8=$8;function E8(e){return this.__data__.has(e)}var L8=E8,T8=200;function O8(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!zr||i.length<T8-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yc(i)}return r.set(e,t),this.size=r.size,this}var N8=O8;function Gr(e){var t=this.__data__=new Ln(e);this.size=t.size}Gr.prototype.clear=M8;Gr.prototype.delete=S8;Gr.prototype.get=_8;Gr.prototype.has=L8;Gr.prototype.set=N8;var D8=Object.prototype,rJ=D8.propertyIsEnumerable,P8=ct(J,"DataView"),oa=P8,z8=ct(J,"Promise"),aa=z8,U8=ct(J,"Set"),la=U8,xu="[object Map]",R8="[object Object]",Iu="[object Promise]",Au="[object Set]",Cu="[object WeakMap]",Mu="[object DataView]",F8=Me(oa),V8=Me(zr),B8=Me(aa),q8=Me(la),G8=Me(na),rt=qr;(oa&&rt(new oa(new ArrayBuffer(1)))!=Mu||zr&&rt(new zr)!=xu||aa&&rt(aa.resolve())!=Iu||la&&rt(new la)!=Au||na&&rt(new na)!=Cu)&&(rt=function(e){var t=qr(e),r=t==R8?e.constructor:void 0,i=r?Me(r):"";if(i)switch(i){case F8:return Mu;case V8:return xu;case B8:return Iu;case q8:return Au;case G8:return Cu}return t});var iJ=J.Uint8Array,Y8="__lodash_hash_undefined__";function H8(e){return this.__data__.set(e,Y8),this}var Z8=H8;function Q8(e){return this.__data__.has(e)}var W8=Q8;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=Z8;sa.prototype.has=W8;var ju=ot?ot.prototype:void 0,nJ=ju?ju.valueOf:void 0,K8=Object.prototype,oJ=K8.hasOwnProperty,J8=Object.prototype,aJ=J8.hasOwnProperty,lJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),sJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),uJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function X8(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ft(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return X8(i,t)}function e6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Su=e6,Cn="@imgly/plugin-ai-image-generation-web",t6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"],On="editImage",le=`ly.img.${On}`,$u=`ly.img.plugin-ai-image-generation-web.quickAction.${On}`,hn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${On}`;function bn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${On}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var r6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${hn}`]:"Edit Image...",[`${hn}.description`]:"Change image based on description",[`${hn}.prompt`]:"Edit Image...",[`${$u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${hn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${$u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${le}.prompt`,"");t.TextArea(`${le}.prompt`,{inputLabel:bn(l,"prompt"),placeholder:bn(l,"prompt.placeholder")[1],...u}),t.Separator(`${le}.separator`),r.builder.ButtonRow(`${le}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${le}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${le}.footer.apply`,{label:bn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ft(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${le}.button`,{label:bn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),i6=r6,Nn="swapBackground",se=`ly.img.${Nn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Nn}`,vn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Nn}`;function wn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Nn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var n6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${vn}`]:"Swap Background...",[`${vn}.description`]:"Change the background of the image",[`${vn}.prompt`]:"Swap Background...",[`${_u}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${vn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${_u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${se}.prompt`,"");t.TextArea(`${se}.prompt`,{inputLabel:wn(l,"prompt"),placeholder:wn(l,"prompt.placeholder")[1],...u}),t.Separator(`${se}.separator`),r.builder.ButtonRow(`${se}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${se}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${se}.footer.apply`,{label:wn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ft(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${se}.button`,{label:wn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),o6=n6,Dn="styleTransfer",$r=`ly.img.${Dn}`,a6=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function Eu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Dn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var l6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],s6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${Z}`]:"Change Art Style",[`${Z}.description`]:"Transform image into different art styles",[`${Z}.water`]:"Watercolor Painting",[`${Z}.oil`]:"Oil Painting",[`${Z}.charcoal`]:"Charcoal Sketch",[`${Z}.pencil`]:"Pencil Drawing",[`${Z}.pastel`]:"Pastel Artwork",[`${Z}.ink`]:"Ink Wash",[`${Z}.stained-glass`]:"Stained Glass Window",[`${Z}.japanese`]:"Japanese Woodblock Print"}}),{id:$r,type:"quick",kind:"image",label:`${a6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Eu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${$r}.popover.section`,{children:()=>{r.builder.Menu(`${$r}.popover.menu`,{children:()=>{l6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Eu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),u6=s6,Pn="artistTransfer",_r=`ly.img.${Pn}`,c6=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function Lu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var d6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],p6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:_r,type:"quick",kind:"image",label:`${c6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Lu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{d6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Lu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),g6=p6,zn="createVariant",ue=`ly.img.${zn}`,Tu=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,kn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function xn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var f6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${kn}`]:"Create Variant...",[`${kn}.description`]:"Create a variation of the image",[`${kn}.prompt`]:"Create Variant...",[`${Tu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${kn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Tu}`,enable:t=>{if(!Br()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:xn(l,"prompt"),placeholder:xn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:xn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),w=o.block.getHeight(f),k=.02*Math.min(b,w)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await ft(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:xn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),y6=f6,Un="combineImages",ce=`ly.img.${Un}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,Qo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function In(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var m6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Qo}.apply`]:"Combine",[`${Qo}`]:"Combine Images...",[`${Qo}.prompt`]:"Image Combination Instructions",[`${Ou}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:ce,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),w=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+w),o.block.setPositionY(g,o.block.getPositionY(g)+w);let k=await Promise.all(p.map(I=>ft(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),h6=m6,Rn="remixPage",Nu=`ly.img.${Rn}`,b6=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,v6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function w6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var k6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${v6}`]:"Turn Page into Image"}}),{id:Nu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${b6}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Nu}.button`,{label:w6(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(b=>{i.block.destroy(b)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),x6=k6,Fn="remixPageWithPrompt",de=`ly.img.${Fn}`,Du=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Wo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function An(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var I6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Wo}`]:"Remix Page...",[`${Wo}.prompt`]:"Remix Page Prompt",[`${Du}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Wo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Du}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),w=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,I),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,w),o.block.setPositionY(y,k);let x=o.block.createFill("image");o.block.setFill(y,x),o.block.setString(x,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=I6,pe="ly.img.ai.image-generation";function C6(e){return{async initialize({cesdk:t}){if(t==null)return;b9(t,Cn,"0.2.7"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ca.get(),i=r.register({type:"plugin",sceneMode:"Design",id:Cn,pluginId:Cn,label:"Generate Image",meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});t.ui.addIconSet(ev,rv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image"}}),M6(e),r.register(i6({cesdk:t})),r.register(o6({cesdk:t})),r.register(u6({cesdk:t})),r.register(g6({cesdk:t})),r.register(y6({cesdk:t})),r.register(h6({cesdk:t})),r.register(x6({cesdk:t})),r.register(A6({cesdk:t}));let n=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,o=await Promise.all(Su(n).map(u=>u({cesdk:t}))),s=await Promise.all(Su(a).map(u=>u({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await $3("image",{fromText:o,fromImage:s},{cesdk:t},e),l=await X3({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:t6});c.history?.assetSourceId!=null,l.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",l.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:_n})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,c.panel.builderRenderFunction),w9({cesdk:t,panelId:pe})):i()}}}function M6(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var j6=C6,S6=e=>({name:Cn,version:"0.2.7",...j6(e)}),mc=S6;var $6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ht(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ht(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ht(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ht(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ht(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ht(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ht(n,t,a)}return e}var _6=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},E6=typeof global=="object"&&global&&global.Object===Object&&global,Kc=E6,L6=typeof self=="object"&&self&&self.Object===Object&&self,T6=Kc||L6||Function("return this")(),X=T6,O6=X.Symbol,bt=O6,Jc=Object.prototype,N6=Jc.hasOwnProperty,D6=Jc.toString,Yr=bt?bt.toStringTag:void 0;function P6(e){var t=N6.call(e,Yr),r=e[Yr];try{e[Yr]=void 0;var i=!0}catch{}var n=D6.call(e);return i&&(t?e[Yr]=r:delete e[Yr]),n}var z6=P6,U6=Object.prototype,R6=U6.toString;function F6(e){return R6.call(e)}var V6=F6,B6="[object Null]",q6="[object Undefined]",hc=bt?bt.toStringTag:void 0;function G6(e){return e==null?e===void 0?q6:B6:hc&&hc in Object(e)?z6(e):V6(e)}var ii=G6;function Y6(e){return e!=null&&typeof e=="object"}var Oa=Y6,fJ=Array.isArray;function H6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xc=H6,Z6="[object AsyncFunction]",Q6="[object Function]",W6="[object GeneratorFunction]",K6="[object Proxy]";function J6(e){if(!Xc(e))return!1;var t=ii(e);return t==Q6||t==W6||t==Z6||t==K6}var X6=J6,ew=X["__core-js_shared__"],ya=ew,bc=function(){var e=/[^.]+$/.exec(ya&&ya.keys&&ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tw(e){return!!bc&&bc in e}var rw=tw,iw=Function.prototype,nw=iw.toString;function ow(e){if(e!=null){try{return nw.call(e)}catch{}try{return e+""}catch{}}return""}var Se=ow,aw=/[\\^$.*+?()[\]{}|]/g,lw=/^\[object .+?Constructor\]$/,sw=Function.prototype,uw=Object.prototype,cw=sw.toString,dw=uw.hasOwnProperty,pw=RegExp("^"+cw.call(dw).replace(aw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gw(e){if(!Xc(e)||rw(e))return!1;var t=X6(e)?pw:lw;return t.test(Se(e))}var fw=gw;function yw(e,t){return e?.[t]}var mw=yw;function hw(e,t){var r=mw(e,t);return fw(r)?r:void 0}var wt=hw,bw=wt(X,"WeakMap"),xa=bw;function vw(e,t){return e===t||e!==e&&t!==t}var ww=vw,kw=9007199254740991;function xw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kw}var Iw=xw,yJ=Object.prototype,Aw="[object Arguments]";function Cw(e){return Oa(e)&&ii(e)==Aw}var vc=Cw,ed=Object.prototype,Mw=ed.hasOwnProperty,jw=ed.propertyIsEnumerable,mJ=vc(function(){return arguments}())?vc:function(e){return Oa(e)&&Mw.call(e,"callee")&&!jw.call(e,"callee")},td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wc=td&&typeof module=="object"&&module&&!module.nodeType&&module,Sw=wc&&wc.exports===td,kc=Sw?X.Buffer:void 0,hJ=kc?kc.isBuffer:void 0,$w="[object Arguments]",_w="[object Array]",Ew="[object Boolean]",Lw="[object Date]",Tw="[object Error]",Ow="[object Function]",Nw="[object Map]",Dw="[object Number]",Pw="[object Object]",zw="[object RegExp]",Uw="[object Set]",Rw="[object String]",Fw="[object WeakMap]",Vw="[object ArrayBuffer]",Bw="[object DataView]",qw="[object Float32Array]",Gw="[object Float64Array]",Yw="[object Int8Array]",Hw="[object Int16Array]",Zw="[object Int32Array]",Qw="[object Uint8Array]",Ww="[object Uint8ClampedArray]",Kw="[object Uint16Array]",Jw="[object Uint32Array]",D={};D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=!0;D[$w]=D[_w]=D[Vw]=D[Ew]=D[Bw]=D[Lw]=D[Tw]=D[Ow]=D[Nw]=D[Dw]=D[Pw]=D[zw]=D[Uw]=D[Rw]=D[Fw]=!1;function Xw(e){return Oa(e)&&Iw(e.length)&&!!D[ii(e)]}var ek=Xw;function tk(e){return function(t){return e(t)}}var rk=tk,rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kr=rd&&typeof module=="object"&&module&&!module.nodeType&&module,ik=Kr&&Kr.exports===rd,ma=ik&&Kc.process,nk=function(){try{var e=Kr&&Kr.require&&Kr.require("util").types;return e||ma&&ma.binding&&ma.binding("util")}catch{}}(),xc=nk,Ic=xc&&xc.isTypedArray,bJ=Ic?rk(Ic):ek,ok=Object.prototype,vJ=ok.hasOwnProperty;function ak(e,t){return function(r){return e(t(r))}}var lk=ak,wJ=lk(Object.keys,Object),sk=Object.prototype,kJ=sk.hasOwnProperty,uk=wt(Object,"create"),Xr=uk;function ck(){this.__data__=Xr?Xr(null):{},this.size=0}var dk=ck;function pk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gk=pk,fk="__lodash_hash_undefined__",yk=Object.prototype,mk=yk.hasOwnProperty;function hk(e){var t=this.__data__;if(Xr){var r=t[e];return r===fk?void 0:r}return mk.call(t,e)?t[e]:void 0}var bk=hk,vk=Object.prototype,wk=vk.hasOwnProperty;function kk(e){var t=this.__data__;return Xr?t[e]!==void 0:wk.call(t,e)}var xk=kk,Ik="__lodash_hash_undefined__";function Ak(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xr&&t===void 0?Ik:t,this}var Ck=Ak;function kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}kt.prototype.clear=dk;kt.prototype.delete=gk;kt.prototype.get=bk;kt.prototype.has=xk;kt.prototype.set=Ck;var Ac=kt;function Mk(){this.__data__=[],this.size=0}var jk=Mk;function Sk(e,t){for(var r=e.length;r--;)if(ww(e[r][0],t))return r;return-1}var Bn=Sk,$k=Array.prototype,_k=$k.splice;function Ek(e){var t=this.__data__,r=Bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_k.call(t,r,1),--this.size,!0}var Lk=Ek;function Tk(e){var t=this.__data__,r=Bn(t,e);return r<0?void 0:t[r][1]}var Ok=Tk;function Nk(e){return Bn(this.__data__,e)>-1}var Dk=Nk;function Pk(e,t){var r=this.__data__,i=Bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zk=Pk;function xt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}xt.prototype.clear=jk;xt.prototype.delete=Lk;xt.prototype.get=Ok;xt.prototype.has=Dk;xt.prototype.set=zk;var qn=xt,Uk=wt(X,"Map"),ei=Uk;function Rk(){this.size=0,this.__data__={hash:new Ac,map:new(ei||qn),string:new Ac}}var Fk=Rk;function Vk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bk=Vk;function qk(e,t){var r=e.__data__;return Bk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Gn=qk;function Gk(e){var t=Gn(this,e).delete(e);return this.size-=t?1:0,t}var Yk=Gk;function Hk(e){return Gn(this,e).get(e)}var Zk=Hk;function Qk(e){return Gn(this,e).has(e)}var Wk=Qk;function Kk(e,t){var r=Gn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jk=Kk;function It(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}It.prototype.clear=Fk;It.prototype.delete=Yk;It.prototype.get=Zk;It.prototype.has=Wk;It.prototype.set=Jk;var id=It;function Xk(){this.__data__=new qn,this.size=0}var ex=Xk;function tx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rx=tx;function ix(e){return this.__data__.get(e)}var nx=ix;function ox(e){return this.__data__.has(e)}var ax=ox,lx=200;function sx(e,t){var r=this.__data__;if(r instanceof qn){var i=r.__data__;if(!ei||i.length<lx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new id(i)}return r.set(e,t),this.size=r.size,this}var ux=sx;function ni(e){var t=this.__data__=new qn(e);this.size=t.size}ni.prototype.clear=ex;ni.prototype.delete=rx;ni.prototype.get=nx;ni.prototype.has=ax;ni.prototype.set=ux;var cx=Object.prototype,xJ=cx.propertyIsEnumerable,dx=wt(X,"DataView"),Ia=dx,px=wt(X,"Promise"),Aa=px,gx=wt(X,"Set"),Ca=gx,Cc="[object Map]",fx="[object Object]",Mc="[object Promise]",jc="[object Set]",Sc="[object WeakMap]",$c="[object DataView]",yx=Se(Ia),mx=Se(ei),hx=Se(Aa),bx=Se(Ca),vx=Se(xa),yt=ii;(Ia&&yt(new Ia(new ArrayBuffer(1)))!=$c||ei&&yt(new ei)!=Cc||Aa&&yt(Aa.resolve())!=Mc||Ca&&yt(new Ca)!=jc||xa&&yt(new xa)!=Sc)&&(yt=function(e){var t=ii(e),r=t==fx?e.constructor:void 0,i=r?Se(r):"";if(i)switch(i){case yx:return $c;case mx:return Cc;case hx:return Mc;case bx:return jc;case vx:return Sc}return t});var IJ=X.Uint8Array,wx="__lodash_hash_undefined__";function kx(e){return this.__data__.set(e,wx),this}var xx=kx;function Ix(e){return this.__data__.has(e)}var Ax=Ix;function Ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new id;++t<r;)this.add(e[t])}Ma.prototype.add=Ma.prototype.push=xx;Ma.prototype.has=Ax;var _c=bt?bt.prototype:void 0,AJ=_c?_c.valueOf:void 0,Cx=Object.prototype,CJ=Cx.hasOwnProperty,Mx=Object.prototype,MJ=Mx.hasOwnProperty,jJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function nd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function jx(e,t){let r=await nd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Sx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return nd(i,t)}function $x(e){return e!==void 0}var _x=$x;function oi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ai(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ja=class od{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new od),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},Ex=class ad{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ad),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Lx(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Tx({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Ox=Tx,ha="ly.img.ai.temp";async function Nx(e,t){return e.engine.asset.findAllSources().includes(ha)||e.engine.asset.addLocalSource(ha),e.engine.asset.apply(ha,t)}function Dx(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function ld(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Px(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zx(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Na(e){return e instanceof Error&&e.name==="AbortError"}function Ux(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Rx(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
144
+ `,rv=tv,iv=typeof global=="object"&&global&&global.Object===Object&&global,uc=iv,nv=typeof self=="object"&&self&&self.Object===Object&&self,ov=uc||nv||Function("return this")(),J=ov,av=J.Symbol,ot=av,cc=Object.prototype,lv=cc.hasOwnProperty,sv=cc.toString,Sr=ot?ot.toStringTag:void 0;function uv(e){var t=lv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=sv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var cv=uv,dv=Object.prototype,pv=dv.toString;function gv(e){return pv.call(e)}var fv=gv,yv="[object Null]",mv="[object Undefined]",fu=ot?ot.toStringTag:void 0;function hv(e){return e==null?e===void 0?mv:yv:fu&&fu in Object(e)?cv(e):fv(e)}var qr=hv;function bv(e){return e!=null&&typeof e=="object"}var fa=bv,ZK=Array.isArray;function vv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dc=vv,wv="[object AsyncFunction]",kv="[object Function]",xv="[object GeneratorFunction]",Iv="[object Proxy]";function Av(e){if(!dc(e))return!1;var t=qr(e);return t==kv||t==xv||t==wv||t==Iv}var Cv=Av,Mv=J["__core-js_shared__"],Ho=Mv,yu=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jv(e){return!!yu&&yu in e}var Sv=jv,$v=Function.prototype,_v=$v.toString;function Ev(e){if(e!=null){try{return _v.call(e)}catch{}try{return e+""}catch{}}return""}var Me=Ev,Lv=/[\\^$.*+?()[\]{}|]/g,Tv=/^\[object .+?Constructor\]$/,Ov=Function.prototype,Nv=Object.prototype,Dv=Ov.toString,Pv=Nv.hasOwnProperty,zv=RegExp("^"+Dv.call(Pv).replace(Lv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uv(e){if(!dc(e)||Sv(e))return!1;var t=Cv(e)?zv:Tv;return t.test(Me(e))}var Rv=Uv;function Fv(e,t){return e?.[t]}var Vv=Fv;function Bv(e,t){var r=Vv(e,t);return Rv(r)?r:void 0}var ct=Bv,qv=ct(J,"WeakMap"),na=qv;function Gv(e,t){return e===t||e!==e&&t!==t}var Yv=Gv,Hv=9007199254740991;function Zv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hv}var Qv=Zv,QK=Object.prototype,Wv="[object Arguments]";function Kv(e){return fa(e)&&qr(e)==Wv}var mu=Kv,pc=Object.prototype,Jv=pc.hasOwnProperty,Xv=pc.propertyIsEnumerable,WK=mu(function(){return arguments}())?mu:function(e){return fa(e)&&Jv.call(e,"callee")&&!Xv.call(e,"callee")},gc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=gc&&typeof module=="object"&&module&&!module.nodeType&&module,e8=hu&&hu.exports===gc,bu=e8?J.Buffer:void 0,KK=bu?bu.isBuffer:void 0,t8="[object Arguments]",r8="[object Array]",i8="[object Boolean]",n8="[object Date]",o8="[object Error]",a8="[object Function]",l8="[object Map]",s8="[object Number]",u8="[object Object]",c8="[object RegExp]",d8="[object Set]",p8="[object String]",g8="[object WeakMap]",f8="[object ArrayBuffer]",y8="[object DataView]",m8="[object Float32Array]",h8="[object Float64Array]",b8="[object Int8Array]",v8="[object Int16Array]",w8="[object Int32Array]",k8="[object Uint8Array]",x8="[object Uint8ClampedArray]",I8="[object Uint16Array]",A8="[object Uint32Array]",N={};N[m8]=N[h8]=N[b8]=N[v8]=N[w8]=N[k8]=N[x8]=N[I8]=N[A8]=!0;N[t8]=N[r8]=N[f8]=N[i8]=N[y8]=N[n8]=N[o8]=N[a8]=N[l8]=N[s8]=N[u8]=N[c8]=N[d8]=N[p8]=N[g8]=!1;function C8(e){return fa(e)&&Qv(e.length)&&!!N[qr(e)]}var M8=C8;function j8(e){return function(t){return e(t)}}var S8=j8,fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Or=fc&&typeof module=="object"&&module&&!module.nodeType&&module,$8=Or&&Or.exports===fc,Zo=$8&&uc.process,_8=function(){try{var e=Or&&Or.require&&Or.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),vu=_8,wu=vu&&vu.isTypedArray,JK=wu?S8(wu):M8,E8=Object.prototype,XK=E8.hasOwnProperty;function L8(e,t){return function(r){return e(t(r))}}var T8=L8,eJ=T8(Object.keys,Object),O8=Object.prototype,tJ=O8.hasOwnProperty,N8=ct(Object,"create"),Pr=N8;function D8(){this.__data__=Pr?Pr(null):{},this.size=0}var P8=D8;function z8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var U8=z8,R8="__lodash_hash_undefined__",F8=Object.prototype,V8=F8.hasOwnProperty;function B8(e){var t=this.__data__;if(Pr){var r=t[e];return r===R8?void 0:r}return V8.call(t,e)?t[e]:void 0}var q8=B8,G8=Object.prototype,Y8=G8.hasOwnProperty;function H8(e){var t=this.__data__;return Pr?t[e]!==void 0:Y8.call(t,e)}var Z8=H8,Q8="__lodash_hash_undefined__";function W8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pr&&t===void 0?Q8:t,this}var K8=W8;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=P8;dt.prototype.delete=U8;dt.prototype.get=q8;dt.prototype.has=Z8;dt.prototype.set=K8;var ku=dt;function J8(){this.__data__=[],this.size=0}var X8=J8;function e7(e,t){for(var r=e.length;r--;)if(Yv(e[r][0],t))return r;return-1}var En=e7,t7=Array.prototype,r7=t7.splice;function i7(e){var t=this.__data__,r=En(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 n7=i7;function o7(e){var t=this.__data__,r=En(t,e);return r<0?void 0:t[r][1]}var a7=o7;function l7(e){return En(this.__data__,e)>-1}var s7=l7;function u7(e,t){var r=this.__data__,i=En(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var c7=u7;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=X8;pt.prototype.delete=n7;pt.prototype.get=a7;pt.prototype.has=s7;pt.prototype.set=c7;var Ln=pt,d7=ct(J,"Map"),zr=d7;function p7(){this.size=0,this.__data__={hash:new ku,map:new(zr||Ln),string:new ku}}var g7=p7;function f7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var y7=f7;function m7(e,t){var r=e.__data__;return y7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=m7;function h7(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var b7=h7;function v7(e){return Tn(this,e).get(e)}var w7=v7;function k7(e){return Tn(this,e).has(e)}var x7=k7;function I7(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var A7=I7;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=g7;gt.prototype.delete=b7;gt.prototype.get=w7;gt.prototype.has=x7;gt.prototype.set=A7;var yc=gt;function C7(){this.__data__=new Ln,this.size=0}var M7=C7;function j7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var S7=j7;function $7(e){return this.__data__.get(e)}var _7=$7;function E7(e){return this.__data__.has(e)}var L7=E7,T7=200;function O7(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!zr||i.length<T7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yc(i)}return r.set(e,t),this.size=r.size,this}var N7=O7;function Gr(e){var t=this.__data__=new Ln(e);this.size=t.size}Gr.prototype.clear=M7;Gr.prototype.delete=S7;Gr.prototype.get=_7;Gr.prototype.has=L7;Gr.prototype.set=N7;var D7=Object.prototype,rJ=D7.propertyIsEnumerable,P7=ct(J,"DataView"),oa=P7,z7=ct(J,"Promise"),aa=z7,U7=ct(J,"Set"),la=U7,xu="[object Map]",R7="[object Object]",Iu="[object Promise]",Au="[object Set]",Cu="[object WeakMap]",Mu="[object DataView]",F7=Me(oa),V7=Me(zr),B7=Me(aa),q7=Me(la),G7=Me(na),rt=qr;(oa&&rt(new oa(new ArrayBuffer(1)))!=Mu||zr&&rt(new zr)!=xu||aa&&rt(aa.resolve())!=Iu||la&&rt(new la)!=Au||na&&rt(new na)!=Cu)&&(rt=function(e){var t=qr(e),r=t==R7?e.constructor:void 0,i=r?Me(r):"";if(i)switch(i){case F7:return Mu;case V7:return xu;case B7:return Iu;case q7:return Au;case G7:return Cu}return t});var iJ=J.Uint8Array,Y7="__lodash_hash_undefined__";function H7(e){return this.__data__.set(e,Y7),this}var Z7=H7;function Q7(e){return this.__data__.has(e)}var W7=Q7;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=Z7;sa.prototype.has=W7;var ju=ot?ot.prototype:void 0,nJ=ju?ju.valueOf:void 0,K7=Object.prototype,oJ=K7.hasOwnProperty,J7=Object.prototype,aJ=J7.hasOwnProperty,lJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),sJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),uJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function X7(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ft(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return X7(i,t)}function e6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Su=e6,Cn="@imgly/plugin-ai-image-generation-web",t6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"],On="editImage",le=`ly.img.${On}`,$u=`ly.img.plugin-ai-image-generation-web.quickAction.${On}`,hn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${On}`;function bn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${On}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var r6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${hn}`]:"Edit Image...",[`${hn}.description`]:"Change image based on description",[`${hn}.prompt`]:"Edit Image...",[`${$u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${hn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${$u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${le}.prompt`,"");t.TextArea(`${le}.prompt`,{inputLabel:bn(l,"prompt"),placeholder:bn(l,"prompt.placeholder")[1],...u}),t.Separator(`${le}.separator`),r.builder.ButtonRow(`${le}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${le}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${le}.footer.apply`,{label:bn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ft(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${le}.button`,{label:bn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),i6=r6,Nn="swapBackground",se=`ly.img.${Nn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Nn}`,vn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Nn}`;function wn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Nn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var n6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${vn}`]:"Swap Background...",[`${vn}.description`]:"Change the background of the image",[`${vn}.prompt`]:"Swap Background...",[`${_u}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${vn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${_u}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${se}.prompt`,"");t.TextArea(`${se}.prompt`,{inputLabel:wn(l,"prompt"),placeholder:wn(l,"prompt.placeholder")[1],...u}),t.Separator(`${se}.separator`),r.builder.ButtonRow(`${se}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${se}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${se}.footer.apply`,{label:wn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await ft(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${se}.button`,{label:wn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),o6=n6,Dn="styleTransfer",$r=`ly.img.${Dn}`,a6=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function Eu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Dn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var l6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],s6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${Z}`]:"Change Art Style",[`${Z}.description`]:"Transform image into different art styles",[`${Z}.water`]:"Watercolor Painting",[`${Z}.oil`]:"Oil Painting",[`${Z}.charcoal`]:"Charcoal Sketch",[`${Z}.pencil`]:"Pencil Drawing",[`${Z}.pastel`]:"Pastel Artwork",[`${Z}.ink`]:"Ink Wash",[`${Z}.stained-glass`]:"Stained Glass Window",[`${Z}.japanese`]:"Japanese Woodblock Print"}}),{id:$r,type:"quick",kind:"image",label:`${a6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Eu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${$r}.popover.section`,{children:()=>{r.builder.Menu(`${$r}.popover.menu`,{children:()=>{l6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Eu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),u6=s6,Pn="artistTransfer",_r=`ly.img.${Pn}`,c6=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function Lu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Pn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var d6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],p6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:_r,type:"quick",kind:"image",label:`${c6}`,enable:Br(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Lu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{d6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Lu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await ft(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),g6=p6,zn="createVariant",ue=`ly.img.${zn}`,Tu=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,kn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function xn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var f6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${kn}`]:"Create Variant...",[`${kn}.description`]:"Create a variation of the image",[`${kn}.prompt`]:"Create Variant...",[`${Tu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${kn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Tu}`,enable:t=>{if(!Br()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:xn(l,"prompt"),placeholder:xn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:xn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),w=o.block.getHeight(f),k=.02*Math.min(b,w)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await ft(m,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[m]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:xn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),y6=f6,Un="combineImages",ce=`ly.img.${Un}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,Qo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function In(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var m6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Qo}.apply`]:"Combine",[`${Qo}`]:"Combine Images...",[`${Qo}.prompt`]:"Image Combination Instructions",[`${Ou}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:ce,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),w=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+w),o.block.setPositionY(g,o.block.getPositionY(g)+w);let k=await Promise.all(p.map(I=>ft(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),h6=m6,Rn="remixPage",Nu=`ly.img.${Rn}`,b6=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,v6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function w6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var k6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${v6}`]:"Turn Page into Image"}}),{id:Nu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${b6}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Nu}.button`,{label:w6(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(b=>{i.block.destroy(b)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),m=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,m),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),x6=k6,Fn="remixPageWithPrompt",de=`ly.img.${Fn}`,Du=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Wo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function An(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var I6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Wo}`]:"Remix Page...",[`${Wo}.prompt`]:"Remix Page Prompt",[`${Du}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Wo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Du}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),w=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,I),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,w),o.block.setPositionY(y,k);let x=o.block.createFill("image");o.block.setFill(y,x),o.block.setString(x,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=I6,pe="ly.img.ai.image-generation";function C6(e){return{async initialize({cesdk:t}){if(t==null)return;b9(t,Cn,"0.2.8"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ca.get(),i=r.register({type:"plugin",sceneMode:"Design",id:Cn,pluginId:Cn,label:"Generate Image",meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});t.ui.addIconSet(ev,rv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image"}}),M6(e),r.register(i6({cesdk:t})),r.register(o6({cesdk:t})),r.register(u6({cesdk:t})),r.register(g6({cesdk:t})),r.register(y6({cesdk:t})),r.register(h6({cesdk:t})),r.register(x6({cesdk:t})),r.register(A6({cesdk:t}));let n=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,o=await Promise.all(Su(n).map(u=>u({cesdk:t}))),s=await Promise.all(Su(a).map(u=>u({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await $3("image",{fromText:o,fromImage:s},{cesdk:t},e),l=await X3({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:t6});c.history?.assetSourceId!=null,l.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",l.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:_n})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,c.panel.builderRenderFunction),w9({cesdk:t,panelId:pe})):i()}}}function M6(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var j6=C6,S6=e=>({name:Cn,version:"0.2.8",...j6(e)}),mc=S6;var $6=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ht(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ht(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ht(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ht(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ht(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ht(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ht(n,t,a)}return e}var _6=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},E6=typeof global=="object"&&global&&global.Object===Object&&global,Kc=E6,L6=typeof self=="object"&&self&&self.Object===Object&&self,T6=Kc||L6||Function("return this")(),X=T6,O6=X.Symbol,bt=O6,Jc=Object.prototype,N6=Jc.hasOwnProperty,D6=Jc.toString,Yr=bt?bt.toStringTag:void 0;function P6(e){var t=N6.call(e,Yr),r=e[Yr];try{e[Yr]=void 0;var i=!0}catch{}var n=D6.call(e);return i&&(t?e[Yr]=r:delete e[Yr]),n}var z6=P6,U6=Object.prototype,R6=U6.toString;function F6(e){return R6.call(e)}var V6=F6,B6="[object Null]",q6="[object Undefined]",hc=bt?bt.toStringTag:void 0;function G6(e){return e==null?e===void 0?q6:B6:hc&&hc in Object(e)?z6(e):V6(e)}var ii=G6;function Y6(e){return e!=null&&typeof e=="object"}var Oa=Y6,fJ=Array.isArray;function H6(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xc=H6,Z6="[object AsyncFunction]",Q6="[object Function]",W6="[object GeneratorFunction]",K6="[object Proxy]";function J6(e){if(!Xc(e))return!1;var t=ii(e);return t==Q6||t==W6||t==Z6||t==K6}var X6=J6,ew=X["__core-js_shared__"],ya=ew,bc=function(){var e=/[^.]+$/.exec(ya&&ya.keys&&ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tw(e){return!!bc&&bc in e}var rw=tw,iw=Function.prototype,nw=iw.toString;function ow(e){if(e!=null){try{return nw.call(e)}catch{}try{return e+""}catch{}}return""}var Se=ow,aw=/[\\^$.*+?()[\]{}|]/g,lw=/^\[object .+?Constructor\]$/,sw=Function.prototype,uw=Object.prototype,cw=sw.toString,dw=uw.hasOwnProperty,pw=RegExp("^"+cw.call(dw).replace(aw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gw(e){if(!Xc(e)||rw(e))return!1;var t=X6(e)?pw:lw;return t.test(Se(e))}var fw=gw;function yw(e,t){return e?.[t]}var mw=yw;function hw(e,t){var r=mw(e,t);return fw(r)?r:void 0}var wt=hw,bw=wt(X,"WeakMap"),xa=bw;function vw(e,t){return e===t||e!==e&&t!==t}var ww=vw,kw=9007199254740991;function xw(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kw}var Iw=xw,yJ=Object.prototype,Aw="[object Arguments]";function Cw(e){return Oa(e)&&ii(e)==Aw}var vc=Cw,ed=Object.prototype,Mw=ed.hasOwnProperty,jw=ed.propertyIsEnumerable,mJ=vc(function(){return arguments}())?vc:function(e){return Oa(e)&&Mw.call(e,"callee")&&!jw.call(e,"callee")},td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wc=td&&typeof module=="object"&&module&&!module.nodeType&&module,Sw=wc&&wc.exports===td,kc=Sw?X.Buffer:void 0,hJ=kc?kc.isBuffer:void 0,$w="[object Arguments]",_w="[object Array]",Ew="[object Boolean]",Lw="[object Date]",Tw="[object Error]",Ow="[object Function]",Nw="[object Map]",Dw="[object Number]",Pw="[object Object]",zw="[object RegExp]",Uw="[object Set]",Rw="[object String]",Fw="[object WeakMap]",Vw="[object ArrayBuffer]",Bw="[object DataView]",qw="[object Float32Array]",Gw="[object Float64Array]",Yw="[object Int8Array]",Hw="[object Int16Array]",Zw="[object Int32Array]",Qw="[object Uint8Array]",Ww="[object Uint8ClampedArray]",Kw="[object Uint16Array]",Jw="[object Uint32Array]",D={};D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=D[Ww]=D[Kw]=D[Jw]=!0;D[$w]=D[_w]=D[Vw]=D[Ew]=D[Bw]=D[Lw]=D[Tw]=D[Ow]=D[Nw]=D[Dw]=D[Pw]=D[zw]=D[Uw]=D[Rw]=D[Fw]=!1;function Xw(e){return Oa(e)&&Iw(e.length)&&!!D[ii(e)]}var ek=Xw;function tk(e){return function(t){return e(t)}}var rk=tk,rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kr=rd&&typeof module=="object"&&module&&!module.nodeType&&module,ik=Kr&&Kr.exports===rd,ma=ik&&Kc.process,nk=function(){try{var e=Kr&&Kr.require&&Kr.require("util").types;return e||ma&&ma.binding&&ma.binding("util")}catch{}}(),xc=nk,Ic=xc&&xc.isTypedArray,bJ=Ic?rk(Ic):ek,ok=Object.prototype,vJ=ok.hasOwnProperty;function ak(e,t){return function(r){return e(t(r))}}var lk=ak,wJ=lk(Object.keys,Object),sk=Object.prototype,kJ=sk.hasOwnProperty,uk=wt(Object,"create"),Xr=uk;function ck(){this.__data__=Xr?Xr(null):{},this.size=0}var dk=ck;function pk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gk=pk,fk="__lodash_hash_undefined__",yk=Object.prototype,mk=yk.hasOwnProperty;function hk(e){var t=this.__data__;if(Xr){var r=t[e];return r===fk?void 0:r}return mk.call(t,e)?t[e]:void 0}var bk=hk,vk=Object.prototype,wk=vk.hasOwnProperty;function kk(e){var t=this.__data__;return Xr?t[e]!==void 0:wk.call(t,e)}var xk=kk,Ik="__lodash_hash_undefined__";function Ak(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xr&&t===void 0?Ik:t,this}var Ck=Ak;function kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}kt.prototype.clear=dk;kt.prototype.delete=gk;kt.prototype.get=bk;kt.prototype.has=xk;kt.prototype.set=Ck;var Ac=kt;function Mk(){this.__data__=[],this.size=0}var jk=Mk;function Sk(e,t){for(var r=e.length;r--;)if(ww(e[r][0],t))return r;return-1}var Bn=Sk,$k=Array.prototype,_k=$k.splice;function Ek(e){var t=this.__data__,r=Bn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_k.call(t,r,1),--this.size,!0}var Lk=Ek;function Tk(e){var t=this.__data__,r=Bn(t,e);return r<0?void 0:t[r][1]}var Ok=Tk;function Nk(e){return Bn(this.__data__,e)>-1}var Dk=Nk;function Pk(e,t){var r=this.__data__,i=Bn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zk=Pk;function xt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}xt.prototype.clear=jk;xt.prototype.delete=Lk;xt.prototype.get=Ok;xt.prototype.has=Dk;xt.prototype.set=zk;var qn=xt,Uk=wt(X,"Map"),ei=Uk;function Rk(){this.size=0,this.__data__={hash:new Ac,map:new(ei||qn),string:new Ac}}var Fk=Rk;function Vk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bk=Vk;function qk(e,t){var r=e.__data__;return Bk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Gn=qk;function Gk(e){var t=Gn(this,e).delete(e);return this.size-=t?1:0,t}var Yk=Gk;function Hk(e){return Gn(this,e).get(e)}var Zk=Hk;function Qk(e){return Gn(this,e).has(e)}var Wk=Qk;function Kk(e,t){var r=Gn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jk=Kk;function It(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}It.prototype.clear=Fk;It.prototype.delete=Yk;It.prototype.get=Zk;It.prototype.has=Wk;It.prototype.set=Jk;var id=It;function Xk(){this.__data__=new qn,this.size=0}var ex=Xk;function tx(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rx=tx;function ix(e){return this.__data__.get(e)}var nx=ix;function ox(e){return this.__data__.has(e)}var ax=ox,lx=200;function sx(e,t){var r=this.__data__;if(r instanceof qn){var i=r.__data__;if(!ei||i.length<lx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new id(i)}return r.set(e,t),this.size=r.size,this}var ux=sx;function ni(e){var t=this.__data__=new qn(e);this.size=t.size}ni.prototype.clear=ex;ni.prototype.delete=rx;ni.prototype.get=nx;ni.prototype.has=ax;ni.prototype.set=ux;var cx=Object.prototype,xJ=cx.propertyIsEnumerable,dx=wt(X,"DataView"),Ia=dx,px=wt(X,"Promise"),Aa=px,gx=wt(X,"Set"),Ca=gx,Cc="[object Map]",fx="[object Object]",Mc="[object Promise]",jc="[object Set]",Sc="[object WeakMap]",$c="[object DataView]",yx=Se(Ia),mx=Se(ei),hx=Se(Aa),bx=Se(Ca),vx=Se(xa),yt=ii;(Ia&&yt(new Ia(new ArrayBuffer(1)))!=$c||ei&&yt(new ei)!=Cc||Aa&&yt(Aa.resolve())!=Mc||Ca&&yt(new Ca)!=jc||xa&&yt(new xa)!=Sc)&&(yt=function(e){var t=ii(e),r=t==fx?e.constructor:void 0,i=r?Se(r):"";if(i)switch(i){case yx:return $c;case mx:return Cc;case hx:return Mc;case bx:return jc;case vx:return Sc}return t});var IJ=X.Uint8Array,wx="__lodash_hash_undefined__";function kx(e){return this.__data__.set(e,wx),this}var xx=kx;function Ix(e){return this.__data__.has(e)}var Ax=Ix;function Ma(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new id;++t<r;)this.add(e[t])}Ma.prototype.add=Ma.prototype.push=xx;Ma.prototype.has=Ax;var _c=bt?bt.prototype:void 0,AJ=_c?_c.valueOf:void 0,Cx=Object.prototype,CJ=Cx.hasOwnProperty,Mx=Object.prototype,MJ=Mx.hasOwnProperty,jJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$J=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function nd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function jx(e,t){let r=await nd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Sx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return nd(i,t)}function $x(e){return e!==void 0}var _x=$x;function oi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ai(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ja=class od{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new od),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},Ex=class ad{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ad),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Lx(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Tx({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Ox=Tx,ha="ly.img.ai.temp";async function Nx(e,t){return e.engine.asset.findAllSources().includes(ha)||e.engine.asset.addLocalSource(ha),e.engine.asset.apply(ha,t)}function Dx(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function ld(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Px(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zx(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Na(e){return e instanceof Error&&e.name==="AbortError"}function Ux(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Rx(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
145
145
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
146
146
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
147
147
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Fx(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Vx=Fx;function Bx(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var qx=Bx;function Gx(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),Yx(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Dx(e)})}function Yx(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Ec=Gx,Hx="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Da=Hx;function Zx(e,t,r){switch(t){case"image":return Qx(e,r[t]);case"video":return Wx(e,r[t]);case"sticker":return Kx(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Qx(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Da,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Wx(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Da,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Kx(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Da,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Jx=Zx;async function Xx(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return eI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return tI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return rI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return iI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function eI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function tI(e,t,r){let i=t.width,n=t.height,a=await Px(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function rI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function iI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var sd=Xx;function nI(e){switch(e.userFlow){case"placeholder":return aI(e);case"generation-only":return oI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function oI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=ld(),c=await sd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function aI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=ld(),c=Jx(s,a,o);if(i=await Nx(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await sd(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Na(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var lI=nI;function Pa(e){return`${e}.generating`}function sI(e){return`${e}.abort`}function uI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(sI(d),()=>{}),m=c.global(Pa(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await lI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Ec(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;cI(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(Na(y))return;Ec(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function cI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var ud=uI;async function dI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(Pa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return ud(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var pI=dI;function cd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Qr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=cd(e,t.$ref),n={...Qr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Qr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Qr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Qr(e,t[n],r));return i}return t}function gI(e){return Qr(e,{...e})}function fI(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function yI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return mI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function mI(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=hI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function hI(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var dd=yI;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function pd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function gd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?bI(e,c,r,i,n,a,o,s):fd(e,c,r,i,n,a,o,s);case"boolean":return yd(e,c,r,i,n,a,o,s);case"number":case"integer":return md(e,c,r,i,n,a,o,s);case"object":return Sa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return vI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Sa(e,t,r,i,n,a,o,s){let c=dd(t.schema??{},i).reduce((l,u)=>{let d=gd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function fd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=oi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=ai(d,f,m,t.schema.default,""),b=l(p,h),w=wI(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function bI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),{labels:m,icons:f}=pd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(t,r,o,x),icon:f[x]})),b=oi(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=ai(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function yd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=oi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ai(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function md(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=oi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=ai(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function vI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=pd(t.schema),I=oi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:fd,boolean:yd,integer:md,object:Sa},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:je(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Sa(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=ai(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function wI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var kI=gd,xI={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Lc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function II(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Lc(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Lc(g);n[a(l.id,g)]=m}})}});let c={...xI,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function AI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=gI(r.document),c=cd(s,r.inputReference);if(!fI(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=dd(l,r);return II(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=kI(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});ud(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var CI=AI;async function MI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return pI(e,t);case"schema":return CI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var jI=MI;function SI(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $6(o,r)),o}return i}var $I=SI;function _I(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var EI=_I,ba="@imgly/plugin-ai-generation",LI=`
@@ -206,7 +206,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
206
206
  </symbol>
207
207
  </svg>
208
208
  `,TI=LI;function OI(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await hd(2e3),await NI(t,e,r)):i(t,r)}async function NI(e,t,r){switch(t.kind){case"image":return DI(e,t,r);case"video":return PI(e,t,r);case"text":return zI(e,t,r);case"audio":return RI(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function DI(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await Sx(s,r),l=await jx(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function PI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function zI(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Hr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Hr(n,o)}else"customPrompt"in e?a=Hr(n,"custom"):a=Hr(n,"improved");else a=Hr(n,"generated");return UI(a,r.abortSignal)}async function*UI(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await hd(100)}return{kind:"text",text:e}}function Hr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function RI(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:FI(220,i),duration:i,thumbnailUrl:void 0}}function FI(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return VI(i,44100)}function VI(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function hd(e){return new Promise(t=>{setTimeout(t,e)})}var BI=OI,qI="USER_CANCEL";function GI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Lx([...e.provider.output.middleware??[],...r?.middlewares??[],Ox({enable:r?.debug}),BI({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:zx(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Na(n)?{status:"aborted",message:n.message}:n===qI?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var YI=GI;async function HI(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ja.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=$I(a),s=EI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=YI({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await jI(a,c);Ux(r.cesdk,"@imgly/plugin-ai-generation",TI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ex.get().register(u),u}var va=HI;function ZI(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _6(n,r,i);return r.engine.asset.addSource(a),a.id}var QI=ZI;function Wr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function WI(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>va(e,u,r,i)));o.push(...l),a=JI({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>va(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>va(e,d,r,i)));o.push(...u),a=KI({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=QI({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_x)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function KI({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Wr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Wr(e,"fromText.label"),icon:f.value!=="fromText"&&Tc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Wr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function JI({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Tc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pa(r.id),!1).value)}var XI=WI,eA=typeof global=="object"&&global&&global.Object===Object&&global,bd=eA,tA=typeof self=="object"&&self&&self.Object===Object&&self,rA=bd||tA||Function("return this")(),ee=rA,iA=ee.Symbol,vt=iA,vd=Object.prototype,nA=vd.hasOwnProperty,oA=vd.toString,Zr=vt?vt.toStringTag:void 0;function aA(e){var t=nA.call(e,Zr),r=e[Zr];try{e[Zr]=void 0;var i=!0}catch{}var n=oA.call(e);return i&&(t?e[Zr]=r:delete e[Zr]),n}var lA=aA,sA=Object.prototype,uA=sA.toString;function cA(e){return uA.call(e)}var dA=cA,pA="[object Null]",gA="[object Undefined]",Oc=vt?vt.toStringTag:void 0;function fA(e){return e==null?e===void 0?gA:pA:Oc&&Oc in Object(e)?lA(e):dA(e)}var li=fA;function yA(e){return e!=null&&typeof e=="object"}var za=yA,_J=Array.isArray;function mA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wd=mA,hA="[object AsyncFunction]",bA="[object Function]",vA="[object GeneratorFunction]",wA="[object Proxy]";function kA(e){if(!wd(e))return!1;var t=li(e);return t==bA||t==vA||t==hA||t==wA}var xA=kA,IA=ee["__core-js_shared__"],wa=IA,Nc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AA(e){return!!Nc&&Nc in e}var CA=AA,MA=Function.prototype,jA=MA.toString;function SA(e){if(e!=null){try{return jA.call(e)}catch{}try{return e+""}catch{}}return""}var $e=SA,$A=/[\\^$.*+?()[\]{}|]/g,_A=/^\[object .+?Constructor\]$/,EA=Function.prototype,LA=Object.prototype,TA=EA.toString,OA=LA.hasOwnProperty,NA=RegExp("^"+TA.call(OA).replace($A,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function DA(e){if(!wd(e)||CA(e))return!1;var t=xA(e)?NA:_A;return t.test($e(e))}var PA=DA;function zA(e,t){return e?.[t]}var UA=zA;function RA(e,t){var r=UA(e,t);return PA(r)?r:void 0}var At=RA,FA=At(ee,"WeakMap"),$a=FA;function VA(e,t){return e===t||e!==e&&t!==t}var BA=VA,qA=9007199254740991;function GA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qA}var YA=GA,EJ=Object.prototype,HA="[object Arguments]";function ZA(e){return za(e)&&li(e)==HA}var Dc=ZA,kd=Object.prototype,QA=kd.hasOwnProperty,WA=kd.propertyIsEnumerable,LJ=Dc(function(){return arguments}())?Dc:function(e){return za(e)&&QA.call(e,"callee")&&!WA.call(e,"callee")},xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pc=xd&&typeof module=="object"&&module&&!module.nodeType&&module,KA=Pc&&Pc.exports===xd,zc=KA?ee.Buffer:void 0,TJ=zc?zc.isBuffer:void 0,JA="[object Arguments]",XA="[object Array]",eC="[object Boolean]",tC="[object Date]",rC="[object Error]",iC="[object Function]",nC="[object Map]",oC="[object Number]",aC="[object Object]",lC="[object RegExp]",sC="[object Set]",uC="[object String]",cC="[object WeakMap]",dC="[object ArrayBuffer]",pC="[object DataView]",gC="[object Float32Array]",fC="[object Float64Array]",yC="[object Int8Array]",mC="[object Int16Array]",hC="[object Int32Array]",bC="[object Uint8Array]",vC="[object Uint8ClampedArray]",wC="[object Uint16Array]",kC="[object Uint32Array]",P={};P[gC]=P[fC]=P[yC]=P[mC]=P[hC]=P[bC]=P[vC]=P[wC]=P[kC]=!0;P[JA]=P[XA]=P[dC]=P[eC]=P[pC]=P[tC]=P[rC]=P[iC]=P[nC]=P[oC]=P[aC]=P[lC]=P[sC]=P[uC]=P[cC]=!1;function xC(e){return za(e)&&YA(e.length)&&!!P[li(e)]}var IC=xC;function AC(e){return function(t){return e(t)}}var CC=AC,Id=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jr=Id&&typeof module=="object"&&module&&!module.nodeType&&module,MC=Jr&&Jr.exports===Id,ka=MC&&bd.process,jC=function(){try{var e=Jr&&Jr.require&&Jr.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Uc=jC,Rc=Uc&&Uc.isTypedArray,OJ=Rc?CC(Rc):IC,SC=Object.prototype,NJ=SC.hasOwnProperty;function $C(e,t){return function(r){return e(t(r))}}var _C=$C,DJ=_C(Object.keys,Object),EC=Object.prototype,PJ=EC.hasOwnProperty,LC=At(Object,"create"),ti=LC;function TC(){this.__data__=ti?ti(null):{},this.size=0}var OC=TC;function NC(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var DC=NC,PC="__lodash_hash_undefined__",zC=Object.prototype,UC=zC.hasOwnProperty;function RC(e){var t=this.__data__;if(ti){var r=t[e];return r===PC?void 0:r}return UC.call(t,e)?t[e]:void 0}var FC=RC,VC=Object.prototype,BC=VC.hasOwnProperty;function qC(e){var t=this.__data__;return ti?t[e]!==void 0:BC.call(t,e)}var GC=qC,YC="__lodash_hash_undefined__";function HC(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?YC:t,this}var ZC=HC;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=OC;Ct.prototype.delete=DC;Ct.prototype.get=FC;Ct.prototype.has=GC;Ct.prototype.set=ZC;var Fc=Ct;function QC(){this.__data__=[],this.size=0}var WC=QC;function KC(e,t){for(var r=e.length;r--;)if(BA(e[r][0],t))return r;return-1}var Yn=KC,JC=Array.prototype,XC=JC.splice;function eM(e){var t=this.__data__,r=Yn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():XC.call(t,r,1),--this.size,!0}var tM=eM;function rM(e){var t=this.__data__,r=Yn(t,e);return r<0?void 0:t[r][1]}var iM=rM;function nM(e){return Yn(this.__data__,e)>-1}var oM=nM;function aM(e,t){var r=this.__data__,i=Yn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var lM=aM;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=WC;Mt.prototype.delete=tM;Mt.prototype.get=iM;Mt.prototype.has=oM;Mt.prototype.set=lM;var Hn=Mt,sM=At(ee,"Map"),ri=sM;function uM(){this.size=0,this.__data__={hash:new Fc,map:new(ri||Hn),string:new Fc}}var cM=uM;function dM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var pM=dM;function gM(e,t){var r=e.__data__;return pM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=gM;function fM(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var yM=fM;function mM(e){return Zn(this,e).get(e)}var hM=mM;function bM(e){return Zn(this,e).has(e)}var vM=bM;function wM(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var kM=wM;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=cM;jt.prototype.delete=yM;jt.prototype.get=hM;jt.prototype.has=vM;jt.prototype.set=kM;var Ad=jt;function xM(){this.__data__=new Hn,this.size=0}var IM=xM;function AM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CM=AM;function MM(e){return this.__data__.get(e)}var jM=MM;function SM(e){return this.__data__.has(e)}var $M=SM,_M=200;function EM(e,t){var r=this.__data__;if(r instanceof Hn){var i=r.__data__;if(!ri||i.length<_M-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ad(i)}return r.set(e,t),this.size=r.size,this}var LM=EM;function si(e){var t=this.__data__=new Hn(e);this.size=t.size}si.prototype.clear=IM;si.prototype.delete=CM;si.prototype.get=jM;si.prototype.has=$M;si.prototype.set=LM;var TM=Object.prototype,zJ=TM.propertyIsEnumerable,OM=At(ee,"DataView"),_a=OM,NM=At(ee,"Promise"),Ea=NM,DM=At(ee,"Set"),La=DM,Vc="[object Map]",PM="[object Object]",Bc="[object Promise]",qc="[object Set]",Gc="[object WeakMap]",Yc="[object DataView]",zM=$e(_a),UM=$e(ri),RM=$e(Ea),FM=$e(La),VM=$e($a),mt=li;(_a&&mt(new _a(new ArrayBuffer(1)))!=Yc||ri&&mt(new ri)!=Vc||Ea&&mt(Ea.resolve())!=Bc||La&&mt(new La)!=qc||$a&&mt(new $a)!=Gc)&&(mt=function(e){var t=li(e),r=t==PM?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case zM:return Yc;case UM:return Vc;case RM:return Bc;case FM:return qc;case VM:return Gc}return t});var UJ=ee.Uint8Array,BM="__lodash_hash_undefined__";function qM(e){return this.__data__.set(e,BM),this}var GM=qM;function YM(e){return this.__data__.has(e)}var HM=YM;function Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ad;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=GM;Ta.prototype.has=HM;var Hc=vt?vt.prototype:void 0,RJ=Hc?Hc.valueOf:void 0,ZM=Object.prototype,FJ=ZM.hasOwnProperty,QM=Object.prototype,VJ=QM.hasOwnProperty,BJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function WM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function KM(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return WM(i,t)}function JM(e){return e==null?[]:Array.isArray(e)?e:[e]}var Zc=JM,Vn="@imgly/plugin-ai-video-generation-web";var Qn="createVideo",Qc=`ly.img.${Qn}`,XM=`ly.img.plugin-ai-video-generation-web.quickAction.${Qn}`,Wc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Qn}`;function ej(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Wc}`]:"Create Video...",[`${Wc}.description`]:"Create a video from the image"}}),{id:Qc,type:"quick",kind:"image",label:`${XM}`,enable:qx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Qc}.button`,{label:ej(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await KM(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),rj=tj,fe="ly.img.ai.video-generation";function ij(e){return{async initialize({cesdk:t}){if(t==null)return;Rx(t,Vn,"0.2.7"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0),t.setTranslations({en:{[`panel.${fe}`]:"Video Generation",[`${fe}.dock.label`]:"AI Video"}}),nj(e);let r=ja.get().register({type:"plugin",sceneMode:"Video",id:Vn,pluginId:Vn,label:"Generate Video",meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}}),i=e.providers?.text2video??e.text2video,n=e.providers?.image2video??e.image2video,a=await Promise.all(Zc(i).map(c=>c({cesdk:t}))),o=await Promise.all(Zc(n).map(c=>c({cesdk:t})));if(!(a.length>0||o.length>0)){r();return}let s=await XI("video",{fromText:a,fromImage:o},{cesdk:t},e);ja.get().register(rj({cesdk:t})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,s.panel.builderRenderFunction),Vx({cesdk:t,panelId:fe})):r()}}}function nj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var oj=ij,aj=e=>({name:Vn,version:"0.2.7",...oj(e)}),Cd=aj;var lj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Et(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Et(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Et(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Et(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Et(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Et(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Et(n,t,a)}return e}var sj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},uj=typeof global=="object"&&global&&global.Object===Object&&global,ap=uj,cj=typeof self=="object"&&self&&self.Object===Object&&self,dj=ap||cj||Function("return this")(),te=dj,pj=te.Symbol,Lt=pj,lp=Object.prototype,gj=lp.hasOwnProperty,fj=lp.toString,ui=Lt?Lt.toStringTag:void 0;function yj(e){var t=gj.call(e,ui),r=e[ui];try{e[ui]=void 0;var i=!0}catch{}var n=fj.call(e);return i&&(t?e[ui]=r:delete e[ui]),n}var mj=yj,hj=Object.prototype,bj=hj.toString;function vj(e){return bj.call(e)}var wj=vj,kj="[object Null]",xj="[object Undefined]",Md=Lt?Lt.toStringTag:void 0;function Ij(e){return e==null?e===void 0?xj:kj:Md&&Md in Object(e)?mj(e):wj(e)}var wi=Ij;function Aj(e){return e!=null&&typeof e=="object"}var il=Aj,QJ=Array.isArray;function Cj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var sp=Cj,Mj="[object AsyncFunction]",jj="[object Function]",Sj="[object GeneratorFunction]",$j="[object Proxy]";function _j(e){if(!sp(e))return!1;var t=wi(e);return t==jj||t==Sj||t==Mj||t==$j}var Ej=_j,Lj=te["__core-js_shared__"],Ua=Lj,jd=function(){var e=/[^.]+$/.exec(Ua&&Ua.keys&&Ua.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tj(e){return!!jd&&jd in e}var Oj=Tj,Nj=Function.prototype,Dj=Nj.toString;function Pj(e){if(e!=null){try{return Dj.call(e)}catch{}try{return e+""}catch{}}return""}var Te=Pj,zj=/[\\^$.*+?()[\]{}|]/g,Uj=/^\[object .+?Constructor\]$/,Rj=Function.prototype,Fj=Object.prototype,Vj=Rj.toString,Bj=Fj.hasOwnProperty,qj=RegExp("^"+Vj.call(Bj).replace(zj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Gj(e){if(!sp(e)||Oj(e))return!1;var t=Ej(e)?qj:Uj;return t.test(Te(e))}var Yj=Gj;function Hj(e,t){return e?.[t]}var Zj=Hj;function Qj(e,t){var r=Zj(e,t);return Yj(r)?r:void 0}var Ot=Qj,Wj=Ot(te,"WeakMap"),Ya=Wj;function Kj(e,t){return e===t||e!==e&&t!==t}var Jj=Kj,Xj=9007199254740991;function eS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Xj}var tS=eS,WJ=Object.prototype,rS="[object Arguments]";function iS(e){return il(e)&&wi(e)==rS}var Sd=iS,up=Object.prototype,nS=up.hasOwnProperty,oS=up.propertyIsEnumerable,KJ=Sd(function(){return arguments}())?Sd:function(e){return il(e)&&nS.call(e,"callee")&&!oS.call(e,"callee")},cp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$d=cp&&typeof module=="object"&&module&&!module.nodeType&&module,aS=$d&&$d.exports===cp,_d=aS?te.Buffer:void 0,JJ=_d?_d.isBuffer:void 0,lS="[object Arguments]",sS="[object Array]",uS="[object Boolean]",cS="[object Date]",dS="[object Error]",pS="[object Function]",gS="[object Map]",fS="[object Number]",yS="[object Object]",mS="[object RegExp]",hS="[object Set]",bS="[object String]",vS="[object WeakMap]",wS="[object ArrayBuffer]",kS="[object DataView]",xS="[object Float32Array]",IS="[object Float64Array]",AS="[object Int8Array]",CS="[object Int16Array]",MS="[object Int32Array]",jS="[object Uint8Array]",SS="[object Uint8ClampedArray]",$S="[object Uint16Array]",_S="[object Uint32Array]",z={};z[xS]=z[IS]=z[AS]=z[CS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=!0;z[lS]=z[sS]=z[wS]=z[uS]=z[kS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=z[yS]=z[mS]=z[hS]=z[bS]=z[vS]=!1;function ES(e){return il(e)&&tS(e.length)&&!!z[wi(e)]}var LS=ES;function TS(e){return function(t){return e(t)}}var OS=TS,dp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fi=dp&&typeof module=="object"&&module&&!module.nodeType&&module,NS=fi&&fi.exports===dp,Ra=NS&&ap.process,DS=function(){try{var e=fi&&fi.require&&fi.require("util").types;return e||Ra&&Ra.binding&&Ra.binding("util")}catch{}}(),Ed=DS,Ld=Ed&&Ed.isTypedArray,XJ=Ld?OS(Ld):LS,PS=Object.prototype,eX=PS.hasOwnProperty;function zS(e,t){return function(r){return e(t(r))}}var US=zS,tX=US(Object.keys,Object),RS=Object.prototype,rX=RS.hasOwnProperty,FS=Ot(Object,"create"),mi=FS;function VS(){this.__data__=mi?mi(null):{},this.size=0}var BS=VS;function qS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var GS=qS,YS="__lodash_hash_undefined__",HS=Object.prototype,ZS=HS.hasOwnProperty;function QS(e){var t=this.__data__;if(mi){var r=t[e];return r===YS?void 0:r}return ZS.call(t,e)?t[e]:void 0}var WS=QS,KS=Object.prototype,JS=KS.hasOwnProperty;function XS(e){var t=this.__data__;return mi?t[e]!==void 0:JS.call(t,e)}var e$=XS,t$="__lodash_hash_undefined__";function r$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=mi&&t===void 0?t$:t,this}var i$=r$;function Nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Nt.prototype.clear=BS;Nt.prototype.delete=GS;Nt.prototype.get=WS;Nt.prototype.has=e$;Nt.prototype.set=i$;var Td=Nt;function n$(){this.__data__=[],this.size=0}var o$=n$;function a$(e,t){for(var r=e.length;r--;)if(Jj(e[r][0],t))return r;return-1}var Wn=a$,l$=Array.prototype,s$=l$.splice;function u$(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():s$.call(t,r,1),--this.size,!0}var c$=u$;function d$(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var p$=d$;function g$(e){return Wn(this.__data__,e)>-1}var f$=g$;function y$(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var m$=y$;function Dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Dt.prototype.clear=o$;Dt.prototype.delete=c$;Dt.prototype.get=p$;Dt.prototype.has=f$;Dt.prototype.set=m$;var Kn=Dt,h$=Ot(te,"Map"),hi=h$;function b$(){this.size=0,this.__data__={hash:new Td,map:new(hi||Kn),string:new Td}}var v$=b$;function w$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var k$=w$;function x$(e,t){var r=e.__data__;return k$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=x$;function I$(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var A$=I$;function C$(e){return Jn(this,e).get(e)}var M$=C$;function j$(e){return Jn(this,e).has(e)}var S$=j$;function $$(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _$=$$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=v$;Pt.prototype.delete=A$;Pt.prototype.get=M$;Pt.prototype.has=S$;Pt.prototype.set=_$;var pp=Pt;function E$(){this.__data__=new Kn,this.size=0}var L$=E$;function T$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var O$=T$;function N$(e){return this.__data__.get(e)}var D$=N$;function P$(e){return this.__data__.has(e)}var z$=P$,U$=200;function R$(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!hi||i.length<U$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new pp(i)}return r.set(e,t),this.size=r.size,this}var F$=R$;function ki(e){var t=this.__data__=new Kn(e);this.size=t.size}ki.prototype.clear=L$;ki.prototype.delete=O$;ki.prototype.get=D$;ki.prototype.has=z$;ki.prototype.set=F$;var V$=Object.prototype,iX=V$.propertyIsEnumerable,B$=Ot(te,"DataView"),Ha=B$,q$=Ot(te,"Promise"),Za=q$,G$=Ot(te,"Set"),Qa=G$,Od="[object Map]",Y$="[object Object]",Nd="[object Promise]",Dd="[object Set]",Pd="[object WeakMap]",zd="[object DataView]",H$=Te(Ha),Z$=Te(hi),Q$=Te(Za),W$=Te(Qa),K$=Te(Ya),St=wi;(Ha&&St(new Ha(new ArrayBuffer(1)))!=zd||hi&&St(new hi)!=Od||Za&&St(Za.resolve())!=Nd||Qa&&St(new Qa)!=Dd||Ya&&St(new Ya)!=Pd)&&(St=function(e){var t=wi(e),r=t==Y$?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case H$:return zd;case Z$:return Od;case Q$:return Nd;case W$:return Dd;case K$:return Pd}return t});var nX=te.Uint8Array,J$="__lodash_hash_undefined__";function X$(e){return this.__data__.set(e,J$),this}var e_=X$;function t_(e){return this.__data__.has(e)}var r_=t_;function Wa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new pp;++t<r;)this.add(e[t])}Wa.prototype.add=Wa.prototype.push=e_;Wa.prototype.has=r_;var Ud=Lt?Lt.prototype:void 0,oX=Ud?Ud.valueOf:void 0,i_=Object.prototype,aX=i_.hasOwnProperty,n_=Object.prototype,lX=n_.hasOwnProperty,sX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),uX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),cX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function gp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function o_(e,t){let r=await gp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function a_(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return gp(i,t)}function l_(e){return e!==void 0}var s_=l_;function xi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Ii(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var fp=class yp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},u_=class mp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function c_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function d_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var p_=d_,Fa="ly.img.ai.temp";async function g_(e,t){return e.engine.asset.findAllSources().includes(Fa)||e.engine.asset.addLocalSource(Fa),e.engine.asset.apply(Fa,t)}function f_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function hp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function y_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function m_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function nl(e){return e instanceof Error&&e.name==="AbortError"}function h_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function b_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
209
+ `,"+")}`}}async function PI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function zI(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Hr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Hr(n,o)}else"customPrompt"in e?a=Hr(n,"custom"):a=Hr(n,"improved");else a=Hr(n,"generated");return UI(a,r.abortSignal)}async function*UI(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await hd(100)}return{kind:"text",text:e}}function Hr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function RI(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:FI(220,i),duration:i,thumbnailUrl:void 0}}function FI(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return VI(i,44100)}function VI(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function hd(e){return new Promise(t=>{setTimeout(t,e)})}var BI=OI,qI="USER_CANCEL";function GI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Lx([...e.provider.output.middleware??[],...r?.middlewares??[],Ox({enable:r?.debug}),BI({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:zx(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Na(n)?{status:"aborted",message:n.message}:n===qI?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var YI=GI;async function HI(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ja.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=$I(a),s=EI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=YI({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await jI(a,c);Ux(r.cesdk,"@imgly/plugin-ai-generation",TI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ex.get().register(u),u}var va=HI;function ZI(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _6(n,r,i);return r.engine.asset.addSource(a),a.id}var QI=ZI;function Wr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function WI(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>va(e,u,r,i)));o.push(...l),a=JI({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>va(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>va(e,d,r,i)));o.push(...u),a=KI({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=QI({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_x)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function KI({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Wr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Wr(e,"fromText.label"),icon:f.value!=="fromText"&&Tc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Wr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Tc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function JI({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Wr(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Tc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pa(r.id),!1).value)}var XI=WI,eA=typeof global=="object"&&global&&global.Object===Object&&global,bd=eA,tA=typeof self=="object"&&self&&self.Object===Object&&self,rA=bd||tA||Function("return this")(),ee=rA,iA=ee.Symbol,vt=iA,vd=Object.prototype,nA=vd.hasOwnProperty,oA=vd.toString,Zr=vt?vt.toStringTag:void 0;function aA(e){var t=nA.call(e,Zr),r=e[Zr];try{e[Zr]=void 0;var i=!0}catch{}var n=oA.call(e);return i&&(t?e[Zr]=r:delete e[Zr]),n}var lA=aA,sA=Object.prototype,uA=sA.toString;function cA(e){return uA.call(e)}var dA=cA,pA="[object Null]",gA="[object Undefined]",Oc=vt?vt.toStringTag:void 0;function fA(e){return e==null?e===void 0?gA:pA:Oc&&Oc in Object(e)?lA(e):dA(e)}var li=fA;function yA(e){return e!=null&&typeof e=="object"}var za=yA,_J=Array.isArray;function mA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wd=mA,hA="[object AsyncFunction]",bA="[object Function]",vA="[object GeneratorFunction]",wA="[object Proxy]";function kA(e){if(!wd(e))return!1;var t=li(e);return t==bA||t==vA||t==hA||t==wA}var xA=kA,IA=ee["__core-js_shared__"],wa=IA,Nc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AA(e){return!!Nc&&Nc in e}var CA=AA,MA=Function.prototype,jA=MA.toString;function SA(e){if(e!=null){try{return jA.call(e)}catch{}try{return e+""}catch{}}return""}var $e=SA,$A=/[\\^$.*+?()[\]{}|]/g,_A=/^\[object .+?Constructor\]$/,EA=Function.prototype,LA=Object.prototype,TA=EA.toString,OA=LA.hasOwnProperty,NA=RegExp("^"+TA.call(OA).replace($A,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function DA(e){if(!wd(e)||CA(e))return!1;var t=xA(e)?NA:_A;return t.test($e(e))}var PA=DA;function zA(e,t){return e?.[t]}var UA=zA;function RA(e,t){var r=UA(e,t);return PA(r)?r:void 0}var At=RA,FA=At(ee,"WeakMap"),$a=FA;function VA(e,t){return e===t||e!==e&&t!==t}var BA=VA,qA=9007199254740991;function GA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=qA}var YA=GA,EJ=Object.prototype,HA="[object Arguments]";function ZA(e){return za(e)&&li(e)==HA}var Dc=ZA,kd=Object.prototype,QA=kd.hasOwnProperty,WA=kd.propertyIsEnumerable,LJ=Dc(function(){return arguments}())?Dc:function(e){return za(e)&&QA.call(e,"callee")&&!WA.call(e,"callee")},xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pc=xd&&typeof module=="object"&&module&&!module.nodeType&&module,KA=Pc&&Pc.exports===xd,zc=KA?ee.Buffer:void 0,TJ=zc?zc.isBuffer:void 0,JA="[object Arguments]",XA="[object Array]",eC="[object Boolean]",tC="[object Date]",rC="[object Error]",iC="[object Function]",nC="[object Map]",oC="[object Number]",aC="[object Object]",lC="[object RegExp]",sC="[object Set]",uC="[object String]",cC="[object WeakMap]",dC="[object ArrayBuffer]",pC="[object DataView]",gC="[object Float32Array]",fC="[object Float64Array]",yC="[object Int8Array]",mC="[object Int16Array]",hC="[object Int32Array]",bC="[object Uint8Array]",vC="[object Uint8ClampedArray]",wC="[object Uint16Array]",kC="[object Uint32Array]",P={};P[gC]=P[fC]=P[yC]=P[mC]=P[hC]=P[bC]=P[vC]=P[wC]=P[kC]=!0;P[JA]=P[XA]=P[dC]=P[eC]=P[pC]=P[tC]=P[rC]=P[iC]=P[nC]=P[oC]=P[aC]=P[lC]=P[sC]=P[uC]=P[cC]=!1;function xC(e){return za(e)&&YA(e.length)&&!!P[li(e)]}var IC=xC;function AC(e){return function(t){return e(t)}}var CC=AC,Id=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jr=Id&&typeof module=="object"&&module&&!module.nodeType&&module,MC=Jr&&Jr.exports===Id,ka=MC&&bd.process,jC=function(){try{var e=Jr&&Jr.require&&Jr.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Uc=jC,Rc=Uc&&Uc.isTypedArray,OJ=Rc?CC(Rc):IC,SC=Object.prototype,NJ=SC.hasOwnProperty;function $C(e,t){return function(r){return e(t(r))}}var _C=$C,DJ=_C(Object.keys,Object),EC=Object.prototype,PJ=EC.hasOwnProperty,LC=At(Object,"create"),ti=LC;function TC(){this.__data__=ti?ti(null):{},this.size=0}var OC=TC;function NC(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var DC=NC,PC="__lodash_hash_undefined__",zC=Object.prototype,UC=zC.hasOwnProperty;function RC(e){var t=this.__data__;if(ti){var r=t[e];return r===PC?void 0:r}return UC.call(t,e)?t[e]:void 0}var FC=RC,VC=Object.prototype,BC=VC.hasOwnProperty;function qC(e){var t=this.__data__;return ti?t[e]!==void 0:BC.call(t,e)}var GC=qC,YC="__lodash_hash_undefined__";function HC(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?YC:t,this}var ZC=HC;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=OC;Ct.prototype.delete=DC;Ct.prototype.get=FC;Ct.prototype.has=GC;Ct.prototype.set=ZC;var Fc=Ct;function QC(){this.__data__=[],this.size=0}var WC=QC;function KC(e,t){for(var r=e.length;r--;)if(BA(e[r][0],t))return r;return-1}var Yn=KC,JC=Array.prototype,XC=JC.splice;function eM(e){var t=this.__data__,r=Yn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():XC.call(t,r,1),--this.size,!0}var tM=eM;function rM(e){var t=this.__data__,r=Yn(t,e);return r<0?void 0:t[r][1]}var iM=rM;function nM(e){return Yn(this.__data__,e)>-1}var oM=nM;function aM(e,t){var r=this.__data__,i=Yn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var lM=aM;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=WC;Mt.prototype.delete=tM;Mt.prototype.get=iM;Mt.prototype.has=oM;Mt.prototype.set=lM;var Hn=Mt,sM=At(ee,"Map"),ri=sM;function uM(){this.size=0,this.__data__={hash:new Fc,map:new(ri||Hn),string:new Fc}}var cM=uM;function dM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var pM=dM;function gM(e,t){var r=e.__data__;return pM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=gM;function fM(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var yM=fM;function mM(e){return Zn(this,e).get(e)}var hM=mM;function bM(e){return Zn(this,e).has(e)}var vM=bM;function wM(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var kM=wM;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=cM;jt.prototype.delete=yM;jt.prototype.get=hM;jt.prototype.has=vM;jt.prototype.set=kM;var Ad=jt;function xM(){this.__data__=new Hn,this.size=0}var IM=xM;function AM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CM=AM;function MM(e){return this.__data__.get(e)}var jM=MM;function SM(e){return this.__data__.has(e)}var $M=SM,_M=200;function EM(e,t){var r=this.__data__;if(r instanceof Hn){var i=r.__data__;if(!ri||i.length<_M-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ad(i)}return r.set(e,t),this.size=r.size,this}var LM=EM;function si(e){var t=this.__data__=new Hn(e);this.size=t.size}si.prototype.clear=IM;si.prototype.delete=CM;si.prototype.get=jM;si.prototype.has=$M;si.prototype.set=LM;var TM=Object.prototype,zJ=TM.propertyIsEnumerable,OM=At(ee,"DataView"),_a=OM,NM=At(ee,"Promise"),Ea=NM,DM=At(ee,"Set"),La=DM,Vc="[object Map]",PM="[object Object]",Bc="[object Promise]",qc="[object Set]",Gc="[object WeakMap]",Yc="[object DataView]",zM=$e(_a),UM=$e(ri),RM=$e(Ea),FM=$e(La),VM=$e($a),mt=li;(_a&&mt(new _a(new ArrayBuffer(1)))!=Yc||ri&&mt(new ri)!=Vc||Ea&&mt(Ea.resolve())!=Bc||La&&mt(new La)!=qc||$a&&mt(new $a)!=Gc)&&(mt=function(e){var t=li(e),r=t==PM?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case zM:return Yc;case UM:return Vc;case RM:return Bc;case FM:return qc;case VM:return Gc}return t});var UJ=ee.Uint8Array,BM="__lodash_hash_undefined__";function qM(e){return this.__data__.set(e,BM),this}var GM=qM;function YM(e){return this.__data__.has(e)}var HM=YM;function Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ad;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=GM;Ta.prototype.has=HM;var Hc=vt?vt.prototype:void 0,RJ=Hc?Hc.valueOf:void 0,ZM=Object.prototype,FJ=ZM.hasOwnProperty,QM=Object.prototype,VJ=QM.hasOwnProperty,BJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function WM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function KM(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return WM(i,t)}function JM(e){return e==null?[]:Array.isArray(e)?e:[e]}var Zc=JM,Vn="@imgly/plugin-ai-video-generation-web";var Qn="createVideo",Qc=`ly.img.${Qn}`,XM=`ly.img.plugin-ai-video-generation-web.quickAction.${Qn}`,Wc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Qn}`;function ej(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var tj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Wc}`]:"Create Video...",[`${Wc}.description`]:"Create a video from the image"}}),{id:Qc,type:"quick",kind:"image",label:`${XM}`,enable:qx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Qc}.button`,{label:ej(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await KM(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_url`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),rj=tj,fe="ly.img.ai.video-generation";function ij(e){return{async initialize({cesdk:t}){if(t==null)return;Rx(t,Vn,"0.2.8"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0),t.setTranslations({en:{[`panel.${fe}`]:"Video Generation",[`${fe}.dock.label`]:"AI Video"}}),nj(e);let r=ja.get().register({type:"plugin",sceneMode:"Video",id:Vn,pluginId:Vn,label:"Generate Video",meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}}),i=e.providers?.text2video??e.text2video,n=e.providers?.image2video??e.image2video,a=await Promise.all(Zc(i).map(c=>c({cesdk:t}))),o=await Promise.all(Zc(n).map(c=>c({cesdk:t})));if(!(a.length>0||o.length>0)){r();return}let s=await XI("video",{fromText:a,fromImage:o},{cesdk:t},e);ja.get().register(rj({cesdk:t})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,s.panel.builderRenderFunction),Vx({cesdk:t,panelId:fe})):r()}}}function nj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var oj=ij,aj=e=>({name:Vn,version:"0.2.8",...oj(e)}),Cd=aj;var lj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Et(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Et(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Et(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Et(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Et(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Et(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Et(n,t,a)}return e}var sj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},uj=typeof global=="object"&&global&&global.Object===Object&&global,ap=uj,cj=typeof self=="object"&&self&&self.Object===Object&&self,dj=ap||cj||Function("return this")(),te=dj,pj=te.Symbol,Lt=pj,lp=Object.prototype,gj=lp.hasOwnProperty,fj=lp.toString,ui=Lt?Lt.toStringTag:void 0;function yj(e){var t=gj.call(e,ui),r=e[ui];try{e[ui]=void 0;var i=!0}catch{}var n=fj.call(e);return i&&(t?e[ui]=r:delete e[ui]),n}var mj=yj,hj=Object.prototype,bj=hj.toString;function vj(e){return bj.call(e)}var wj=vj,kj="[object Null]",xj="[object Undefined]",Md=Lt?Lt.toStringTag:void 0;function Ij(e){return e==null?e===void 0?xj:kj:Md&&Md in Object(e)?mj(e):wj(e)}var wi=Ij;function Aj(e){return e!=null&&typeof e=="object"}var il=Aj,QJ=Array.isArray;function Cj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var sp=Cj,Mj="[object AsyncFunction]",jj="[object Function]",Sj="[object GeneratorFunction]",$j="[object Proxy]";function _j(e){if(!sp(e))return!1;var t=wi(e);return t==jj||t==Sj||t==Mj||t==$j}var Ej=_j,Lj=te["__core-js_shared__"],Ua=Lj,jd=function(){var e=/[^.]+$/.exec(Ua&&Ua.keys&&Ua.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tj(e){return!!jd&&jd in e}var Oj=Tj,Nj=Function.prototype,Dj=Nj.toString;function Pj(e){if(e!=null){try{return Dj.call(e)}catch{}try{return e+""}catch{}}return""}var Te=Pj,zj=/[\\^$.*+?()[\]{}|]/g,Uj=/^\[object .+?Constructor\]$/,Rj=Function.prototype,Fj=Object.prototype,Vj=Rj.toString,Bj=Fj.hasOwnProperty,qj=RegExp("^"+Vj.call(Bj).replace(zj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Gj(e){if(!sp(e)||Oj(e))return!1;var t=Ej(e)?qj:Uj;return t.test(Te(e))}var Yj=Gj;function Hj(e,t){return e?.[t]}var Zj=Hj;function Qj(e,t){var r=Zj(e,t);return Yj(r)?r:void 0}var Ot=Qj,Wj=Ot(te,"WeakMap"),Ya=Wj;function Kj(e,t){return e===t||e!==e&&t!==t}var Jj=Kj,Xj=9007199254740991;function eS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Xj}var tS=eS,WJ=Object.prototype,rS="[object Arguments]";function iS(e){return il(e)&&wi(e)==rS}var Sd=iS,up=Object.prototype,nS=up.hasOwnProperty,oS=up.propertyIsEnumerable,KJ=Sd(function(){return arguments}())?Sd:function(e){return il(e)&&nS.call(e,"callee")&&!oS.call(e,"callee")},cp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$d=cp&&typeof module=="object"&&module&&!module.nodeType&&module,aS=$d&&$d.exports===cp,_d=aS?te.Buffer:void 0,JJ=_d?_d.isBuffer:void 0,lS="[object Arguments]",sS="[object Array]",uS="[object Boolean]",cS="[object Date]",dS="[object Error]",pS="[object Function]",gS="[object Map]",fS="[object Number]",yS="[object Object]",mS="[object RegExp]",hS="[object Set]",bS="[object String]",vS="[object WeakMap]",wS="[object ArrayBuffer]",kS="[object DataView]",xS="[object Float32Array]",IS="[object Float64Array]",AS="[object Int8Array]",CS="[object Int16Array]",MS="[object Int32Array]",jS="[object Uint8Array]",SS="[object Uint8ClampedArray]",$S="[object Uint16Array]",_S="[object Uint32Array]",z={};z[xS]=z[IS]=z[AS]=z[CS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=!0;z[lS]=z[sS]=z[wS]=z[uS]=z[kS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=z[yS]=z[mS]=z[hS]=z[bS]=z[vS]=!1;function ES(e){return il(e)&&tS(e.length)&&!!z[wi(e)]}var LS=ES;function TS(e){return function(t){return e(t)}}var OS=TS,dp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fi=dp&&typeof module=="object"&&module&&!module.nodeType&&module,NS=fi&&fi.exports===dp,Ra=NS&&ap.process,DS=function(){try{var e=fi&&fi.require&&fi.require("util").types;return e||Ra&&Ra.binding&&Ra.binding("util")}catch{}}(),Ed=DS,Ld=Ed&&Ed.isTypedArray,XJ=Ld?OS(Ld):LS,PS=Object.prototype,eX=PS.hasOwnProperty;function zS(e,t){return function(r){return e(t(r))}}var US=zS,tX=US(Object.keys,Object),RS=Object.prototype,rX=RS.hasOwnProperty,FS=Ot(Object,"create"),mi=FS;function VS(){this.__data__=mi?mi(null):{},this.size=0}var BS=VS;function qS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var GS=qS,YS="__lodash_hash_undefined__",HS=Object.prototype,ZS=HS.hasOwnProperty;function QS(e){var t=this.__data__;if(mi){var r=t[e];return r===YS?void 0:r}return ZS.call(t,e)?t[e]:void 0}var WS=QS,KS=Object.prototype,JS=KS.hasOwnProperty;function XS(e){var t=this.__data__;return mi?t[e]!==void 0:JS.call(t,e)}var e$=XS,t$="__lodash_hash_undefined__";function r$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=mi&&t===void 0?t$:t,this}var i$=r$;function Nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Nt.prototype.clear=BS;Nt.prototype.delete=GS;Nt.prototype.get=WS;Nt.prototype.has=e$;Nt.prototype.set=i$;var Td=Nt;function n$(){this.__data__=[],this.size=0}var o$=n$;function a$(e,t){for(var r=e.length;r--;)if(Jj(e[r][0],t))return r;return-1}var Wn=a$,l$=Array.prototype,s$=l$.splice;function u$(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():s$.call(t,r,1),--this.size,!0}var c$=u$;function d$(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var p$=d$;function g$(e){return Wn(this.__data__,e)>-1}var f$=g$;function y$(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var m$=y$;function Dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Dt.prototype.clear=o$;Dt.prototype.delete=c$;Dt.prototype.get=p$;Dt.prototype.has=f$;Dt.prototype.set=m$;var Kn=Dt,h$=Ot(te,"Map"),hi=h$;function b$(){this.size=0,this.__data__={hash:new Td,map:new(hi||Kn),string:new Td}}var v$=b$;function w$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var k$=w$;function x$(e,t){var r=e.__data__;return k$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=x$;function I$(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var A$=I$;function C$(e){return Jn(this,e).get(e)}var M$=C$;function j$(e){return Jn(this,e).has(e)}var S$=j$;function $$(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _$=$$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=v$;Pt.prototype.delete=A$;Pt.prototype.get=M$;Pt.prototype.has=S$;Pt.prototype.set=_$;var pp=Pt;function E$(){this.__data__=new Kn,this.size=0}var L$=E$;function T$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var O$=T$;function N$(e){return this.__data__.get(e)}var D$=N$;function P$(e){return this.__data__.has(e)}var z$=P$,U$=200;function R$(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!hi||i.length<U$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new pp(i)}return r.set(e,t),this.size=r.size,this}var F$=R$;function ki(e){var t=this.__data__=new Kn(e);this.size=t.size}ki.prototype.clear=L$;ki.prototype.delete=O$;ki.prototype.get=D$;ki.prototype.has=z$;ki.prototype.set=F$;var V$=Object.prototype,iX=V$.propertyIsEnumerable,B$=Ot(te,"DataView"),Ha=B$,q$=Ot(te,"Promise"),Za=q$,G$=Ot(te,"Set"),Qa=G$,Od="[object Map]",Y$="[object Object]",Nd="[object Promise]",Dd="[object Set]",Pd="[object WeakMap]",zd="[object DataView]",H$=Te(Ha),Z$=Te(hi),Q$=Te(Za),W$=Te(Qa),K$=Te(Ya),St=wi;(Ha&&St(new Ha(new ArrayBuffer(1)))!=zd||hi&&St(new hi)!=Od||Za&&St(Za.resolve())!=Nd||Qa&&St(new Qa)!=Dd||Ya&&St(new Ya)!=Pd)&&(St=function(e){var t=wi(e),r=t==Y$?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case H$:return zd;case Z$:return Od;case Q$:return Nd;case W$:return Dd;case K$:return Pd}return t});var nX=te.Uint8Array,J$="__lodash_hash_undefined__";function X$(e){return this.__data__.set(e,J$),this}var e_=X$;function t_(e){return this.__data__.has(e)}var r_=t_;function Wa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new pp;++t<r;)this.add(e[t])}Wa.prototype.add=Wa.prototype.push=e_;Wa.prototype.has=r_;var Ud=Lt?Lt.prototype:void 0,oX=Ud?Ud.valueOf:void 0,i_=Object.prototype,aX=i_.hasOwnProperty,n_=Object.prototype,lX=n_.hasOwnProperty,sX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),uX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),cX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function gp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function o_(e,t){let r=await gp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function a_(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return gp(i,t)}function l_(e){return e!==void 0}var s_=l_;function xi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Ii(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var fp=class yp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new yp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},u_=class mp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new mp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function c_(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function d_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var p_=d_,Fa="ly.img.ai.temp";async function g_(e,t){return e.engine.asset.findAllSources().includes(Fa)||e.engine.asset.addLocalSource(Fa),e.engine.asset.apply(Fa,t)}function f_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function hp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function y_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function m_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function nl(e){return e instanceof Error&&e.name==="AbortError"}function h_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function b_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
210
210
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
211
211
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
212
212
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function v_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var Rd=v_;function w_(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),k_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:f_(e)})}function k_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Fd=w_,x_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ol=x_;function I_(e,t,r){switch(t){case"image":return A_(e,r[t]);case"video":return C_(e,r[t]);case"sticker":return M_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function A_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ol,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function C_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ol,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function M_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ol,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var j_=I_;async function S_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return $_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return __(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return E_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return L_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function $_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function __(e,t,r){let i=t.width,n=t.height,a=await y_(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function E_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function L_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var bp=S_;function T_(e){switch(e.userFlow){case"placeholder":return N_(e);case"generation-only":return O_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function O_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=hp(),c=await bp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function N_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(me(t,r))return{status:"aborted"};let s=hp(),c=j_(s,a,o);if(i=await g_(t,c),me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await bp(s,a,o,l.output);if(me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(nl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var D_=T_;function al(e){return`${e}.generating`}function P_(e){return`${e}.abort`}function z_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(P_(d),()=>{}),m=c.global(al(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await D_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Fd(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;U_(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(nl(y))return;Fd(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function U_(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var vp=z_;async function R_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(al(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return vp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var F_=R_;function wp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=wp(e,t.$ref),n={...pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=pi(e,t[n],r));return i}return t}function V_(e){return pi(e,{...e})}function B_(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function q_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return G_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function G_(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=Y_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Y_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var kp=q_;function Le(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function xp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Ip(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?H_(e,c,r,i,n,a,o,s):Ap(e,c,r,i,n,a,o,s);case"boolean":return Cp(e,c,r,i,n,a,o,s);case"number":case"integer":return Mp(e,c,r,i,n,a,o,s);case"object":return Ka(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Z_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ka(e,t,r,i,n,a,o,s){let c=kp(t.schema??{},i).reduce((l,u)=>{let d=Ip(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ap(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Le(t,r,o),m=xi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=Ii(d,f,m,t.schema.default,""),b=l(p,h),w=Q_(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function H_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Le(t,r,o),{labels:m,icons:f}=xp(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Le(t,r,o,x),icon:f[x]})),b=xi(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=Ii(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function Cp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Le(t,r,o),m=xi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Ii(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function Mp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Le(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=xi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=Ii(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function Z_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Le(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=xp(t.schema),I=xi(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:Ap,boolean:Cp,integer:Mp,object:Ka},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Le(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Ka(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=Ii(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function Q_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var W_=Ip,K_={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Vd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function J_(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||Vd(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||Vd(g);n[a(l.id,g)]=m}})}});let c={...K_,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function X_({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=V_(r.document),c=wp(s,r.inputReference);if(!B_(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=kp(l,r);return J_(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=W_(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});vp(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var eE=X_;async function tE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return F_(e,t);case"schema":return eE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var rE=tE;function iE(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new lj(o,r)),o}return i}var nE=iE;function oE(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var aE=oE,Va="@imgly/plugin-ai-generation",lE=`
@@ -271,7 +271,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
271
271
  </symbol>
272
272
  </svg>
273
273
  `,sE=lE;function uE(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await jp(2e3),await cE(t,e,r)):i(t,r)}async function cE(e,t,r){switch(t.kind){case"image":return dE(e,t,r);case"video":return pE(e,t,r);case"text":return gE(e,t,r);case"audio":return yE(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function dE(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await a_(s,r),l=await o_(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function pE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function gE(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=ci(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ci(n,o)}else"customPrompt"in e?a=ci(n,"custom"):a=ci(n,"improved");else a=ci(n,"generated");return fE(a,r.abortSignal)}async function*fE(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await jp(100)}return{kind:"text",text:e}}function ci(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function yE(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:mE(220,i),duration:i,thumbnailUrl:void 0}}function mE(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return hE(i,44100)}function hE(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jp(e){return new Promise(t=>{setTimeout(t,e)})}var bE=uE,vE="USER_CANCEL";function wE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=c_([...e.provider.output.middleware??[],...r?.middlewares??[],p_({enable:r?.debug}),bE({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:m_(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return nl(n)?{status:"aborted",message:n.message}:n===vE?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var kE=wE;async function xE(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=fp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=nE(a),s=aE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=kE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await rE(a,c);h_(r.cesdk,"@imgly/plugin-ai-generation",sE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return u_.get().register(u),u}var Ba=xE;function IE(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new sj(n,r,i);return r.engine.asset.addSource(a),a.id}var AE=IE;function gi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function CE(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Ba(e,u,r,i)));o.push(...l),a=jE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ba(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ba(e,d,r,i)));o.push(...u),a=ME({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=AE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(s_)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function ME({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:gi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:gi(e,"fromText.label"),icon:f.value!=="fromText"&&Bd(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:gi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Bd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function jE({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Bd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(al(r.id),!1).value)}var qd=CE,SE=typeof global=="object"&&global&&global.Object===Object&&global,Sp=SE,$E=typeof self=="object"&&self&&self.Object===Object&&self,_E=Sp||$E||Function("return this")(),re=_E,EE=re.Symbol,Tt=EE,$p=Object.prototype,LE=$p.hasOwnProperty,TE=$p.toString,di=Tt?Tt.toStringTag:void 0;function OE(e){var t=LE.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=TE.call(e);return i&&(t?e[di]=r:delete e[di]),n}var NE=OE,DE=Object.prototype,PE=DE.toString;function zE(e){return PE.call(e)}var UE=zE,RE="[object Null]",FE="[object Undefined]",Gd=Tt?Tt.toStringTag:void 0;function VE(e){return e==null?e===void 0?FE:RE:Gd&&Gd in Object(e)?NE(e):UE(e)}var Ai=VE;function BE(e){return e!=null&&typeof e=="object"}var ll=BE,dX=Array.isArray;function qE(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _p=qE,GE="[object AsyncFunction]",YE="[object Function]",HE="[object GeneratorFunction]",ZE="[object Proxy]";function QE(e){if(!_p(e))return!1;var t=Ai(e);return t==YE||t==HE||t==GE||t==ZE}var WE=QE,KE=re["__core-js_shared__"],qa=KE,Yd=function(){var e=/[^.]+$/.exec(qa&&qa.keys&&qa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JE(e){return!!Yd&&Yd in e}var XE=JE,eL=Function.prototype,tL=eL.toString;function rL(e){if(e!=null){try{return tL.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=rL,iL=/[\\^$.*+?()[\]{}|]/g,nL=/^\[object .+?Constructor\]$/,oL=Function.prototype,aL=Object.prototype,lL=oL.toString,sL=aL.hasOwnProperty,uL=RegExp("^"+lL.call(sL).replace(iL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cL(e){if(!_p(e)||XE(e))return!1;var t=WE(e)?uL:nL;return t.test(Oe(e))}var dL=cL;function pL(e,t){return e?.[t]}var gL=pL;function fL(e,t){var r=gL(e,t);return dL(r)?r:void 0}var zt=fL,yL=zt(re,"WeakMap"),Ja=yL;function mL(e,t){return e===t||e!==e&&t!==t}var hL=mL,bL=9007199254740991;function vL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bL}var wL=vL,pX=Object.prototype,kL="[object Arguments]";function xL(e){return ll(e)&&Ai(e)==kL}var Hd=xL,Ep=Object.prototype,IL=Ep.hasOwnProperty,AL=Ep.propertyIsEnumerable,gX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&IL.call(e,"callee")&&!AL.call(e,"callee")},Lp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Lp&&typeof module=="object"&&module&&!module.nodeType&&module,CL=Zd&&Zd.exports===Lp,Qd=CL?re.Buffer:void 0,fX=Qd?Qd.isBuffer:void 0,ML="[object Arguments]",jL="[object Array]",SL="[object Boolean]",$L="[object Date]",_L="[object Error]",EL="[object Function]",LL="[object Map]",TL="[object Number]",OL="[object Object]",NL="[object RegExp]",DL="[object Set]",PL="[object String]",zL="[object WeakMap]",UL="[object ArrayBuffer]",RL="[object DataView]",FL="[object Float32Array]",VL="[object Float64Array]",BL="[object Int8Array]",qL="[object Int16Array]",GL="[object Int32Array]",YL="[object Uint8Array]",HL="[object Uint8ClampedArray]",ZL="[object Uint16Array]",QL="[object Uint32Array]",U={};U[FL]=U[VL]=U[BL]=U[qL]=U[GL]=U[YL]=U[HL]=U[ZL]=U[QL]=!0;U[ML]=U[jL]=U[UL]=U[SL]=U[RL]=U[$L]=U[_L]=U[EL]=U[LL]=U[TL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=!1;function WL(e){return ll(e)&&wL(e.length)&&!!U[Ai(e)]}var KL=WL;function JL(e){return function(t){return e(t)}}var XL=JL,Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yi=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,eT=yi&&yi.exports===Tp,Ga=eT&&Sp.process,tT=function(){try{var e=yi&&yi.require&&yi.require("util").types;return e||Ga&&Ga.binding&&Ga.binding("util")}catch{}}(),Wd=tT,Kd=Wd&&Wd.isTypedArray,yX=Kd?XL(Kd):KL,rT=Object.prototype,mX=rT.hasOwnProperty;function iT(e,t){return function(r){return e(t(r))}}var nT=iT,hX=nT(Object.keys,Object),oT=Object.prototype,bX=oT.hasOwnProperty,aT=zt(Object,"create"),bi=aT;function lT(){this.__data__=bi?bi(null):{},this.size=0}var sT=lT;function uT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cT=uT,dT="__lodash_hash_undefined__",pT=Object.prototype,gT=pT.hasOwnProperty;function fT(e){var t=this.__data__;if(bi){var r=t[e];return r===dT?void 0:r}return gT.call(t,e)?t[e]:void 0}var yT=fT,mT=Object.prototype,hT=mT.hasOwnProperty;function bT(e){var t=this.__data__;return bi?t[e]!==void 0:hT.call(t,e)}var vT=bT,wT="__lodash_hash_undefined__";function kT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=bi&&t===void 0?wT:t,this}var xT=kT;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=sT;Ut.prototype.delete=cT;Ut.prototype.get=yT;Ut.prototype.has=vT;Ut.prototype.set=xT;var Jd=Ut;function IT(){this.__data__=[],this.size=0}var AT=IT;function CT(e,t){for(var r=e.length;r--;)if(hL(e[r][0],t))return r;return-1}var Xn=CT,MT=Array.prototype,jT=MT.splice;function ST(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():jT.call(t,r,1),--this.size,!0}var $T=ST;function _T(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var ET=_T;function LT(e){return Xn(this.__data__,e)>-1}var TT=LT;function OT(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var NT=OT;function Rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Rt.prototype.clear=AT;Rt.prototype.delete=$T;Rt.prototype.get=ET;Rt.prototype.has=TT;Rt.prototype.set=NT;var eo=Rt,DT=zt(re,"Map"),vi=DT;function PT(){this.size=0,this.__data__={hash:new Jd,map:new(vi||eo),string:new Jd}}var zT=PT;function UT(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RT=UT;function FT(e,t){var r=e.__data__;return RT(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=FT;function VT(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var BT=VT;function qT(e){return to(this,e).get(e)}var GT=qT;function YT(e){return to(this,e).has(e)}var HT=YT;function ZT(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QT=ZT;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=zT;Ft.prototype.delete=BT;Ft.prototype.get=GT;Ft.prototype.has=HT;Ft.prototype.set=QT;var Op=Ft;function WT(){this.__data__=new eo,this.size=0}var KT=WT;function JT(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XT=JT;function eO(e){return this.__data__.get(e)}var tO=eO;function rO(e){return this.__data__.has(e)}var iO=rO,nO=200;function oO(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<nO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Op(i)}return r.set(e,t),this.size=r.size,this}var aO=oO;function Ci(e){var t=this.__data__=new eo(e);this.size=t.size}Ci.prototype.clear=KT;Ci.prototype.delete=XT;Ci.prototype.get=tO;Ci.prototype.has=iO;Ci.prototype.set=aO;var lO=Object.prototype,vX=lO.propertyIsEnumerable,sO=zt(re,"DataView"),Xa=sO,uO=zt(re,"Promise"),el=uO,cO=zt(re,"Set"),tl=cO,Xd="[object Map]",dO="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",pO=Oe(Xa),gO=Oe(vi),fO=Oe(el),yO=Oe(tl),mO=Oe(Ja),$t=Ai;(Xa&&$t(new Xa(new ArrayBuffer(1)))!=ip||vi&&$t(new vi)!=Xd||el&&$t(el.resolve())!=ep||tl&&$t(new tl)!=tp||Ja&&$t(new Ja)!=rp)&&($t=function(e){var t=Ai(e),r=t==dO?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case pO:return ip;case gO:return Xd;case fO:return ep;case yO:return tp;case mO:return rp}return t});var wX=re.Uint8Array,hO="__lodash_hash_undefined__";function bO(e){return this.__data__.set(e,hO),this}var vO=bO;function wO(e){return this.__data__.has(e)}var kO=wO;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Op;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=vO;rl.prototype.has=kO;var np=Tt?Tt.prototype:void 0,kX=np?np.valueOf:void 0,xO=Object.prototype,xX=xO.hasOwnProperty,IO=Object.prototype,IX=IO.hasOwnProperty,AX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),CX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),MX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function AO(e){return e==null?[]:Array.isArray(e)?e:[e]}var op=AO,_t="@imgly/plugin-ai-audio-generation-web",_e="ly.img.ai.audio-generation.speech",Ee="ly.img.ai.audio-generation.sound";function CO(e){return{async initialize({cesdk:t}){if(t==null)return;b_(t,_t,"0.2.7"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0),t.setTranslations({en:{[`panel.${_e}`]:"AI Voice",[`panel.${Ee}`]:"Sound Generation"}}),MO(e);let r=fp.get(),i=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/sound`,pluginId:_t,label:"Generate Sound",meta:{panelId:Ee},execute:()=>{t.ui.isPanelOpen(Ee)?t.ui.closePanel(Ee):t.ui.openPanel(Ee)}}),n=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/speech`,pluginId:_t,label:"AI Voice",meta:{panelId:_e},execute:()=>{t.ui.isPanelOpen(_e)?t.ui.closePanel(_e):t.ui.openPanel(_e)}}),a=e.providers?.text2speech??e.text2speech,o=e.providers?.text2sound??e.text2sound,s=await Promise.all(op(a).map(g=>g({cesdk:t}))),c=await Promise.all(op(o).map(g=>g({cesdk:t}))),l=s.length>0,u=c.length>0;if(!l&&!u){i(),n();return}u||i(),l||n();let d=await qd("audio",s,{cesdk:t},e),p=await qd("audio",c,{cesdk:t},e);p.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ee,p.panel.builderRenderFunction),Rd({cesdk:t,panelId:Ee})):i(),d.panel.builderRenderFunction!=null?(t.ui.registerPanel(_e,d.panel.builderRenderFunction),Rd({cesdk:t,panelId:_e})):n()}}}function MO(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var jO=CO,SO=e=>({name:_t,version:"0.2.7",...jO(e)}),Np=SO;var $O="@imgly/plugin-ai-text-generation",_O=`
274
+ `,"+")}`}}async function pE(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function gE(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=ci(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ci(n,o)}else"customPrompt"in e?a=ci(n,"custom"):a=ci(n,"improved");else a=ci(n,"generated");return fE(a,r.abortSignal)}async function*fE(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await jp(100)}return{kind:"text",text:e}}function ci(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function yE(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:mE(220,i),duration:i,thumbnailUrl:void 0}}function mE(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return hE(i,44100)}function hE(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let b=0;b<h.length;b++)u.setUint8(f+b,h.charCodeAt(b))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),b=Math.round(h*32767);u.setInt16(p,b,!0),p+=2}let g=new Uint8Array(l),m="";for(let f=0;f<g.length;f++)m+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(m)}`}async function jp(e){return new Promise(t=>{setTimeout(t,e)})}var bE=uE,vE="USER_CANCEL";function wE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=c_([...e.provider.output.middleware??[],...r?.middlewares??[],p_({enable:r?.debug}),bE({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:m_(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return nl(n)?{status:"aborted",message:n.message}:n===vE?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var kE=wE;async function xE(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=fp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=nE(a),s=aE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=kE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await rE(a,c);h_(r.cesdk,"@imgly/plugin-ai-generation",sE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return u_.get().register(u),u}var Ba=xE;function IE(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new sj(n,r,i);return r.engine.asset.addSource(a),a.id}var AE=IE;function gi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function CE(e,t,r,i){let{cesdk:n}=r;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(u=>Ba(e,u,r,i)));o.push(...l),a=jE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ba(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ba(e,d,r,i)));o.push(...u),a=ME({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}let s=AE({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(s_)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function ME({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),w=i.map(({provider:A,panel:v})=>({id:A.id,label:A.name??A.id,builderRenderFunction:v?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]),I=o.experimental.global(`${t}.selectedProvider.fromImage`,w[0]),y=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,x=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(x,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let C=d&&g&&r.length>0&&i.length>0,S=a&&C,M=h.length>1&&j;if((S||M)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(S&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:gi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:gi(e,"fromText.label"),icon:f.value!=="fromText"&&Bd(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:gi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Bd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),M){let A=f.value==="fromText"?b:f.value==="fromImage"?w:[...b,...w];y!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:A,...y})}}}),h.length>1)y?.value.builderRenderFunction?.(o);else{let A=h[0];A&&A.panel?.builderRenderFunction?.(o)}}}function jE({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]);r.length>1&&c&&u!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:gi(e,"providerSelect.label"),values:l,...u})}}),u.value.builderRenderFunction?.(n)}}function Bd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(al(r.id),!1).value)}var qd=CE,SE=typeof global=="object"&&global&&global.Object===Object&&global,Sp=SE,$E=typeof self=="object"&&self&&self.Object===Object&&self,_E=Sp||$E||Function("return this")(),re=_E,EE=re.Symbol,Tt=EE,$p=Object.prototype,LE=$p.hasOwnProperty,TE=$p.toString,di=Tt?Tt.toStringTag:void 0;function OE(e){var t=LE.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=TE.call(e);return i&&(t?e[di]=r:delete e[di]),n}var NE=OE,DE=Object.prototype,PE=DE.toString;function zE(e){return PE.call(e)}var UE=zE,RE="[object Null]",FE="[object Undefined]",Gd=Tt?Tt.toStringTag:void 0;function VE(e){return e==null?e===void 0?FE:RE:Gd&&Gd in Object(e)?NE(e):UE(e)}var Ai=VE;function BE(e){return e!=null&&typeof e=="object"}var ll=BE,dX=Array.isArray;function qE(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _p=qE,GE="[object AsyncFunction]",YE="[object Function]",HE="[object GeneratorFunction]",ZE="[object Proxy]";function QE(e){if(!_p(e))return!1;var t=Ai(e);return t==YE||t==HE||t==GE||t==ZE}var WE=QE,KE=re["__core-js_shared__"],qa=KE,Yd=function(){var e=/[^.]+$/.exec(qa&&qa.keys&&qa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function JE(e){return!!Yd&&Yd in e}var XE=JE,eL=Function.prototype,tL=eL.toString;function rL(e){if(e!=null){try{return tL.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=rL,iL=/[\\^$.*+?()[\]{}|]/g,nL=/^\[object .+?Constructor\]$/,oL=Function.prototype,aL=Object.prototype,lL=oL.toString,sL=aL.hasOwnProperty,uL=RegExp("^"+lL.call(sL).replace(iL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function cL(e){if(!_p(e)||XE(e))return!1;var t=WE(e)?uL:nL;return t.test(Oe(e))}var dL=cL;function pL(e,t){return e?.[t]}var gL=pL;function fL(e,t){var r=gL(e,t);return dL(r)?r:void 0}var zt=fL,yL=zt(re,"WeakMap"),Ja=yL;function mL(e,t){return e===t||e!==e&&t!==t}var hL=mL,bL=9007199254740991;function vL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bL}var wL=vL,pX=Object.prototype,kL="[object Arguments]";function xL(e){return ll(e)&&Ai(e)==kL}var Hd=xL,Ep=Object.prototype,IL=Ep.hasOwnProperty,AL=Ep.propertyIsEnumerable,gX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&IL.call(e,"callee")&&!AL.call(e,"callee")},Lp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Lp&&typeof module=="object"&&module&&!module.nodeType&&module,CL=Zd&&Zd.exports===Lp,Qd=CL?re.Buffer:void 0,fX=Qd?Qd.isBuffer:void 0,ML="[object Arguments]",jL="[object Array]",SL="[object Boolean]",$L="[object Date]",_L="[object Error]",EL="[object Function]",LL="[object Map]",TL="[object Number]",OL="[object Object]",NL="[object RegExp]",DL="[object Set]",PL="[object String]",zL="[object WeakMap]",UL="[object ArrayBuffer]",RL="[object DataView]",FL="[object Float32Array]",VL="[object Float64Array]",BL="[object Int8Array]",qL="[object Int16Array]",GL="[object Int32Array]",YL="[object Uint8Array]",HL="[object Uint8ClampedArray]",ZL="[object Uint16Array]",QL="[object Uint32Array]",U={};U[FL]=U[VL]=U[BL]=U[qL]=U[GL]=U[YL]=U[HL]=U[ZL]=U[QL]=!0;U[ML]=U[jL]=U[UL]=U[SL]=U[RL]=U[$L]=U[_L]=U[EL]=U[LL]=U[TL]=U[OL]=U[NL]=U[DL]=U[PL]=U[zL]=!1;function WL(e){return ll(e)&&wL(e.length)&&!!U[Ai(e)]}var KL=WL;function JL(e){return function(t){return e(t)}}var XL=JL,Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yi=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,eT=yi&&yi.exports===Tp,Ga=eT&&Sp.process,tT=function(){try{var e=yi&&yi.require&&yi.require("util").types;return e||Ga&&Ga.binding&&Ga.binding("util")}catch{}}(),Wd=tT,Kd=Wd&&Wd.isTypedArray,yX=Kd?XL(Kd):KL,rT=Object.prototype,mX=rT.hasOwnProperty;function iT(e,t){return function(r){return e(t(r))}}var nT=iT,hX=nT(Object.keys,Object),oT=Object.prototype,bX=oT.hasOwnProperty,aT=zt(Object,"create"),bi=aT;function lT(){this.__data__=bi?bi(null):{},this.size=0}var sT=lT;function uT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cT=uT,dT="__lodash_hash_undefined__",pT=Object.prototype,gT=pT.hasOwnProperty;function fT(e){var t=this.__data__;if(bi){var r=t[e];return r===dT?void 0:r}return gT.call(t,e)?t[e]:void 0}var yT=fT,mT=Object.prototype,hT=mT.hasOwnProperty;function bT(e){var t=this.__data__;return bi?t[e]!==void 0:hT.call(t,e)}var vT=bT,wT="__lodash_hash_undefined__";function kT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=bi&&t===void 0?wT:t,this}var xT=kT;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=sT;Ut.prototype.delete=cT;Ut.prototype.get=yT;Ut.prototype.has=vT;Ut.prototype.set=xT;var Jd=Ut;function IT(){this.__data__=[],this.size=0}var AT=IT;function CT(e,t){for(var r=e.length;r--;)if(hL(e[r][0],t))return r;return-1}var Xn=CT,MT=Array.prototype,jT=MT.splice;function ST(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():jT.call(t,r,1),--this.size,!0}var $T=ST;function _T(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var ET=_T;function LT(e){return Xn(this.__data__,e)>-1}var TT=LT;function OT(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var NT=OT;function Rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Rt.prototype.clear=AT;Rt.prototype.delete=$T;Rt.prototype.get=ET;Rt.prototype.has=TT;Rt.prototype.set=NT;var eo=Rt,DT=zt(re,"Map"),vi=DT;function PT(){this.size=0,this.__data__={hash:new Jd,map:new(vi||eo),string:new Jd}}var zT=PT;function UT(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var RT=UT;function FT(e,t){var r=e.__data__;return RT(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=FT;function VT(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var BT=VT;function qT(e){return to(this,e).get(e)}var GT=qT;function YT(e){return to(this,e).has(e)}var HT=YT;function ZT(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var QT=ZT;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=zT;Ft.prototype.delete=BT;Ft.prototype.get=GT;Ft.prototype.has=HT;Ft.prototype.set=QT;var Op=Ft;function WT(){this.__data__=new eo,this.size=0}var KT=WT;function JT(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var XT=JT;function eO(e){return this.__data__.get(e)}var tO=eO;function rO(e){return this.__data__.has(e)}var iO=rO,nO=200;function oO(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<nO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Op(i)}return r.set(e,t),this.size=r.size,this}var aO=oO;function Ci(e){var t=this.__data__=new eo(e);this.size=t.size}Ci.prototype.clear=KT;Ci.prototype.delete=XT;Ci.prototype.get=tO;Ci.prototype.has=iO;Ci.prototype.set=aO;var lO=Object.prototype,vX=lO.propertyIsEnumerable,sO=zt(re,"DataView"),Xa=sO,uO=zt(re,"Promise"),el=uO,cO=zt(re,"Set"),tl=cO,Xd="[object Map]",dO="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",pO=Oe(Xa),gO=Oe(vi),fO=Oe(el),yO=Oe(tl),mO=Oe(Ja),$t=Ai;(Xa&&$t(new Xa(new ArrayBuffer(1)))!=ip||vi&&$t(new vi)!=Xd||el&&$t(el.resolve())!=ep||tl&&$t(new tl)!=tp||Ja&&$t(new Ja)!=rp)&&($t=function(e){var t=Ai(e),r=t==dO?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case pO:return ip;case gO:return Xd;case fO:return ep;case yO:return tp;case mO:return rp}return t});var wX=re.Uint8Array,hO="__lodash_hash_undefined__";function bO(e){return this.__data__.set(e,hO),this}var vO=bO;function wO(e){return this.__data__.has(e)}var kO=wO;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Op;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=vO;rl.prototype.has=kO;var np=Tt?Tt.prototype:void 0,kX=np?np.valueOf:void 0,xO=Object.prototype,xX=xO.hasOwnProperty,IO=Object.prototype,IX=IO.hasOwnProperty,AX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),CX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),MX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function AO(e){return e==null?[]:Array.isArray(e)?e:[e]}var op=AO,_t="@imgly/plugin-ai-audio-generation-web",_e="ly.img.ai.audio-generation.speech",Ee="ly.img.ai.audio-generation.sound";function CO(e){return{async initialize({cesdk:t}){if(t==null)return;b_(t,_t,"0.2.8"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0),t.setTranslations({en:{[`panel.${_e}`]:"AI Voice",[`panel.${Ee}`]:"Sound Generation"}}),MO(e);let r=fp.get(),i=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/sound`,pluginId:_t,label:"Generate Sound",meta:{panelId:Ee},execute:()=>{t.ui.isPanelOpen(Ee)?t.ui.closePanel(Ee):t.ui.openPanel(Ee)}}),n=r.register({type:"plugin",sceneMode:"Video",id:`${_t}/speech`,pluginId:_t,label:"AI Voice",meta:{panelId:_e},execute:()=>{t.ui.isPanelOpen(_e)?t.ui.closePanel(_e):t.ui.openPanel(_e)}}),a=e.providers?.text2speech??e.text2speech,o=e.providers?.text2sound??e.text2sound,s=await Promise.all(op(a).map(g=>g({cesdk:t}))),c=await Promise.all(op(o).map(g=>g({cesdk:t}))),l=s.length>0,u=c.length>0;if(!l&&!u){i(),n();return}u||i(),l||n();let d=await qd("audio",s,{cesdk:t},e),p=await qd("audio",c,{cesdk:t},e);p.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ee,p.panel.builderRenderFunction),Rd({cesdk:t,panelId:Ee})):i(),d.panel.builderRenderFunction!=null?(t.ui.registerPanel(_e,d.panel.builderRenderFunction),Rd({cesdk:t,panelId:_e})):n()}}}function MO(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var jO=CO,SO=e=>({name:_t,version:"0.2.8",...jO(e)}),Np=SO;var $O="@imgly/plugin-ai-text-generation",_O=`
275
275
  <svg>
276
276
  <symbol
277
277
  fill="none"
@@ -583,7 +583,7 @@ ${t}
583
583
  </change_text_to>
584
584
 
585
585
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
586
- `}var lB=aB,ho="changeTextTo",he=`ly.img.${ho}`,wg=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,kg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function yl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ho}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var sB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${kg}`]:"Change Text to...",[`${kg}.prompt`]:"Change Text to...",[`${wg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:he,type:"quick",kind:"text",scopes:["text/edit"],label:`${wg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${he}.prompt`,"");t.TextArea(`${he}.prompt`,{inputLabel:yl(l,"prompt"),placeholder:yl(l,"prompt.placeholder")[1],...u}),t.Separator(`${he}.separator`),r.builder.ButtonRow(`${he}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${he}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${he}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:lB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${he}.button`,{label:yl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),uB=sB,r1="@imgly/plugin-ai-text-generation-web",cB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function dB(e){return{async initialize({cesdk:t}){if(t==null)return;VP(t,r1,"0.2.7"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet($O,EO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),pB(e);let r=$l.get();r.register(CV({cesdk:t})),r.register(LV({cesdk:t})),r.register(UV({cesdk:t})),r.register(YV({cesdk:t})),r.register(JV({cesdk:t})),r.register(oB({cesdk:t})),r.register(uB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(bV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await Wz("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await wU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:cB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:ao}))}}}function pB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var gB=dB,fB=e=>({name:r1,version:"0.2.7",...gB(e)}),i1=fB;var yB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ir(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ir(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ir(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ir(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ir(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ir(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ir(n,t,a)}return e}var mB=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},hB=typeof global=="object"&&global&&global.Object===Object&&global,N1=hB,bB=typeof self=="object"&&self&&self.Object===Object&&self,vB=N1||bB||Function("return this")(),oe=vB,wB=oe.Symbol,nr=wB,D1=Object.prototype,kB=D1.hasOwnProperty,xB=D1.toString,Gi=nr?nr.toStringTag:void 0;function IB(e){var t=kB.call(e,Gi),r=e[Gi];try{e[Gi]=void 0;var i=!0}catch{}var n=xB.call(e);return i&&(t?e[Gi]=r:delete e[Gi]),n}var AB=IB,CB=Object.prototype,MB=CB.toString;function jB(e){return MB.call(e)}var SB=jB,$B="[object Null]",_B="[object Undefined]",n1=nr?nr.toStringTag:void 0;function EB(e){return e==null?e===void 0?_B:$B:n1&&n1 in Object(e)?AB(e):SB(e)}var rn=EB;function LB(e){return e!=null&&typeof e=="object"}var Jl=LB,pee=Array.isArray;function TB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var P1=TB,OB="[object AsyncFunction]",NB="[object Function]",DB="[object GeneratorFunction]",PB="[object Proxy]";function zB(e){if(!P1(e))return!1;var t=rn(e);return t==NB||t==DB||t==OB||t==PB}var UB=zB,RB=oe["__core-js_shared__"],Ol=RB,o1=function(){var e=/[^.]+$/.exec(Ol&&Ol.keys&&Ol.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function FB(e){return!!o1&&o1 in e}var VB=FB,BB=Function.prototype,qB=BB.toString;function GB(e){if(e!=null){try{return qB.call(e)}catch{}try{return e+""}catch{}}return""}var Fe=GB,YB=/[\\^$.*+?()[\]{}|]/g,HB=/^\[object .+?Constructor\]$/,ZB=Function.prototype,QB=Object.prototype,WB=ZB.toString,KB=QB.hasOwnProperty,JB=RegExp("^"+WB.call(KB).replace(YB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function XB(e){if(!P1(e)||VB(e))return!1;var t=UB(e)?JB:HB;return t.test(Fe(e))}var eq=XB;function tq(e,t){return e?.[t]}var rq=tq;function iq(e,t){var r=rq(e,t);return eq(r)?r:void 0}var ar=iq,nq=ar(oe,"WeakMap"),Fl=nq;function oq(e,t){return e===t||e!==e&&t!==t}var aq=oq,lq=9007199254740991;function sq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=lq}var uq=sq,gee=Object.prototype,cq="[object Arguments]";function dq(e){return Jl(e)&&rn(e)==cq}var a1=dq,z1=Object.prototype,pq=z1.hasOwnProperty,gq=z1.propertyIsEnumerable,fee=a1(function(){return arguments}())?a1:function(e){return Jl(e)&&pq.call(e,"callee")&&!gq.call(e,"callee")},U1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,l1=U1&&typeof module=="object"&&module&&!module.nodeType&&module,fq=l1&&l1.exports===U1,s1=fq?oe.Buffer:void 0,yee=s1?s1.isBuffer:void 0,yq="[object Arguments]",mq="[object Array]",hq="[object Boolean]",bq="[object Date]",vq="[object Error]",wq="[object Function]",kq="[object Map]",xq="[object Number]",Iq="[object Object]",Aq="[object RegExp]",Cq="[object Set]",Mq="[object String]",jq="[object WeakMap]",Sq="[object ArrayBuffer]",$q="[object DataView]",_q="[object Float32Array]",Eq="[object Float64Array]",Lq="[object Int8Array]",Tq="[object Int16Array]",Oq="[object Int32Array]",Nq="[object Uint8Array]",Dq="[object Uint8ClampedArray]",Pq="[object Uint16Array]",zq="[object Uint32Array]",V={};V[_q]=V[Eq]=V[Lq]=V[Tq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=!0;V[yq]=V[mq]=V[Sq]=V[hq]=V[$q]=V[bq]=V[vq]=V[wq]=V[kq]=V[xq]=V[Iq]=V[Aq]=V[Cq]=V[Mq]=V[jq]=!1;function Uq(e){return Jl(e)&&uq(e.length)&&!!V[rn(e)]}var Rq=Uq;function Fq(e){return function(t){return e(t)}}var Vq=Fq,R1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wi=R1&&typeof module=="object"&&module&&!module.nodeType&&module,Bq=Wi&&Wi.exports===R1,Nl=Bq&&N1.process,qq=function(){try{var e=Wi&&Wi.require&&Wi.require("util").types;return e||Nl&&Nl.binding&&Nl.binding("util")}catch{}}(),u1=qq,c1=u1&&u1.isTypedArray,mee=c1?Vq(c1):Rq,Gq=Object.prototype,hee=Gq.hasOwnProperty;function Yq(e,t){return function(r){return e(t(r))}}var Hq=Yq,bee=Hq(Object.keys,Object),Zq=Object.prototype,vee=Zq.hasOwnProperty,Qq=ar(Object,"create"),Ji=Qq;function Wq(){this.__data__=Ji?Ji(null):{},this.size=0}var Kq=Wq;function Jq(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xq=Jq,eG="__lodash_hash_undefined__",tG=Object.prototype,rG=tG.hasOwnProperty;function iG(e){var t=this.__data__;if(Ji){var r=t[e];return r===eG?void 0:r}return rG.call(t,e)?t[e]:void 0}var nG=iG,oG=Object.prototype,aG=oG.hasOwnProperty;function lG(e){var t=this.__data__;return Ji?t[e]!==void 0:aG.call(t,e)}var sG=lG,uG="__lodash_hash_undefined__";function cG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ji&&t===void 0?uG:t,this}var dG=cG;function lr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lr.prototype.clear=Kq;lr.prototype.delete=Xq;lr.prototype.get=nG;lr.prototype.has=sG;lr.prototype.set=dG;var d1=lr;function pG(){this.__data__=[],this.size=0}var gG=pG;function fG(e,t){for(var r=e.length;r--;)if(aq(e[r][0],t))return r;return-1}var vo=fG,yG=Array.prototype,mG=yG.splice;function hG(e){var t=this.__data__,r=vo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():mG.call(t,r,1),--this.size,!0}var bG=hG;function vG(e){var t=this.__data__,r=vo(t,e);return r<0?void 0:t[r][1]}var wG=vG;function kG(e){return vo(this.__data__,e)>-1}var xG=kG;function IG(e,t){var r=this.__data__,i=vo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var AG=IG;function sr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}sr.prototype.clear=gG;sr.prototype.delete=bG;sr.prototype.get=wG;sr.prototype.has=xG;sr.prototype.set=AG;var wo=sr,CG=ar(oe,"Map"),Xi=CG;function MG(){this.size=0,this.__data__={hash:new d1,map:new(Xi||wo),string:new d1}}var jG=MG;function SG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var $G=SG;function _G(e,t){var r=e.__data__;return $G(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ko=_G;function EG(e){var t=ko(this,e).delete(e);return this.size-=t?1:0,t}var LG=EG;function TG(e){return ko(this,e).get(e)}var OG=TG;function NG(e){return ko(this,e).has(e)}var DG=NG;function PG(e,t){var r=ko(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var zG=PG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=jG;ur.prototype.delete=LG;ur.prototype.get=OG;ur.prototype.has=DG;ur.prototype.set=zG;var F1=ur;function UG(){this.__data__=new wo,this.size=0}var RG=UG;function FG(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var VG=FG;function BG(e){return this.__data__.get(e)}var qG=BG;function GG(e){return this.__data__.has(e)}var YG=GG,HG=200;function ZG(e,t){var r=this.__data__;if(r instanceof wo){var i=r.__data__;if(!Xi||i.length<HG-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new F1(i)}return r.set(e,t),this.size=r.size,this}var QG=ZG;function nn(e){var t=this.__data__=new wo(e);this.size=t.size}nn.prototype.clear=RG;nn.prototype.delete=VG;nn.prototype.get=qG;nn.prototype.has=YG;nn.prototype.set=QG;var WG=Object.prototype,wee=WG.propertyIsEnumerable,KG=ar(oe,"DataView"),Vl=KG,JG=ar(oe,"Promise"),Bl=JG,XG=ar(oe,"Set"),ql=XG,p1="[object Map]",eY="[object Object]",g1="[object Promise]",f1="[object Set]",y1="[object WeakMap]",m1="[object DataView]",tY=Fe(Vl),rY=Fe(Xi),iY=Fe(Bl),nY=Fe(ql),oY=Fe(Fl),tr=rn;(Vl&&tr(new Vl(new ArrayBuffer(1)))!=m1||Xi&&tr(new Xi)!=p1||Bl&&tr(Bl.resolve())!=g1||ql&&tr(new ql)!=f1||Fl&&tr(new Fl)!=y1)&&(tr=function(e){var t=rn(e),r=t==eY?e.constructor:void 0,i=r?Fe(r):"";if(i)switch(i){case tY:return m1;case rY:return p1;case iY:return g1;case nY:return f1;case oY:return y1}return t});var kee=oe.Uint8Array,aY="__lodash_hash_undefined__";function lY(e){return this.__data__.set(e,aY),this}var sY=lY;function uY(e){return this.__data__.has(e)}var cY=uY;function Gl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new F1;++t<r;)this.add(e[t])}Gl.prototype.add=Gl.prototype.push=sY;Gl.prototype.has=cY;var h1=nr?nr.prototype:void 0,xee=h1?h1.valueOf:void 0,dY=Object.prototype,Iee=dY.hasOwnProperty,pY=Object.prototype,Aee=pY.hasOwnProperty,Cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function V1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function gY(e,t){let r=await V1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function fY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return V1(i,t)}function yY(e){return e!==void 0}var mY=yY;function on(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function an(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var B1=class q1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new q1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},hY=class G1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new G1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function bY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function vY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var wY=vY,Dl="ly.img.ai.temp";async function kY(e,t){return e.engine.asset.findAllSources().includes(Dl)||e.engine.asset.addLocalSource(Dl),e.engine.asset.apply(Dl,t)}function xY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Y1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function IY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function AY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Xl(e){return e instanceof Error&&e.name==="AbortError"}function CY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
586
+ `}var lB=aB,ho="changeTextTo",he=`ly.img.${ho}`,wg=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,kg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function yl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ho}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var sB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${kg}`]:"Change Text to...",[`${kg}.prompt`]:"Change Text to...",[`${wg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:he,type:"quick",kind:"text",scopes:["text/edit"],label:`${wg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${he}.prompt`,"");t.TextArea(`${he}.prompt`,{inputLabel:yl(l,"prompt"),placeholder:yl(l,"prompt.placeholder")[1],...u}),t.Separator(`${he}.separator`),r.builder.ButtonRow(`${he}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${he}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${he}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:lB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${he}.button`,{label:yl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),uB=sB,r1="@imgly/plugin-ai-text-generation-web",cB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function dB(e){return{async initialize({cesdk:t}){if(t==null)return;VP(t,r1,"0.2.8"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet($O,EO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),pB(e);let r=$l.get();r.register(CV({cesdk:t})),r.register(LV({cesdk:t})),r.register(UV({cesdk:t})),r.register(YV({cesdk:t})),r.register(JV({cesdk:t})),r.register(oB({cesdk:t})),r.register(uB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(bV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await Wz("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await wU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:cB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:ao}))}}}function pB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var gB=dB,fB=e=>({name:r1,version:"0.2.8",...gB(e)}),i1=fB;var yB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ir(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ir(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ir(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ir(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ir(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ir(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ir(n,t,a)}return e}var mB=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},hB=typeof global=="object"&&global&&global.Object===Object&&global,N1=hB,bB=typeof self=="object"&&self&&self.Object===Object&&self,vB=N1||bB||Function("return this")(),oe=vB,wB=oe.Symbol,nr=wB,D1=Object.prototype,kB=D1.hasOwnProperty,xB=D1.toString,Gi=nr?nr.toStringTag:void 0;function IB(e){var t=kB.call(e,Gi),r=e[Gi];try{e[Gi]=void 0;var i=!0}catch{}var n=xB.call(e);return i&&(t?e[Gi]=r:delete e[Gi]),n}var AB=IB,CB=Object.prototype,MB=CB.toString;function jB(e){return MB.call(e)}var SB=jB,$B="[object Null]",_B="[object Undefined]",n1=nr?nr.toStringTag:void 0;function EB(e){return e==null?e===void 0?_B:$B:n1&&n1 in Object(e)?AB(e):SB(e)}var rn=EB;function LB(e){return e!=null&&typeof e=="object"}var Jl=LB,pee=Array.isArray;function TB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var P1=TB,OB="[object AsyncFunction]",NB="[object Function]",DB="[object GeneratorFunction]",PB="[object Proxy]";function zB(e){if(!P1(e))return!1;var t=rn(e);return t==NB||t==DB||t==OB||t==PB}var UB=zB,RB=oe["__core-js_shared__"],Ol=RB,o1=function(){var e=/[^.]+$/.exec(Ol&&Ol.keys&&Ol.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function FB(e){return!!o1&&o1 in e}var VB=FB,BB=Function.prototype,qB=BB.toString;function GB(e){if(e!=null){try{return qB.call(e)}catch{}try{return e+""}catch{}}return""}var Fe=GB,YB=/[\\^$.*+?()[\]{}|]/g,HB=/^\[object .+?Constructor\]$/,ZB=Function.prototype,QB=Object.prototype,WB=ZB.toString,KB=QB.hasOwnProperty,JB=RegExp("^"+WB.call(KB).replace(YB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function XB(e){if(!P1(e)||VB(e))return!1;var t=UB(e)?JB:HB;return t.test(Fe(e))}var eq=XB;function tq(e,t){return e?.[t]}var rq=tq;function iq(e,t){var r=rq(e,t);return eq(r)?r:void 0}var ar=iq,nq=ar(oe,"WeakMap"),Fl=nq;function oq(e,t){return e===t||e!==e&&t!==t}var aq=oq,lq=9007199254740991;function sq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=lq}var uq=sq,gee=Object.prototype,cq="[object Arguments]";function dq(e){return Jl(e)&&rn(e)==cq}var a1=dq,z1=Object.prototype,pq=z1.hasOwnProperty,gq=z1.propertyIsEnumerable,fee=a1(function(){return arguments}())?a1:function(e){return Jl(e)&&pq.call(e,"callee")&&!gq.call(e,"callee")},U1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,l1=U1&&typeof module=="object"&&module&&!module.nodeType&&module,fq=l1&&l1.exports===U1,s1=fq?oe.Buffer:void 0,yee=s1?s1.isBuffer:void 0,yq="[object Arguments]",mq="[object Array]",hq="[object Boolean]",bq="[object Date]",vq="[object Error]",wq="[object Function]",kq="[object Map]",xq="[object Number]",Iq="[object Object]",Aq="[object RegExp]",Cq="[object Set]",Mq="[object String]",jq="[object WeakMap]",Sq="[object ArrayBuffer]",$q="[object DataView]",_q="[object Float32Array]",Eq="[object Float64Array]",Lq="[object Int8Array]",Tq="[object Int16Array]",Oq="[object Int32Array]",Nq="[object Uint8Array]",Dq="[object Uint8ClampedArray]",Pq="[object Uint16Array]",zq="[object Uint32Array]",V={};V[_q]=V[Eq]=V[Lq]=V[Tq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=!0;V[yq]=V[mq]=V[Sq]=V[hq]=V[$q]=V[bq]=V[vq]=V[wq]=V[kq]=V[xq]=V[Iq]=V[Aq]=V[Cq]=V[Mq]=V[jq]=!1;function Uq(e){return Jl(e)&&uq(e.length)&&!!V[rn(e)]}var Rq=Uq;function Fq(e){return function(t){return e(t)}}var Vq=Fq,R1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wi=R1&&typeof module=="object"&&module&&!module.nodeType&&module,Bq=Wi&&Wi.exports===R1,Nl=Bq&&N1.process,qq=function(){try{var e=Wi&&Wi.require&&Wi.require("util").types;return e||Nl&&Nl.binding&&Nl.binding("util")}catch{}}(),u1=qq,c1=u1&&u1.isTypedArray,mee=c1?Vq(c1):Rq,Gq=Object.prototype,hee=Gq.hasOwnProperty;function Yq(e,t){return function(r){return e(t(r))}}var Hq=Yq,bee=Hq(Object.keys,Object),Zq=Object.prototype,vee=Zq.hasOwnProperty,Qq=ar(Object,"create"),Ji=Qq;function Wq(){this.__data__=Ji?Ji(null):{},this.size=0}var Kq=Wq;function Jq(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Xq=Jq,eG="__lodash_hash_undefined__",tG=Object.prototype,rG=tG.hasOwnProperty;function iG(e){var t=this.__data__;if(Ji){var r=t[e];return r===eG?void 0:r}return rG.call(t,e)?t[e]:void 0}var nG=iG,oG=Object.prototype,aG=oG.hasOwnProperty;function lG(e){var t=this.__data__;return Ji?t[e]!==void 0:aG.call(t,e)}var sG=lG,uG="__lodash_hash_undefined__";function cG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ji&&t===void 0?uG:t,this}var dG=cG;function lr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}lr.prototype.clear=Kq;lr.prototype.delete=Xq;lr.prototype.get=nG;lr.prototype.has=sG;lr.prototype.set=dG;var d1=lr;function pG(){this.__data__=[],this.size=0}var gG=pG;function fG(e,t){for(var r=e.length;r--;)if(aq(e[r][0],t))return r;return-1}var vo=fG,yG=Array.prototype,mG=yG.splice;function hG(e){var t=this.__data__,r=vo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():mG.call(t,r,1),--this.size,!0}var bG=hG;function vG(e){var t=this.__data__,r=vo(t,e);return r<0?void 0:t[r][1]}var wG=vG;function kG(e){return vo(this.__data__,e)>-1}var xG=kG;function IG(e,t){var r=this.__data__,i=vo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var AG=IG;function sr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}sr.prototype.clear=gG;sr.prototype.delete=bG;sr.prototype.get=wG;sr.prototype.has=xG;sr.prototype.set=AG;var wo=sr,CG=ar(oe,"Map"),Xi=CG;function MG(){this.size=0,this.__data__={hash:new d1,map:new(Xi||wo),string:new d1}}var jG=MG;function SG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var $G=SG;function _G(e,t){var r=e.__data__;return $G(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ko=_G;function EG(e){var t=ko(this,e).delete(e);return this.size-=t?1:0,t}var LG=EG;function TG(e){return ko(this,e).get(e)}var OG=TG;function NG(e){return ko(this,e).has(e)}var DG=NG;function PG(e,t){var r=ko(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var zG=PG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=jG;ur.prototype.delete=LG;ur.prototype.get=OG;ur.prototype.has=DG;ur.prototype.set=zG;var F1=ur;function UG(){this.__data__=new wo,this.size=0}var RG=UG;function FG(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var VG=FG;function BG(e){return this.__data__.get(e)}var qG=BG;function GG(e){return this.__data__.has(e)}var YG=GG,HG=200;function ZG(e,t){var r=this.__data__;if(r instanceof wo){var i=r.__data__;if(!Xi||i.length<HG-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new F1(i)}return r.set(e,t),this.size=r.size,this}var QG=ZG;function nn(e){var t=this.__data__=new wo(e);this.size=t.size}nn.prototype.clear=RG;nn.prototype.delete=VG;nn.prototype.get=qG;nn.prototype.has=YG;nn.prototype.set=QG;var WG=Object.prototype,wee=WG.propertyIsEnumerable,KG=ar(oe,"DataView"),Vl=KG,JG=ar(oe,"Promise"),Bl=JG,XG=ar(oe,"Set"),ql=XG,p1="[object Map]",eY="[object Object]",g1="[object Promise]",f1="[object Set]",y1="[object WeakMap]",m1="[object DataView]",tY=Fe(Vl),rY=Fe(Xi),iY=Fe(Bl),nY=Fe(ql),oY=Fe(Fl),tr=rn;(Vl&&tr(new Vl(new ArrayBuffer(1)))!=m1||Xi&&tr(new Xi)!=p1||Bl&&tr(Bl.resolve())!=g1||ql&&tr(new ql)!=f1||Fl&&tr(new Fl)!=y1)&&(tr=function(e){var t=rn(e),r=t==eY?e.constructor:void 0,i=r?Fe(r):"";if(i)switch(i){case tY:return m1;case rY:return p1;case iY:return g1;case nY:return f1;case oY:return y1}return t});var kee=oe.Uint8Array,aY="__lodash_hash_undefined__";function lY(e){return this.__data__.set(e,aY),this}var sY=lY;function uY(e){return this.__data__.has(e)}var cY=uY;function Gl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new F1;++t<r;)this.add(e[t])}Gl.prototype.add=Gl.prototype.push=sY;Gl.prototype.has=cY;var h1=nr?nr.prototype:void 0,xee=h1?h1.valueOf:void 0,dY=Object.prototype,Iee=dY.hasOwnProperty,pY=Object.prototype,Aee=pY.hasOwnProperty,Cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function V1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function gY(e,t){let r=await V1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function fY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return V1(i,t)}function yY(e){return e!==void 0}var mY=yY;function on(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function an(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var B1=class q1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new q1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},hY=class G1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new G1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function bY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),m={...d,addDisposer:o};return p(u,m,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function vY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var wY=vY,Dl="ly.img.ai.temp";async function kY(e,t){return e.engine.asset.findAllSources().includes(Dl)||e.engine.asset.addLocalSource(Dl),e.engine.asset.apply(Dl,t)}function xY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Y1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function IY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function AY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Xl(e){return e instanceof Error&&e.name==="AbortError"}function CY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function MY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
587
587
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
588
588
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
589
589
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function jY(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var SY=jY;function $Y(e,t){let{cesdk:r,provider:i,getInput:n}=t;console.error("Generation failed:",e),_Y(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:xY(e)})}function _Y(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var b1=$Y,EY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",es=EY;function LY(e,t,r){switch(t){case"image":return TY(e,r[t]);case"video":return OY(e,r[t]);case"sticker":return NY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:es,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function OY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:es,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function NY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:es,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var DY=LY;async function PY(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return zY(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return UY(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return RY(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return FY(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function zY(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function UY(e,t,r){let i=t.width,n=t.height,a=await IY(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function RY(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function FY(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var H1=PY;function VY(e){switch(e.userFlow){case"placeholder":return qY(e);case"generation-only":return BY(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function BY(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(we(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(we(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(we(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Y1(),c=await H1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function qY(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(we(t,r))return{status:"aborted"};let s=Y1(),c=DY(s,a,o);if(i=await kY(t,c),we(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(we(t,r,i))return{status:"aborted"};if(l.status!=="success")return l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await H1(s,a,o,l.output);if(we(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),we(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Xl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function we(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var GY=VY;function ts(e){return`${e}.generating`}function YY(e){return`${e}.abort`}function HY(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(YY(d),()=>{}),m=c.global(ts(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},w;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();w=a.requiredInputs.every(y=>!I.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:w,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await GY({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){b1(y.message,{cesdk:l,provider:t,getInput:i});return}if(y.status==="success"&&y.type==="sync"){let x=t.output.notification;ZY(l,x,()=>({input:i().input,output:y.output}))}}catch(y){if(Xl(y))return;b1(y,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,m.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ZY(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Z1=HY;async function QY({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t,s=r.render;return c=>{let{state:l}=c,u=l(ts(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Z1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var WY=QY;function Q1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Zi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Q1(e,t.$ref),n={...Zi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Zi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Zi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Zi(e,t[n],r));return i}return t}function KY(e){return Zi(e,{...e})}function JY(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function XY(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return eH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function eH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=tH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function tH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var W1=XY;function Re(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`;return[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function K1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function J1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?rH(e,c,r,i,n,a,o,s):X1(e,c,r,i,n,a,o,s);case"boolean":return ef(e,c,r,i,n,a,o,s);case"number":case"integer":return tf(e,c,r,i,n,a,o,s);case"object":return Yl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return iH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Yl(e,t,r,i,n,a,o,s){let c=W1(t.schema??{},i).reduce((l,u)=>{let d=J1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function X1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=on(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=an(d,f,m,t.schema.default,""),b=l(p,h),w=nH(t.schema),k=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput";return c[k](p,{inputLabel:g,placeholder:n.i18n?.prompt,...b}),()=>({id:t.id,type:"string",value:b.value})}function rH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),{labels:m,icons:f}=K1(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:Re(t,r,o,x),icon:f[x]})),b=on(u,n.cesdk),w=s?.properties?.[d]??a.properties?.[d],k=an(d,w,b,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],y=l(p,I);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function ef(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=on(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!an(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function tf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=on(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],w=t.schema.default;w==null&&(m!=null?w=m:f!=null?w=f:w=0);let k=an(d,b,h,w,w),I=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...I})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function iH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Re(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:w,icons:k}=K1(t.schema),I=on(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],x={string:X1,boolean:ef,integer:tf,object:Yl},j=(v,E)=>v.$ref?v.$ref.split("/").pop():E.split(".").pop()??E,C=(v,E)=>({id:v,label:Re(t,r,o,E),icon:k[E]??k[v]});m.forEach((v,E)=>{let $=`${r.id}.${d}.anyOf[${E}]`;if(v.$ref||v.title){let _=v.$ref?v.$ref.split("/").pop():v.title;h[$]=()=>Yl(e,{id:$,schema:{...v,title:w[_]||_}},r,i,n,a,o,s),f.push(C($,_))}else if(v.type==="string"&&v.enum)v.enum.forEach(_=>{f.push(C(_,_))});else if(v.type&&x[v.type]){let _=x[v.type];h[$]=()=>_(e,{id:$,schema:{...v,title:v.title}},r,i,n,a,o,s);let q=j(v,$);f.push(v.type==="string"&&!v.enum?{id:$,label:v.title||q,icon:v.title&&k[v.title]||k[q]}:C($,q))}});let S=an(d,y,I,t.schema.default,null),M=S!=null?f.find(v=>v.id===S)??f[0]:f[0],A=l(p,M);if(c.Select(p,{inputLabel:g,values:f,...A}),A.value.id in h){let v=h[A.value.id]();b[A.value.id]=v}return()=>{let v=b[A.value.id];return v!=null?{...v(),id:t.id}:{id:t.id,type:"string",value:A.value.id}}}function nH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var oH=J1,aH={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function v1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function lH(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),m=d[g]||v1(g);n[a(u,g)]=m})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,m=u[g]||v1(g);n[a(l.id,g)]=m}})}});let c={...aH,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function sH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Registering schema-based panel input for provider ${o}`);let s=KY(r.document),c=Q1(s,r.inputReference);if(!JY(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=W1(l,r);return lH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let w=oH(d,b,t,r,e,i,t.kind,n);w!=null&&(Array.isArray(w)?g.push(...w):g.push(w))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((w,[k,I])=>(w[k]=f(I),w),{}):b.value,h=m.reduce((b,w)=>(b[w.id]=f(w),b),{});Z1(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var uH=sH;async function cH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return WY(e,t);case"schema":return uH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var dH=cH;function pH(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new yB(o,r)),o}return i}var gH=pH;function fH(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var yH=fH,Pl="@imgly/plugin-ai-generation",mH=`
@@ -662,231 +662,18 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
662
 
663
663
  </symbol>
664
664
  </svg>
665
- `,RH=UH,FH=typeof global=="object"&&global&&global.Object===Object&&global,nf=FH,VH=typeof self=="object"&&self&&self.Object===Object&&self,BH=nf||VH||Function("return this")(),ae=BH,qH=ae.Symbol,or=qH,of=Object.prototype,GH=of.hasOwnProperty,YH=of.toString,Hi=or?or.toStringTag:void 0;function HH(e){var t=GH.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=YH.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var ZH=HH,QH=Object.prototype,WH=QH.toString;function KH(e){return WH.call(e)}var JH=KH,XH="[object Null]",eZ="[object Undefined]",k1=or?or.toStringTag:void 0;function tZ(e){return e==null?e===void 0?eZ:XH:k1&&k1 in Object(e)?ZH(e):JH(e)}var ln=tZ;function rZ(e){return e!=null&&typeof e=="object"}var rs=rZ,See=Array.isArray;function iZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var af=iZ,nZ="[object AsyncFunction]",oZ="[object Function]",aZ="[object GeneratorFunction]",lZ="[object Proxy]";function sZ(e){if(!af(e))return!1;var t=ln(e);return t==oZ||t==aZ||t==nZ||t==lZ}var uZ=sZ,cZ=ae["__core-js_shared__"],Ul=cZ,x1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dZ(e){return!!x1&&x1 in e}var pZ=dZ,gZ=Function.prototype,fZ=gZ.toString;function yZ(e){if(e!=null){try{return fZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=yZ,mZ=/[\\^$.*+?()[\]{}|]/g,hZ=/^\[object .+?Constructor\]$/,bZ=Function.prototype,vZ=Object.prototype,wZ=bZ.toString,kZ=vZ.hasOwnProperty,xZ=RegExp("^"+wZ.call(kZ).replace(mZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function IZ(e){if(!af(e)||pZ(e))return!1;var t=uZ(e)?xZ:hZ;return t.test(Ve(e))}var AZ=IZ;function CZ(e,t){return e?.[t]}var MZ=CZ;function jZ(e,t){var r=MZ(e,t);return AZ(r)?r:void 0}var cr=jZ,SZ=cr(ae,"WeakMap"),Hl=SZ;function $Z(e,t){return e===t||e!==e&&t!==t}var _Z=$Z,EZ=9007199254740991;function LZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EZ}var TZ=LZ,$ee=Object.prototype,OZ="[object Arguments]";function NZ(e){return rs(e)&&ln(e)==OZ}var I1=NZ,lf=Object.prototype,DZ=lf.hasOwnProperty,PZ=lf.propertyIsEnumerable,_ee=I1(function(){return arguments}())?I1:function(e){return rs(e)&&DZ.call(e,"callee")&&!PZ.call(e,"callee")},sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,A1=sf&&typeof module=="object"&&module&&!module.nodeType&&module,zZ=A1&&A1.exports===sf,C1=zZ?ae.Buffer:void 0,Eee=C1?C1.isBuffer:void 0,UZ="[object Arguments]",RZ="[object Array]",FZ="[object Boolean]",VZ="[object Date]",BZ="[object Error]",qZ="[object Function]",GZ="[object Map]",YZ="[object Number]",HZ="[object Object]",ZZ="[object RegExp]",QZ="[object Set]",WZ="[object String]",KZ="[object WeakMap]",JZ="[object ArrayBuffer]",XZ="[object DataView]",eQ="[object Float32Array]",tQ="[object Float64Array]",rQ="[object Int8Array]",iQ="[object Int16Array]",nQ="[object Int32Array]",oQ="[object Uint8Array]",aQ="[object Uint8ClampedArray]",lQ="[object Uint16Array]",sQ="[object Uint32Array]",B={};B[eQ]=B[tQ]=B[rQ]=B[iQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=!0;B[UZ]=B[RZ]=B[JZ]=B[FZ]=B[XZ]=B[VZ]=B[BZ]=B[qZ]=B[GZ]=B[YZ]=B[HZ]=B[ZZ]=B[QZ]=B[WZ]=B[KZ]=!1;function uQ(e){return rs(e)&&TZ(e.length)&&!!B[ln(e)]}var cQ=uQ;function dQ(e){return function(t){return e(t)}}var pQ=dQ,uf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ki=uf&&typeof module=="object"&&module&&!module.nodeType&&module,gQ=Ki&&Ki.exports===uf,Rl=gQ&&nf.process,fQ=function(){try{var e=Ki&&Ki.require&&Ki.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),M1=fQ,j1=M1&&M1.isTypedArray,Lee=j1?pQ(j1):cQ,yQ=Object.prototype,Tee=yQ.hasOwnProperty;function mQ(e,t){return function(r){return e(t(r))}}var hQ=mQ,Oee=hQ(Object.keys,Object),bQ=Object.prototype,Nee=bQ.hasOwnProperty,vQ=cr(Object,"create"),en=vQ;function wQ(){this.__data__=en?en(null):{},this.size=0}var kQ=wQ;function xQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IQ=xQ,AQ="__lodash_hash_undefined__",CQ=Object.prototype,MQ=CQ.hasOwnProperty;function jQ(e){var t=this.__data__;if(en){var r=t[e];return r===AQ?void 0:r}return MQ.call(t,e)?t[e]:void 0}var SQ=jQ,$Q=Object.prototype,_Q=$Q.hasOwnProperty;function EQ(e){var t=this.__data__;return en?t[e]!==void 0:_Q.call(t,e)}var LQ=EQ,TQ="__lodash_hash_undefined__";function OQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=en&&t===void 0?TQ:t,this}var NQ=OQ;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=kQ;dr.prototype.delete=IQ;dr.prototype.get=SQ;dr.prototype.has=LQ;dr.prototype.set=NQ;var S1=dr;function DQ(){this.__data__=[],this.size=0}var PQ=DQ;function zQ(e,t){for(var r=e.length;r--;)if(_Z(e[r][0],t))return r;return-1}var xo=zQ,UQ=Array.prototype,RQ=UQ.splice;function FQ(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RQ.call(t,r,1),--this.size,!0}var VQ=FQ;function BQ(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var qQ=BQ;function GQ(e){return xo(this.__data__,e)>-1}var YQ=GQ;function HQ(e,t){var r=this.__data__,i=xo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ZQ=HQ;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=PQ;pr.prototype.delete=VQ;pr.prototype.get=qQ;pr.prototype.has=YQ;pr.prototype.set=ZQ;var Io=pr,QQ=cr(ae,"Map"),tn=QQ;function WQ(){this.size=0,this.__data__={hash:new S1,map:new(tn||Io),string:new S1}}var KQ=WQ;function JQ(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XQ=JQ;function eW(e,t){var r=e.__data__;return XQ(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ao=eW;function tW(e){var t=Ao(this,e).delete(e);return this.size-=t?1:0,t}var rW=tW;function iW(e){return Ao(this,e).get(e)}var nW=iW;function oW(e){return Ao(this,e).has(e)}var aW=oW;function lW(e,t){var r=Ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sW=lW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=KQ;gr.prototype.delete=rW;gr.prototype.get=nW;gr.prototype.has=aW;gr.prototype.set=sW;var cf=gr;function uW(){this.__data__=new Io,this.size=0}var cW=uW;function dW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pW=dW;function gW(e){return this.__data__.get(e)}var fW=gW;function yW(e){return this.__data__.has(e)}var mW=yW,hW=200;function bW(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!tn||i.length<hW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cf(i)}return r.set(e,t),this.size=r.size,this}var vW=bW;function sn(e){var t=this.__data__=new Io(e);this.size=t.size}sn.prototype.clear=cW;sn.prototype.delete=pW;sn.prototype.get=fW;sn.prototype.has=mW;sn.prototype.set=vW;var wW=Object.prototype,Dee=wW.propertyIsEnumerable,kW=cr(ae,"DataView"),Zl=kW,xW=cr(ae,"Promise"),Ql=xW,IW=cr(ae,"Set"),Wl=IW,$1="[object Map]",AW="[object Object]",_1="[object Promise]",E1="[object Set]",L1="[object WeakMap]",T1="[object DataView]",CW=Ve(Zl),MW=Ve(tn),jW=Ve(Ql),SW=Ve(Wl),$W=Ve(Hl),rr=ln;(Zl&&rr(new Zl(new ArrayBuffer(1)))!=T1||tn&&rr(new tn)!=$1||Ql&&rr(Ql.resolve())!=_1||Wl&&rr(new Wl)!=E1||Hl&&rr(new Hl)!=L1)&&(rr=function(e){var t=ln(e),r=t==AW?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case CW:return T1;case MW:return $1;case jW:return _1;case SW:return E1;case $W:return L1}return t});var Pee=ae.Uint8Array,_W="__lodash_hash_undefined__";function EW(e){return this.__data__.set(e,_W),this}var LW=EW;function TW(e){return this.__data__.has(e)}var OW=TW;function Kl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cf;++t<r;)this.add(e[t])}Kl.prototype.add=Kl.prototype.push=LW;Kl.prototype.has=OW;var O1=or?or.prototype:void 0,zee=O1?O1.valueOf:void 0,NW=Object.prototype,Uee=NW.hasOwnProperty,DW=Object.prototype,Ree=DW.hasOwnProperty,Fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function PW(e){return e==null?[]:Array.isArray(e)?e:[e]}var zW=PW,bo="@imgly/plugin-ai-sticker-generation-web",ve="ly.img.ai.sticker-generation";function UW(e){return{async initialize({cesdk:t}){if(t==null)return;MY(t,bo,"0.2.7"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0);let r=B1.get().register({type:"plugin",sceneMode:"Design",id:bo,pluginId:bo,label:"Generate Sticker",meta:{panelId:ve},execute:()=>{t.ui.isPanelOpen(ve)?t.ui.closePanel(ve):t.ui.openPanel(ve)}});t.ui.addIconSet(zH,RH),t.i18n.setTranslations({en:{[`panel.${ve}`]:"Sticker Generation",[`${ve}.dock.label`]:"AI Sticker"}});let i=e.providers?.text2sticker,n=await Promise.all(zW(i).map(o=>o({cesdk:t})));if(!(n.length>0)){r();return}let a=await PH("sticker",{fromText:n,fromImage:[]},{cesdk:t},e);a.history?.assetSourceId!=null,a.panel.builderRenderFunction!=null?(t.ui.registerPanel(ve,a.panel.builderRenderFunction),SY({cesdk:t,panelId:ve})):r()}}}var RW=UW,FW=e=>({name:bo,version:"0.2.7",...RW(e)}),df=FW;var is=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let y=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return y&&y.includes(k)||x.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let y=I.tags?.[n]||[];return k.some(x=>y.includes(x))})}a&&p.sort((k,I)=>{let y=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return y&&!x?-1:!y&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let y=k.meta?.[d],x=I.meta?.[d];return y===void 0?1:x===void 0?-1:typeof y=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(y):y.localeCompare(x):typeof y=="number"&&typeof x=="number"?u==="Descending"?x-y:y-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),w=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:w,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=VW(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function pf(e,t,r=[]){return new is(e,t,r)}function VW(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var un="ly.img.ai.apps";var Y=Zs("apps"),BW=512,qW=128,gf=e=>({async initialize({cesdk:t}){if(t==null)return;Qs(t,un,"0.2.7");let{providers:r}=e;t.addPlugin(i1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(mc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Cd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Np({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(df({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),QW(t),GW(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function GW(e,t){ZW(e);let r=YW(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{mn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:a})=>a,cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?mn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"AI",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function YW(e,t){let r=mn.get(),i=pf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,sceneMode:c})=>a==="Design"&&c==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:c,thumbUri:t.baseURL!=null?HW(t.baseURL,o):void 0,width:BW,height:qW}}).filter(Cs)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function HW(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function ZW(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let w=b.sceneMode;return typeof w=="string"?b.sceneMode===u||b.sceneMode==="All":typeof w=="function"?b.sourceIds.some(k=>{let I=w(e.version.startsWith("1.51.")?k:{sourceId:k});return I===u||I==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),m=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function QW(e){e.i18n.setTranslations({en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var WW=e=>({name:un,version:"0.2.7",...gf(e)}),lte=WW;export{lte as default};
665
+ `,RH=UH,FH=typeof global=="object"&&global&&global.Object===Object&&global,nf=FH,VH=typeof self=="object"&&self&&self.Object===Object&&self,BH=nf||VH||Function("return this")(),ae=BH,qH=ae.Symbol,or=qH,of=Object.prototype,GH=of.hasOwnProperty,YH=of.toString,Hi=or?or.toStringTag:void 0;function HH(e){var t=GH.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=YH.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var ZH=HH,QH=Object.prototype,WH=QH.toString;function KH(e){return WH.call(e)}var JH=KH,XH="[object Null]",eZ="[object Undefined]",k1=or?or.toStringTag:void 0;function tZ(e){return e==null?e===void 0?eZ:XH:k1&&k1 in Object(e)?ZH(e):JH(e)}var ln=tZ;function rZ(e){return e!=null&&typeof e=="object"}var rs=rZ,See=Array.isArray;function iZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var af=iZ,nZ="[object AsyncFunction]",oZ="[object Function]",aZ="[object GeneratorFunction]",lZ="[object Proxy]";function sZ(e){if(!af(e))return!1;var t=ln(e);return t==oZ||t==aZ||t==nZ||t==lZ}var uZ=sZ,cZ=ae["__core-js_shared__"],Ul=cZ,x1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function dZ(e){return!!x1&&x1 in e}var pZ=dZ,gZ=Function.prototype,fZ=gZ.toString;function yZ(e){if(e!=null){try{return fZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=yZ,mZ=/[\\^$.*+?()[\]{}|]/g,hZ=/^\[object .+?Constructor\]$/,bZ=Function.prototype,vZ=Object.prototype,wZ=bZ.toString,kZ=vZ.hasOwnProperty,xZ=RegExp("^"+wZ.call(kZ).replace(mZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function IZ(e){if(!af(e)||pZ(e))return!1;var t=uZ(e)?xZ:hZ;return t.test(Ve(e))}var AZ=IZ;function CZ(e,t){return e?.[t]}var MZ=CZ;function jZ(e,t){var r=MZ(e,t);return AZ(r)?r:void 0}var cr=jZ,SZ=cr(ae,"WeakMap"),Hl=SZ;function $Z(e,t){return e===t||e!==e&&t!==t}var _Z=$Z,EZ=9007199254740991;function LZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=EZ}var TZ=LZ,$ee=Object.prototype,OZ="[object Arguments]";function NZ(e){return rs(e)&&ln(e)==OZ}var I1=NZ,lf=Object.prototype,DZ=lf.hasOwnProperty,PZ=lf.propertyIsEnumerable,_ee=I1(function(){return arguments}())?I1:function(e){return rs(e)&&DZ.call(e,"callee")&&!PZ.call(e,"callee")},sf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,A1=sf&&typeof module=="object"&&module&&!module.nodeType&&module,zZ=A1&&A1.exports===sf,C1=zZ?ae.Buffer:void 0,Eee=C1?C1.isBuffer:void 0,UZ="[object Arguments]",RZ="[object Array]",FZ="[object Boolean]",VZ="[object Date]",BZ="[object Error]",qZ="[object Function]",GZ="[object Map]",YZ="[object Number]",HZ="[object Object]",ZZ="[object RegExp]",QZ="[object Set]",WZ="[object String]",KZ="[object WeakMap]",JZ="[object ArrayBuffer]",XZ="[object DataView]",eQ="[object Float32Array]",tQ="[object Float64Array]",rQ="[object Int8Array]",iQ="[object Int16Array]",nQ="[object Int32Array]",oQ="[object Uint8Array]",aQ="[object Uint8ClampedArray]",lQ="[object Uint16Array]",sQ="[object Uint32Array]",B={};B[eQ]=B[tQ]=B[rQ]=B[iQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=!0;B[UZ]=B[RZ]=B[JZ]=B[FZ]=B[XZ]=B[VZ]=B[BZ]=B[qZ]=B[GZ]=B[YZ]=B[HZ]=B[ZZ]=B[QZ]=B[WZ]=B[KZ]=!1;function uQ(e){return rs(e)&&TZ(e.length)&&!!B[ln(e)]}var cQ=uQ;function dQ(e){return function(t){return e(t)}}var pQ=dQ,uf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ki=uf&&typeof module=="object"&&module&&!module.nodeType&&module,gQ=Ki&&Ki.exports===uf,Rl=gQ&&nf.process,fQ=function(){try{var e=Ki&&Ki.require&&Ki.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),M1=fQ,j1=M1&&M1.isTypedArray,Lee=j1?pQ(j1):cQ,yQ=Object.prototype,Tee=yQ.hasOwnProperty;function mQ(e,t){return function(r){return e(t(r))}}var hQ=mQ,Oee=hQ(Object.keys,Object),bQ=Object.prototype,Nee=bQ.hasOwnProperty,vQ=cr(Object,"create"),en=vQ;function wQ(){this.__data__=en?en(null):{},this.size=0}var kQ=wQ;function xQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var IQ=xQ,AQ="__lodash_hash_undefined__",CQ=Object.prototype,MQ=CQ.hasOwnProperty;function jQ(e){var t=this.__data__;if(en){var r=t[e];return r===AQ?void 0:r}return MQ.call(t,e)?t[e]:void 0}var SQ=jQ,$Q=Object.prototype,_Q=$Q.hasOwnProperty;function EQ(e){var t=this.__data__;return en?t[e]!==void 0:_Q.call(t,e)}var LQ=EQ,TQ="__lodash_hash_undefined__";function OQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=en&&t===void 0?TQ:t,this}var NQ=OQ;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=kQ;dr.prototype.delete=IQ;dr.prototype.get=SQ;dr.prototype.has=LQ;dr.prototype.set=NQ;var S1=dr;function DQ(){this.__data__=[],this.size=0}var PQ=DQ;function zQ(e,t){for(var r=e.length;r--;)if(_Z(e[r][0],t))return r;return-1}var xo=zQ,UQ=Array.prototype,RQ=UQ.splice;function FQ(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():RQ.call(t,r,1),--this.size,!0}var VQ=FQ;function BQ(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var qQ=BQ;function GQ(e){return xo(this.__data__,e)>-1}var YQ=GQ;function HQ(e,t){var r=this.__data__,i=xo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var ZQ=HQ;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=PQ;pr.prototype.delete=VQ;pr.prototype.get=qQ;pr.prototype.has=YQ;pr.prototype.set=ZQ;var Io=pr,QQ=cr(ae,"Map"),tn=QQ;function WQ(){this.size=0,this.__data__={hash:new S1,map:new(tn||Io),string:new S1}}var KQ=WQ;function JQ(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var XQ=JQ;function eW(e,t){var r=e.__data__;return XQ(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ao=eW;function tW(e){var t=Ao(this,e).delete(e);return this.size-=t?1:0,t}var rW=tW;function iW(e){return Ao(this,e).get(e)}var nW=iW;function oW(e){return Ao(this,e).has(e)}var aW=oW;function lW(e,t){var r=Ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var sW=lW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=KQ;gr.prototype.delete=rW;gr.prototype.get=nW;gr.prototype.has=aW;gr.prototype.set=sW;var cf=gr;function uW(){this.__data__=new Io,this.size=0}var cW=uW;function dW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var pW=dW;function gW(e){return this.__data__.get(e)}var fW=gW;function yW(e){return this.__data__.has(e)}var mW=yW,hW=200;function bW(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!tn||i.length<hW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new cf(i)}return r.set(e,t),this.size=r.size,this}var vW=bW;function sn(e){var t=this.__data__=new Io(e);this.size=t.size}sn.prototype.clear=cW;sn.prototype.delete=pW;sn.prototype.get=fW;sn.prototype.has=mW;sn.prototype.set=vW;var wW=Object.prototype,Dee=wW.propertyIsEnumerable,kW=cr(ae,"DataView"),Zl=kW,xW=cr(ae,"Promise"),Ql=xW,IW=cr(ae,"Set"),Wl=IW,$1="[object Map]",AW="[object Object]",_1="[object Promise]",E1="[object Set]",L1="[object WeakMap]",T1="[object DataView]",CW=Ve(Zl),MW=Ve(tn),jW=Ve(Ql),SW=Ve(Wl),$W=Ve(Hl),rr=ln;(Zl&&rr(new Zl(new ArrayBuffer(1)))!=T1||tn&&rr(new tn)!=$1||Ql&&rr(Ql.resolve())!=_1||Wl&&rr(new Wl)!=E1||Hl&&rr(new Hl)!=L1)&&(rr=function(e){var t=ln(e),r=t==AW?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case CW:return T1;case MW:return $1;case jW:return _1;case SW:return E1;case $W:return L1}return t});var Pee=ae.Uint8Array,_W="__lodash_hash_undefined__";function EW(e){return this.__data__.set(e,_W),this}var LW=EW;function TW(e){return this.__data__.has(e)}var OW=TW;function Kl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cf;++t<r;)this.add(e[t])}Kl.prototype.add=Kl.prototype.push=LW;Kl.prototype.has=OW;var O1=or?or.prototype:void 0,zee=O1?O1.valueOf:void 0,NW=Object.prototype,Uee=NW.hasOwnProperty,DW=Object.prototype,Ree=DW.hasOwnProperty,Fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Vee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Bee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function PW(e){return e==null?[]:Array.isArray(e)?e:[e]}var zW=PW,bo="@imgly/plugin-ai-sticker-generation-web",ve="ly.img.ai.sticker-generation";function UW(e){return{async initialize({cesdk:t}){if(t==null)return;MY(t,bo,"0.2.8"),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=B1.get().register({type:"plugin",sceneMode:"Design",id:bo,pluginId:bo,label:"Generate Sticker",meta:{panelId:ve},execute:()=>{t.ui.isPanelOpen(ve)?t.ui.closePanel(ve):t.ui.openPanel(ve)}});t.ui.addIconSet(zH,RH),t.i18n.setTranslations({en:{[`panel.${ve}`]:"Sticker Generation",[`${ve}.dock.label`]:"AI Sticker"}});let i=e.providers?.text2sticker,n=await Promise.all(zW(i).map(o=>o({cesdk:t})));if(!(n.length>0)){r();return}let a=await PH("sticker",{fromText:n,fromImage:[]},{cesdk:t},e);a.history?.assetSourceId!=null,a.panel.builderRenderFunction!=null?(t.ui.registerPanel(ve,a.panel.builderRenderFunction),SY({cesdk:t,panelId:ve})):r()}}}var RW=UW,FW=e=>({name:bo,version:"0.2.8",...RW(e)}),df=FW;var is=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let y=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return y&&y.includes(k)||x.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let y=I.tags?.[n]||[];return k.some(x=>y.includes(x))})}a&&p.sort((k,I)=>{let y=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return y&&!x?-1:!y&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let y=k.meta?.[d],x=I.meta?.[d];return y===void 0?1:x===void 0?-1:typeof y=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(y):y.localeCompare(x):typeof y=="number"&&typeof x=="number"?u==="Descending"?x-y:y-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),w=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:w,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=VW(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function pf(e,t,r=[]){return new is(e,t,r)}function VW(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var un="ly.img.ai.apps";var Y=Zs("apps"),BW=512,qW=128,gf=e=>({async initialize({cesdk:t}){if(t==null)return;Qs(t,un,"0.2.8");let{providers:r}=e;t.addPlugin(i1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(mc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Cd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(Np({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),t.addPlugin(df({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),QW(t),GW(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function GW(e,t){ZW(e);let r=YW(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{mn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({label:a})=>a,cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?mn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"AI",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function YW(e,t){let r=mn.get(),i=pf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,sceneMode:c})=>a==="Design"&&c==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:c,thumbUri:t.baseURL!=null?HW(t.baseURL,o):void 0,width:BW,height:qW}}).filter(Cs)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function HW(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function ZW(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let w=b.sceneMode;return typeof w=="string"?b.sceneMode===u||b.sceneMode==="All":typeof w=="function"?b.sourceIds.some(k=>{let I=w(e.version.startsWith("1.51.")?k:{sourceId:k});return I===u||I==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),m=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:m,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function QW(e){e.i18n.setTranslations({en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var WW=e=>({name:un,version:"0.2.8",...gf(e)}),lte=WW;export{lte as default};
666
666
  /*! Bundled license information:
667
667
 
668
- @imgly/plugin-utils/dist/index.mjs:
669
- (*! Bundled license information:
670
-
671
- lodash-es/lodash.js:
672
- (**
673
- * @license
674
- * Lodash (Custom Build) <https://lodash.com/>
675
- * Build: `lodash modularize exports="es" -o ./`
676
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
677
- * Released under MIT license <https://lodash.com/license>
678
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
679
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
680
- *)
681
- *)
682
-
683
- @imgly/plugin-ai-generation-web/dist/index.mjs:
684
- (*! Bundled license information:
685
-
686
- @imgly/plugin-utils/dist/index.mjs:
687
- (*! Bundled license information:
688
-
689
- lodash-es/lodash.js:
690
- (**
691
- * @license
692
- * Lodash (Custom Build) <https://lodash.com/>
693
- * Build: `lodash modularize exports="es" -o ./`
694
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
695
- * Released under MIT license <https://lodash.com/license>
696
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
697
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
698
- *)
699
- *)
700
- *)
701
-
702
- @imgly/plugin-ai-image-generation-web/dist/index.mjs:
703
- (*! Bundled license information:
704
-
705
- @imgly/plugin-ai-generation-web/dist/index.mjs:
706
- (*! Bundled license information:
707
-
708
- @imgly/plugin-utils/dist/index.mjs:
709
- (*! Bundled license information:
710
-
711
- lodash-es/lodash.js:
712
- (**
713
- * @license
714
- * Lodash (Custom Build) <https://lodash.com/>
715
- * Build: `lodash modularize exports="es" -o ./`
716
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
717
- * Released under MIT license <https://lodash.com/license>
718
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
719
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
720
- *)
721
- *)
722
- *)
723
-
724
- @imgly/plugin-utils/dist/index.mjs:
725
- (*! Bundled license information:
726
-
727
- lodash-es/lodash.js:
728
- (**
729
- * @license
730
- * Lodash (Custom Build) <https://lodash.com/>
731
- * Build: `lodash modularize exports="es" -o ./`
732
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
733
- * Released under MIT license <https://lodash.com/license>
734
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
735
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
736
- *)
737
- *)
738
- *)
739
-
740
- @imgly/plugin-ai-video-generation-web/dist/index.mjs:
741
- (*! Bundled license information:
742
-
743
- @imgly/plugin-ai-generation-web/dist/index.mjs:
744
- (*! Bundled license information:
745
-
746
- @imgly/plugin-utils/dist/index.mjs:
747
- (*! Bundled license information:
748
-
749
- lodash-es/lodash.js:
750
- (**
751
- * @license
752
- * Lodash (Custom Build) <https://lodash.com/>
753
- * Build: `lodash modularize exports="es" -o ./`
754
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
755
- * Released under MIT license <https://lodash.com/license>
756
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
757
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
758
- *)
759
- *)
760
- *)
761
-
762
- @imgly/plugin-utils/dist/index.mjs:
763
- (*! Bundled license information:
764
-
765
- lodash-es/lodash.js:
766
- (**
767
- * @license
768
- * Lodash (Custom Build) <https://lodash.com/>
769
- * Build: `lodash modularize exports="es" -o ./`
770
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
771
- * Released under MIT license <https://lodash.com/license>
772
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
773
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
774
- *)
775
- *)
776
- *)
777
-
778
- @imgly/plugin-ai-audio-generation-web/dist/index.mjs:
779
- (*! Bundled license information:
780
-
781
- @imgly/plugin-ai-generation-web/dist/index.mjs:
782
- (*! Bundled license information:
783
-
784
- @imgly/plugin-utils/dist/index.mjs:
785
- (*! Bundled license information:
786
-
787
- lodash-es/lodash.js:
788
- (**
789
- * @license
790
- * Lodash (Custom Build) <https://lodash.com/>
791
- * Build: `lodash modularize exports="es" -o ./`
792
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
793
- * Released under MIT license <https://lodash.com/license>
794
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
795
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
796
- *)
797
- *)
798
- *)
799
-
800
- @imgly/plugin-utils/dist/index.mjs:
801
- (*! Bundled license information:
802
-
803
- lodash-es/lodash.js:
804
- (**
805
- * @license
806
- * Lodash (Custom Build) <https://lodash.com/>
807
- * Build: `lodash modularize exports="es" -o ./`
808
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
809
- * Released under MIT license <https://lodash.com/license>
810
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
811
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
812
- *)
813
- *)
814
- *)
815
-
816
- @imgly/plugin-ai-text-generation-web/dist/index.mjs:
817
- (*! Bundled license information:
818
-
819
- @imgly/plugin-ai-generation-web/dist/index.mjs:
820
- (*! Bundled license information:
821
-
822
- @imgly/plugin-utils/dist/index.mjs:
823
- (*! Bundled license information:
824
-
825
- lodash-es/lodash.js:
826
- (**
827
- * @license
828
- * Lodash (Custom Build) <https://lodash.com/>
829
- * Build: `lodash modularize exports="es" -o ./`
830
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
831
- * Released under MIT license <https://lodash.com/license>
832
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
833
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
834
- *)
835
- *)
836
- *)
837
-
838
- @imgly/plugin-utils/dist/index.mjs:
839
- (*! Bundled license information:
840
-
841
- lodash-es/lodash.js:
842
- (**
843
- * @license
844
- * Lodash (Custom Build) <https://lodash.com/>
845
- * Build: `lodash modularize exports="es" -o ./`
846
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
847
- * Released under MIT license <https://lodash.com/license>
848
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
849
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
850
- *)
851
- *)
852
- *)
853
-
854
- @imgly/plugin-ai-sticker-generation-web/dist/index.mjs:
855
- (*! Bundled license information:
856
-
857
- @imgly/plugin-ai-generation-web/dist/index.mjs:
858
- (*! Bundled license information:
859
-
860
- @imgly/plugin-utils/dist/index.mjs:
861
- (*! Bundled license information:
862
-
863
- lodash-es/lodash.js:
864
- (**
865
- * @license
866
- * Lodash (Custom Build) <https://lodash.com/>
867
- * Build: `lodash modularize exports="es" -o ./`
868
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
869
- * Released under MIT license <https://lodash.com/license>
870
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
871
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
872
- *)
873
- *)
874
- *)
875
-
876
- @imgly/plugin-utils/dist/index.mjs:
877
- (*! Bundled license information:
878
-
879
- lodash-es/lodash.js:
880
- (**
881
- * @license
882
- * Lodash (Custom Build) <https://lodash.com/>
883
- * Build: `lodash modularize exports="es" -o ./`
884
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
885
- * Released under MIT license <https://lodash.com/license>
886
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
887
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
888
- *)
889
- *)
890
- *)
668
+ lodash-es/lodash.js:
669
+ (**
670
+ * @license
671
+ * Lodash (Custom Build) <https://lodash.com/>
672
+ * Build: `lodash modularize exports="es" -o ./`
673
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
674
+ * Released under MIT license <https://lodash.com/license>
675
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
676
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
677
+ *)
891
678
  */
892
679
  //# sourceMappingURL=index.mjs.map