@imgly/plugin-ai-apps-web 0.2.11 → 0.2.12

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/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.12] - 2025-11-21
6
+
5
7
  ## [0.2.11] - 2025-11-21
6
8
 
7
9
  ### New Features
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
- `,lv=av,sv=typeof global=="object"&&global&&global.Object===Object&&global,cc=sv,uv=typeof self=="object"&&self&&self.Object===Object&&self,cv=cc||uv||Function("return this")(),J=cv,dv=J.Symbol,at=dv,dc=Object.prototype,pv=dc.hasOwnProperty,gv=dc.toString,Sr=at?at.toStringTag:void 0;function fv(e){var t=pv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=gv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var yv=fv,mv=Object.prototype,bv=mv.toString;function hv(e){return bv.call(e)}var vv=hv,wv="[object Null]",kv="[object Undefined]",yu=at?at.toStringTag:void 0;function xv(e){return e==null?e===void 0?kv:wv:yu&&yu in Object(e)?yv(e):vv(e)}var Gr=xv;function Iv(e){return e!=null&&typeof e=="object"}var ma=Iv,gJ=Array.isArray;function Cv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var pc=Cv,Av="[object AsyncFunction]",Mv="[object Function]",jv="[object GeneratorFunction]",Sv="[object Proxy]";function $v(e){if(!pc(e))return!1;var t=Gr(e);return t==Mv||t==jv||t==Av||t==Sv}var _v=$v,Ev=J["__core-js_shared__"],Qo=Ev,mu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tv(e){return!!mu&&mu in e}var Lv=Tv,Ov=Function.prototype,Nv=Ov.toString;function Dv(e){if(e!=null){try{return Nv.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Dv,Pv=/[\\^$.*+?()[\]{}|]/g,zv=/^\[object .+?Constructor\]$/,Uv=Function.prototype,Rv=Object.prototype,Fv=Uv.toString,Vv=Rv.hasOwnProperty,Bv=RegExp("^"+Fv.call(Vv).replace(Pv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qv(e){if(!pc(e)||Lv(e))return!1;var t=_v(e)?Bv:zv;return t.test(Ee(e))}var Gv=qv;function Yv(e,t){return e?.[t]}var Hv=Yv;function Zv(e,t){var r=Hv(e,t);return Gv(r)?r:void 0}var dt=Zv,Qv=dt(J,"WeakMap"),aa=Qv;function Wv(e,t){return e===t||e!==e&&t!==t}var Kv=Wv,Jv=9007199254740991;function Xv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jv}var e8=Xv,fJ=Object.prototype,t8="[object Arguments]";function r8(e){return ma(e)&&Gr(e)==t8}var bu=r8,gc=Object.prototype,i8=gc.hasOwnProperty,n8=gc.propertyIsEnumerable,yJ=bu(function(){return arguments}())?bu:function(e){return ma(e)&&i8.call(e,"callee")&&!n8.call(e,"callee")},fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=fc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=hu&&hu.exports===fc,vu=o8?J.Buffer:void 0,mJ=vu?vu.isBuffer:void 0,a8="[object Arguments]",l8="[object Array]",s8="[object Boolean]",u8="[object Date]",c8="[object Error]",d8="[object Function]",p8="[object Map]",g8="[object Number]",f8="[object Object]",y8="[object RegExp]",m8="[object Set]",b8="[object String]",h8="[object WeakMap]",v8="[object ArrayBuffer]",w8="[object DataView]",k8="[object Float32Array]",x8="[object Float64Array]",I8="[object Int8Array]",C8="[object Int16Array]",A8="[object Int32Array]",M8="[object Uint8Array]",j8="[object Uint8ClampedArray]",S8="[object Uint16Array]",$8="[object Uint32Array]",N={};N[k8]=N[x8]=N[I8]=N[C8]=N[A8]=N[M8]=N[j8]=N[S8]=N[$8]=!0;N[a8]=N[l8]=N[v8]=N[s8]=N[w8]=N[u8]=N[c8]=N[d8]=N[p8]=N[g8]=N[f8]=N[y8]=N[m8]=N[b8]=N[h8]=!1;function _8(e){return ma(e)&&e8(e.length)&&!!N[Gr(e)]}var E8=_8;function T8(e){return function(t){return e(t)}}var L8=T8,yc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nr=yc&&typeof module=="object"&&module&&!module.nodeType&&module,O8=Nr&&Nr.exports===yc,Wo=O8&&cc.process,N8=function(){try{var e=Nr&&Nr.require&&Nr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),wu=N8,ku=wu&&wu.isTypedArray,bJ=ku?L8(ku):E8,D8=Object.prototype,hJ=D8.hasOwnProperty;function P8(e,t){return function(r){return e(t(r))}}var z8=P8,vJ=z8(Object.keys,Object),U8=Object.prototype,wJ=U8.hasOwnProperty,R8=dt(Object,"create"),zr=R8;function F8(){this.__data__=zr?zr(null):{},this.size=0}var V8=F8;function B8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var q8=B8,G8="__lodash_hash_undefined__",Y8=Object.prototype,H8=Y8.hasOwnProperty;function Z8(e){var t=this.__data__;if(zr){var r=t[e];return r===G8?void 0:r}return H8.call(t,e)?t[e]:void 0}var Q8=Z8,W8=Object.prototype,K8=W8.hasOwnProperty;function J8(e){var t=this.__data__;return zr?t[e]!==void 0:K8.call(t,e)}var X8=J8,e7="__lodash_hash_undefined__";function t7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?e7:t,this}var r7=t7;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=V8;pt.prototype.delete=q8;pt.prototype.get=Q8;pt.prototype.has=X8;pt.prototype.set=r7;var xu=pt;function i7(){this.__data__=[],this.size=0}var n7=i7;function o7(e,t){for(var r=e.length;r--;)if(Kv(e[r][0],t))return r;return-1}var Ln=o7,a7=Array.prototype,l7=a7.splice;function s7(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():l7.call(t,r,1),--this.size,!0}var u7=s7;function c7(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var d7=c7;function p7(e){return Ln(this.__data__,e)>-1}var g7=p7;function f7(e,t){var r=this.__data__,i=Ln(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var y7=f7;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=n7;gt.prototype.delete=u7;gt.prototype.get=d7;gt.prototype.has=g7;gt.prototype.set=y7;var On=gt,m7=dt(J,"Map"),Ur=m7;function b7(){this.size=0,this.__data__={hash:new xu,map:new(Ur||On),string:new xu}}var h7=b7;function v7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var w7=v7;function k7(e,t){var r=e.__data__;return w7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=k7;function x7(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var I7=x7;function C7(e){return Nn(this,e).get(e)}var A7=C7;function M7(e){return Nn(this,e).has(e)}var j7=M7;function S7(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $7=S7;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=h7;ft.prototype.delete=I7;ft.prototype.get=A7;ft.prototype.has=j7;ft.prototype.set=$7;var mc=ft;function _7(){this.__data__=new On,this.size=0}var E7=_7;function T7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var L7=T7;function O7(e){return this.__data__.get(e)}var N7=O7;function D7(e){return this.__data__.has(e)}var P7=D7,z7=200;function U7(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<z7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new mc(i)}return r.set(e,t),this.size=r.size,this}var R7=U7;function Yr(e){var t=this.__data__=new On(e);this.size=t.size}Yr.prototype.clear=E7;Yr.prototype.delete=L7;Yr.prototype.get=N7;Yr.prototype.has=P7;Yr.prototype.set=R7;var F7=Object.prototype,kJ=F7.propertyIsEnumerable,V7=dt(J,"DataView"),la=V7,B7=dt(J,"Promise"),sa=B7,q7=dt(J,"Set"),ua=q7,Iu="[object Map]",G7="[object Object]",Cu="[object Promise]",Au="[object Set]",Mu="[object WeakMap]",ju="[object DataView]",Y7=Ee(la),H7=Ee(Ur),Z7=Ee(sa),Q7=Ee(ua),W7=Ee(aa),it=Gr;(la&&it(new la(new ArrayBuffer(1)))!=ju||Ur&&it(new Ur)!=Iu||sa&&it(sa.resolve())!=Cu||ua&&it(new ua)!=Au||aa&&it(new aa)!=Mu)&&(it=function(e){var t=Gr(e),r=t==G7?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case Y7:return ju;case H7:return Iu;case Z7:return Cu;case Q7:return Au;case W7:return Mu}return t});var xJ=J.Uint8Array,K7="__lodash_hash_undefined__";function J7(e){return this.__data__.set(e,K7),this}var X7=J7;function e6(e){return this.__data__.has(e)}var t6=e6;function ca(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new mc;++t<r;)this.add(e[t])}ca.prototype.add=ca.prototype.push=X7;ca.prototype.has=t6;var Su=at?at.prototype:void 0,IJ=Su?Su.valueOf:void 0,r6=Object.prototype,CJ=r6.hasOwnProperty,i6=Object.prototype,AJ=i6.hasOwnProperty,MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),SJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function n6(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 yt(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 n6(i,t)}function o6(e){return e==null?[]:Array.isArray(e)?e:[e]}var $u=o6;function a6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function l6(e){return typeof e?.translate=="function"}function s6(e,t,r){return e&&a6(e)&&l6(e.i18n)?e.i18n.translate(t):r}var Lr="@imgly/plugin-ai-image-generation-web",u6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Dn="editImage",le=`ly.img.${Dn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function kn(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 c6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${_u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${_u}`,enable:qr(),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:kn(l,"prompt"),placeholder:kn(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:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await yt(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:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),d6=c6,Pn="swapBackground",se=`ly.img.${Pn}`,Eu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function In(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 p6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Eu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${Eu}`,enable:qr(),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:In(l,"prompt"),placeholder:In(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:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await yt(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:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),g6=p6,zn="styleTransfer",$r=`ly.img.${zn}`,f6=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Tu(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 y6=[{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."}],m6=({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:`${f6}`,enable:qr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Tu(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:()=>{y6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Tu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await yt(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"})}}})})}})}})}})}}),b6=m6,Un="artistTransfer",_r=`ly.img.${Un}`,h6=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Lu(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 v6=[{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."}],w6=({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:`${h6}`,enable:qr(),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:()=>{v6.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 yt(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"})}}})})}})}})}})}}),k6=w6,Rn="createVariant",ue=`ly.img.${Rn}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function An(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 x6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ou}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{if(!qr()(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:An(l,"prompt"),placeholder:An(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:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await yt(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:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),I6=x6,Fn="combineImages",ce=`ly.img.${Fn}`,Nu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Ko=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Mn(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 C6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Ko}.apply`]:"Combine",[`${Ko}`]:"Combine Images...",[`${Ko}.prompt`]:"Image Combination Instructions",[`${Nu}.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:`${Nu}`,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:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>yt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:Mn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=C6,Vn="remixPage",Du=`ly.img.${Vn}`,M6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,j6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function S6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var $6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${j6}`]:"Turn Page into Image"}}),{id:Du,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${M6}`,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(`${Du}.button`,{label:S6(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"})}}})}}),_6=$6,Bn="remixPageWithPrompt",de=`ly.img.${Bn}`,Pu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Jo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var E6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Jo}`]:"Remix Page...",[`${Jo}.prompt`]:"Remix Page Prompt",[`${Pu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Jo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Pu}`,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:jn(l,"prompt"),placeholder:jn(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:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),T6=E6,pe="ly.img.ai.image-generation";function L6(e){return{async initialize({cesdk:t}){if(t==null)return;I9(t,Lr,"0.2.11"),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=pa.get(),i=`${Lr}.action.label`;t.ui.addIconSet(ov,lv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Lr,pluginId:Lr,label:s6(t,i,"Generate Image"),meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});O6(e),r.register(d6({cesdk:t})),r.register(g6({cesdk:t})),r.register(b6({cesdk:t})),r.register(k6({cesdk:t})),r.register(I6({cesdk:t})),r.register(A6({cesdk:t})),r.register(_6({cesdk:t})),r.register(T6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all($u(a).map(d=>d({cesdk:t}))),c=await Promise.all($u(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await O3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await nv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:u6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Tn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,l.panel.builderRenderFunction),A9({cesdk:t,panelId:pe})):n()}}}function O6(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 N6=L6,D6=e=>({name:Lr,version:"0.2.11",...N6(e)}),bc=D6;var P6=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 z6=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")}},U6=typeof global=="object"&&global&&global.Object===Object&&global,ed=U6,R6=typeof self=="object"&&self&&self.Object===Object&&self,F6=ed||R6||Function("return this")(),X=F6,V6=X.Symbol,vt=V6,td=Object.prototype,B6=td.hasOwnProperty,q6=td.toString,Hr=vt?vt.toStringTag:void 0;function G6(e){var t=B6.call(e,Hr),r=e[Hr];try{e[Hr]=void 0;var i=!0}catch{}var n=q6.call(e);return i&&(t?e[Hr]=r:delete e[Hr]),n}var Y6=G6,H6=Object.prototype,Z6=H6.toString;function Q6(e){return Z6.call(e)}var W6=Q6,K6="[object Null]",J6="[object Undefined]",hc=vt?vt.toStringTag:void 0;function X6(e){return e==null?e===void 0?J6:K6:hc&&hc in Object(e)?Y6(e):W6(e)}var oi=X6;function ew(e){return e!=null&&typeof e=="object"}var Na=ew,LJ=Array.isArray;function tw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var rd=tw,rw="[object AsyncFunction]",iw="[object Function]",nw="[object GeneratorFunction]",ow="[object Proxy]";function aw(e){if(!rd(e))return!1;var t=oi(e);return t==iw||t==nw||t==rw||t==ow}var lw=aw,sw=X["__core-js_shared__"],ba=sw,vc=function(){var e=/[^.]+$/.exec(ba&&ba.keys&&ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uw(e){return!!vc&&vc in e}var cw=uw,dw=Function.prototype,pw=dw.toString;function gw(e){if(e!=null){try{return pw.call(e)}catch{}try{return e+""}catch{}}return""}var Te=gw,fw=/[\\^$.*+?()[\]{}|]/g,yw=/^\[object .+?Constructor\]$/,mw=Function.prototype,bw=Object.prototype,hw=mw.toString,vw=bw.hasOwnProperty,ww=RegExp("^"+hw.call(vw).replace(fw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kw(e){if(!rd(e)||cw(e))return!1;var t=lw(e)?ww:yw;return t.test(Te(e))}var xw=kw;function Iw(e,t){return e?.[t]}var Cw=Iw;function Aw(e,t){var r=Cw(e,t);return xw(r)?r:void 0}var kt=Aw,Mw=kt(X,"WeakMap"),Ca=Mw;function jw(e,t){return e===t||e!==e&&t!==t}var Sw=jw,$w=9007199254740991;function _w(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$w}var Ew=_w,OJ=Object.prototype,Tw="[object Arguments]";function Lw(e){return Na(e)&&oi(e)==Tw}var wc=Lw,id=Object.prototype,Ow=id.hasOwnProperty,Nw=id.propertyIsEnumerable,NJ=wc(function(){return arguments}())?wc:function(e){return Na(e)&&Ow.call(e,"callee")&&!Nw.call(e,"callee")},nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kc=nd&&typeof module=="object"&&module&&!module.nodeType&&module,Dw=kc&&kc.exports===nd,xc=Dw?X.Buffer:void 0,DJ=xc?xc.isBuffer:void 0,Pw="[object Arguments]",zw="[object Array]",Uw="[object Boolean]",Rw="[object Date]",Fw="[object Error]",Vw="[object Function]",Bw="[object Map]",qw="[object Number]",Gw="[object Object]",Yw="[object RegExp]",Hw="[object Set]",Zw="[object String]",Qw="[object WeakMap]",Ww="[object ArrayBuffer]",Kw="[object DataView]",Jw="[object Float32Array]",Xw="[object Float64Array]",ek="[object Int8Array]",tk="[object Int16Array]",rk="[object Int32Array]",ik="[object Uint8Array]",nk="[object Uint8ClampedArray]",ok="[object Uint16Array]",ak="[object Uint32Array]",D={};D[Jw]=D[Xw]=D[ek]=D[tk]=D[rk]=D[ik]=D[nk]=D[ok]=D[ak]=!0;D[Pw]=D[zw]=D[Ww]=D[Uw]=D[Kw]=D[Rw]=D[Fw]=D[Vw]=D[Bw]=D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=!1;function lk(e){return Na(e)&&Ew(e.length)&&!!D[oi(e)]}var sk=lk;function uk(e){return function(t){return e(t)}}var ck=uk,od=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xr=od&&typeof module=="object"&&module&&!module.nodeType&&module,dk=Xr&&Xr.exports===od,ha=dk&&ed.process,pk=function(){try{var e=Xr&&Xr.require&&Xr.require("util").types;return e||ha&&ha.binding&&ha.binding("util")}catch{}}(),Ic=pk,Cc=Ic&&Ic.isTypedArray,PJ=Cc?ck(Cc):sk,gk=Object.prototype,zJ=gk.hasOwnProperty;function fk(e,t){return function(r){return e(t(r))}}var yk=fk,UJ=yk(Object.keys,Object),mk=Object.prototype,RJ=mk.hasOwnProperty,bk=kt(Object,"create"),ti=bk;function hk(){this.__data__=ti?ti(null):{},this.size=0}var vk=hk;function wk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kk=wk,xk="__lodash_hash_undefined__",Ik=Object.prototype,Ck=Ik.hasOwnProperty;function Ak(e){var t=this.__data__;if(ti){var r=t[e];return r===xk?void 0:r}return Ck.call(t,e)?t[e]:void 0}var Mk=Ak,jk=Object.prototype,Sk=jk.hasOwnProperty;function $k(e){var t=this.__data__;return ti?t[e]!==void 0:Sk.call(t,e)}var _k=$k,Ek="__lodash_hash_undefined__";function Tk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?Ek:t,this}var Lk=Tk;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=vk;xt.prototype.delete=kk;xt.prototype.get=Mk;xt.prototype.has=_k;xt.prototype.set=Lk;var Ac=xt;function Ok(){this.__data__=[],this.size=0}var Nk=Ok;function Dk(e,t){for(var r=e.length;r--;)if(Sw(e[r][0],t))return r;return-1}var Gn=Dk,Pk=Array.prototype,zk=Pk.splice;function Uk(e){var t=this.__data__,r=Gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zk.call(t,r,1),--this.size,!0}var Rk=Uk;function Fk(e){var t=this.__data__,r=Gn(t,e);return r<0?void 0:t[r][1]}var Vk=Fk;function Bk(e){return Gn(this.__data__,e)>-1}var qk=Bk;function Gk(e,t){var r=this.__data__,i=Gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Yk=Gk;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=Nk;It.prototype.delete=Rk;It.prototype.get=Vk;It.prototype.has=qk;It.prototype.set=Yk;var Yn=It,Hk=kt(X,"Map"),ri=Hk;function Zk(){this.size=0,this.__data__={hash:new Ac,map:new(ri||Yn),string:new Ac}}var Qk=Zk;function Wk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Kk=Wk;function Jk(e,t){var r=e.__data__;return Kk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Hn=Jk;function Xk(e){var t=Hn(this,e).delete(e);return this.size-=t?1:0,t}var ex=Xk;function tx(e){return Hn(this,e).get(e)}var rx=tx;function ix(e){return Hn(this,e).has(e)}var nx=ix;function ox(e,t){var r=Hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ax=ox;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=Qk;Ct.prototype.delete=ex;Ct.prototype.get=rx;Ct.prototype.has=nx;Ct.prototype.set=ax;var ad=Ct;function lx(){this.__data__=new Yn,this.size=0}var sx=lx;function ux(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cx=ux;function dx(e){return this.__data__.get(e)}var px=dx;function gx(e){return this.__data__.has(e)}var fx=gx,yx=200;function mx(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ri||i.length<yx-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 bx=mx;function ai(e){var t=this.__data__=new Yn(e);this.size=t.size}ai.prototype.clear=sx;ai.prototype.delete=cx;ai.prototype.get=px;ai.prototype.has=fx;ai.prototype.set=bx;var hx=Object.prototype,FJ=hx.propertyIsEnumerable,vx=kt(X,"DataView"),Aa=vx,wx=kt(X,"Promise"),Ma=wx,kx=kt(X,"Set"),ja=kx,Mc="[object Map]",xx="[object Object]",jc="[object Promise]",Sc="[object Set]",$c="[object WeakMap]",_c="[object DataView]",Ix=Te(Aa),Cx=Te(ri),Ax=Te(Ma),Mx=Te(ja),jx=Te(Ca),mt=oi;(Aa&&mt(new Aa(new ArrayBuffer(1)))!=_c||ri&&mt(new ri)!=Mc||Ma&&mt(Ma.resolve())!=jc||ja&&mt(new ja)!=Sc||Ca&&mt(new Ca)!=$c)&&(mt=function(e){var t=oi(e),r=t==xx?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case Ix:return _c;case Cx:return Mc;case Ax:return jc;case Mx:return Sc;case jx:return $c}return t});var VJ=X.Uint8Array,Sx="__lodash_hash_undefined__";function $x(e){return this.__data__.set(e,Sx),this}var _x=$x;function Ex(e){return this.__data__.has(e)}var Tx=Ex;function Sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ad;++t<r;)this.add(e[t])}Sa.prototype.add=Sa.prototype.push=_x;Sa.prototype.has=Tx;var Ec=vt?vt.prototype:void 0,BJ=Ec?Ec.valueOf:void 0,Lx=Object.prototype,qJ=Lx.hasOwnProperty,Ox=Object.prototype,GJ=Ox.hasOwnProperty,YJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Nx(e,t){let r=await ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Dx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ld(i,t)}function Px(e){return e!==void 0}var zx=Px;function li(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var qn=class sd{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 sd),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))}},Ux=class ud{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ud),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 Rx(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 Fx({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 Vx=Fx,va="ly.img.ai.temp";async function Bx(e,t){return e.engine.asset.findAllSources().includes(va)||e.engine.asset.addLocalSource(va),e.engine.asset.apply(va,t)}function qx(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 cd(){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 Gx(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 Yx(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 Da(e){return e instanceof Error&&e.name==="AbortError"}function Hx(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Zx(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
+ `,lv=av,sv=typeof global=="object"&&global&&global.Object===Object&&global,cc=sv,uv=typeof self=="object"&&self&&self.Object===Object&&self,cv=cc||uv||Function("return this")(),J=cv,dv=J.Symbol,at=dv,dc=Object.prototype,pv=dc.hasOwnProperty,gv=dc.toString,Sr=at?at.toStringTag:void 0;function fv(e){var t=pv.call(e,Sr),r=e[Sr];try{e[Sr]=void 0;var i=!0}catch{}var n=gv.call(e);return i&&(t?e[Sr]=r:delete e[Sr]),n}var yv=fv,mv=Object.prototype,bv=mv.toString;function hv(e){return bv.call(e)}var vv=hv,wv="[object Null]",kv="[object Undefined]",yu=at?at.toStringTag:void 0;function xv(e){return e==null?e===void 0?kv:wv:yu&&yu in Object(e)?yv(e):vv(e)}var Gr=xv;function Iv(e){return e!=null&&typeof e=="object"}var ma=Iv,gJ=Array.isArray;function Cv(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var pc=Cv,Av="[object AsyncFunction]",Mv="[object Function]",jv="[object GeneratorFunction]",Sv="[object Proxy]";function $v(e){if(!pc(e))return!1;var t=Gr(e);return t==Mv||t==jv||t==Av||t==Sv}var _v=$v,Ev=J["__core-js_shared__"],Qo=Ev,mu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tv(e){return!!mu&&mu in e}var Lv=Tv,Ov=Function.prototype,Nv=Ov.toString;function Dv(e){if(e!=null){try{return Nv.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=Dv,Pv=/[\\^$.*+?()[\]{}|]/g,zv=/^\[object .+?Constructor\]$/,Uv=Function.prototype,Rv=Object.prototype,Fv=Uv.toString,Vv=Rv.hasOwnProperty,Bv=RegExp("^"+Fv.call(Vv).replace(Pv,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qv(e){if(!pc(e)||Lv(e))return!1;var t=_v(e)?Bv:zv;return t.test(Ee(e))}var Gv=qv;function Yv(e,t){return e?.[t]}var Hv=Yv;function Zv(e,t){var r=Hv(e,t);return Gv(r)?r:void 0}var dt=Zv,Qv=dt(J,"WeakMap"),aa=Qv;function Wv(e,t){return e===t||e!==e&&t!==t}var Kv=Wv,Jv=9007199254740991;function Xv(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jv}var e8=Xv,fJ=Object.prototype,t8="[object Arguments]";function r8(e){return ma(e)&&Gr(e)==t8}var bu=r8,gc=Object.prototype,i8=gc.hasOwnProperty,n8=gc.propertyIsEnumerable,yJ=bu(function(){return arguments}())?bu:function(e){return ma(e)&&i8.call(e,"callee")&&!n8.call(e,"callee")},fc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hu=fc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=hu&&hu.exports===fc,vu=o8?J.Buffer:void 0,mJ=vu?vu.isBuffer:void 0,a8="[object Arguments]",l8="[object Array]",s8="[object Boolean]",u8="[object Date]",c8="[object Error]",d8="[object Function]",p8="[object Map]",g8="[object Number]",f8="[object Object]",y8="[object RegExp]",m8="[object Set]",b8="[object String]",h8="[object WeakMap]",v8="[object ArrayBuffer]",w8="[object DataView]",k8="[object Float32Array]",x8="[object Float64Array]",I8="[object Int8Array]",C8="[object Int16Array]",A8="[object Int32Array]",M8="[object Uint8Array]",j8="[object Uint8ClampedArray]",S8="[object Uint16Array]",$8="[object Uint32Array]",N={};N[k8]=N[x8]=N[I8]=N[C8]=N[A8]=N[M8]=N[j8]=N[S8]=N[$8]=!0;N[a8]=N[l8]=N[v8]=N[s8]=N[w8]=N[u8]=N[c8]=N[d8]=N[p8]=N[g8]=N[f8]=N[y8]=N[m8]=N[b8]=N[h8]=!1;function _8(e){return ma(e)&&e8(e.length)&&!!N[Gr(e)]}var E8=_8;function T8(e){return function(t){return e(t)}}var L8=T8,yc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nr=yc&&typeof module=="object"&&module&&!module.nodeType&&module,O8=Nr&&Nr.exports===yc,Wo=O8&&cc.process,N8=function(){try{var e=Nr&&Nr.require&&Nr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),wu=N8,ku=wu&&wu.isTypedArray,bJ=ku?L8(ku):E8,D8=Object.prototype,hJ=D8.hasOwnProperty;function P8(e,t){return function(r){return e(t(r))}}var z8=P8,vJ=z8(Object.keys,Object),U8=Object.prototype,wJ=U8.hasOwnProperty,R8=dt(Object,"create"),zr=R8;function F8(){this.__data__=zr?zr(null):{},this.size=0}var V8=F8;function B8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var q8=B8,G8="__lodash_hash_undefined__",Y8=Object.prototype,H8=Y8.hasOwnProperty;function Z8(e){var t=this.__data__;if(zr){var r=t[e];return r===G8?void 0:r}return H8.call(t,e)?t[e]:void 0}var Q8=Z8,W8=Object.prototype,K8=W8.hasOwnProperty;function J8(e){var t=this.__data__;return zr?t[e]!==void 0:K8.call(t,e)}var X8=J8,e7="__lodash_hash_undefined__";function t7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?e7:t,this}var r7=t7;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=V8;pt.prototype.delete=q8;pt.prototype.get=Q8;pt.prototype.has=X8;pt.prototype.set=r7;var xu=pt;function i7(){this.__data__=[],this.size=0}var n7=i7;function o7(e,t){for(var r=e.length;r--;)if(Kv(e[r][0],t))return r;return-1}var Ln=o7,a7=Array.prototype,l7=a7.splice;function s7(e){var t=this.__data__,r=Ln(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():l7.call(t,r,1),--this.size,!0}var u7=s7;function c7(e){var t=this.__data__,r=Ln(t,e);return r<0?void 0:t[r][1]}var d7=c7;function p7(e){return Ln(this.__data__,e)>-1}var g7=p7;function f7(e,t){var r=this.__data__,i=Ln(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var y7=f7;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=n7;gt.prototype.delete=u7;gt.prototype.get=d7;gt.prototype.has=g7;gt.prototype.set=y7;var On=gt,m7=dt(J,"Map"),Ur=m7;function b7(){this.size=0,this.__data__={hash:new xu,map:new(Ur||On),string:new xu}}var h7=b7;function v7(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var w7=v7;function k7(e,t){var r=e.__data__;return w7(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=k7;function x7(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var I7=x7;function C7(e){return Nn(this,e).get(e)}var A7=C7;function M7(e){return Nn(this,e).has(e)}var j7=M7;function S7(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $7=S7;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=h7;ft.prototype.delete=I7;ft.prototype.get=A7;ft.prototype.has=j7;ft.prototype.set=$7;var mc=ft;function _7(){this.__data__=new On,this.size=0}var E7=_7;function T7(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var L7=T7;function O7(e){return this.__data__.get(e)}var N7=O7;function D7(e){return this.__data__.has(e)}var P7=D7,z7=200;function U7(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<z7-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new mc(i)}return r.set(e,t),this.size=r.size,this}var R7=U7;function Yr(e){var t=this.__data__=new On(e);this.size=t.size}Yr.prototype.clear=E7;Yr.prototype.delete=L7;Yr.prototype.get=N7;Yr.prototype.has=P7;Yr.prototype.set=R7;var F7=Object.prototype,kJ=F7.propertyIsEnumerable,V7=dt(J,"DataView"),la=V7,B7=dt(J,"Promise"),sa=B7,q7=dt(J,"Set"),ua=q7,Iu="[object Map]",G7="[object Object]",Cu="[object Promise]",Au="[object Set]",Mu="[object WeakMap]",ju="[object DataView]",Y7=Ee(la),H7=Ee(Ur),Z7=Ee(sa),Q7=Ee(ua),W7=Ee(aa),it=Gr;(la&&it(new la(new ArrayBuffer(1)))!=ju||Ur&&it(new Ur)!=Iu||sa&&it(sa.resolve())!=Cu||ua&&it(new ua)!=Au||aa&&it(new aa)!=Mu)&&(it=function(e){var t=Gr(e),r=t==G7?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case Y7:return ju;case H7:return Iu;case Z7:return Cu;case Q7:return Au;case W7:return Mu}return t});var xJ=J.Uint8Array,K7="__lodash_hash_undefined__";function J7(e){return this.__data__.set(e,K7),this}var X7=J7;function e6(e){return this.__data__.has(e)}var t6=e6;function ca(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new mc;++t<r;)this.add(e[t])}ca.prototype.add=ca.prototype.push=X7;ca.prototype.has=t6;var Su=at?at.prototype:void 0,IJ=Su?Su.valueOf:void 0,r6=Object.prototype,CJ=r6.hasOwnProperty,i6=Object.prototype,AJ=i6.hasOwnProperty,MJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),SJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function n6(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 yt(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 n6(i,t)}function o6(e){return e==null?[]:Array.isArray(e)?e:[e]}var $u=o6;function a6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function l6(e){return typeof e?.translate=="function"}function s6(e,t,r){return e&&a6(e)&&l6(e.i18n)?e.i18n.translate(t):r}var Lr="@imgly/plugin-ai-image-generation-web",u6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Dn="editImage",le=`ly.img.${Dn}`,_u=`ly.img.plugin-ai-image-generation-web.quickAction.${Dn}`,wn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Dn}`;function kn(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 c6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${_u}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:le,type:"quick",kind:"image",label:`${_u}`,enable:qr(),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:kn(l,"prompt"),placeholder:kn(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:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await yt(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:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),d6=c6,Pn="swapBackground",se=`ly.img.${Pn}`,Eu=`ly.img.plugin-ai-image-generation-web.quickAction.${Pn}`,xn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Pn}`;function In(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 p6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Eu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:se,type:"quick",kind:"image",label:`${Eu}`,enable:qr(),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:In(l,"prompt"),placeholder:In(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:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await yt(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:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),g6=p6,zn="styleTransfer",$r=`ly.img.${zn}`,f6=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,Z=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Tu(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 y6=[{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."}],m6=({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:`${f6}`,enable:qr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${$r}.popover`,{label:Tu(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:()=>{y6.forEach(s=>{t.Button(`${$r}.popover.menu.${s.id}`,{label:Tu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await yt(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"})}}})})}})}})}})}}),b6=m6,Un="artistTransfer",_r=`ly.img.${Un}`,h6=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Lu(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 v6=[{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."}],w6=({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:`${h6}`,enable:qr(),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:()=>{v6.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 yt(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"})}}})})}})}})}})}}),k6=w6,Rn="createVariant",ue=`ly.img.${Rn}`,Ou=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,Cn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function An(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 x6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ou}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:ue,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ou}`,enable:t=>{if(!qr()(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:An(l,"prompt"),placeholder:An(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:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),m=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(m).forEach(b=>{o.block.destroy(b)}),o.block.setSelected(p,!1),o.block.setSelected(m,!0);let f=o.block.getParent(m);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let b=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(b,v)*1;o.block.setPositionX(m,o.block.getPositionX(m)+k),o.block.setPositionY(m,o.block.getPositionY(m)+k)}let h=await yt(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:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),I6=x6,Fn="combineImages",ce=`ly.img.${Fn}`,Nu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,Ko=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Mn(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 C6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Ko}.apply`]:"Combine",[`${Ko}`]:"Combine Images...",[`${Ko}.prompt`]:"Image Combination Instructions",[`${Nu}.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:`${Nu}`,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:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let m=o.block.getParent(g);if(m==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(m),b=o.block.getHeight(m),v=.02*Math.min(h,b)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(x=>yt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:Mn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),A6=C6,Vn="remixPage",Du=`ly.img.${Vn}`,M6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,j6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function S6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var $6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${j6}`]:"Turn Page into Image"}}),{id:Du,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${M6}`,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(`${Du}.button`,{label:S6(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"})}}})}}),_6=$6,Bn="remixPageWithPrompt",de=`ly.img.${Bn}`,Pu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Jo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var E6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Jo}`]:"Remix Page...",[`${Jo}.prompt`]:"Remix Page Prompt",[`${Pu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Jo}.apply`]:"Remix"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Pu}`,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:jn(l,"prompt"),placeholder:jn(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:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),m=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(j=>{o.block.destroy(j)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),b=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),x=o.block.createShape("rect"),y=o.block.create("graphic");o.block.setShape(y,x),o.block.appendChild(f,y),o.block.setWidth(y,h),o.block.setHeight(y,b),o.block.setPositionX(y,v),o.block.setPositionY(y,k);let I=o.block.createFill("image");o.block.setFill(y,I),o.block.setString(I,"fill/image/imageFileURI",m),o.block.setSelected(y,!0),o.scene.zoomToBlock(y),await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),T6=E6,pe="ly.img.ai.image-generation";function L6(e){return{async initialize({cesdk:t}){if(t==null)return;I9(t,Lr,"0.2.12"),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=pa.get(),i=`${Lr}.action.label`;t.ui.addIconSet(ov,lv),t.i18n.setTranslations({en:{[`panel.${pe}`]:"Image Generation",[`${pe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Lr,pluginId:Lr,label:s6(t,i,"Generate Image"),meta:{panelId:pe},execute:()=>{t.ui.isPanelOpen(pe)?t.ui.closePanel(pe):t.ui.openPanel(pe)}});O6(e),r.register(d6({cesdk:t})),r.register(g6({cesdk:t})),r.register(b6({cesdk:t})),r.register(k6({cesdk:t})),r.register(I6({cesdk:t})),r.register(A6({cesdk:t})),r.register(_6({cesdk:t})),r.register(T6({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all($u(a).map(d=>d({cesdk:t}))),c=await Promise.all($u(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await O3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await nv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:u6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Tn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(pe,l.panel.builderRenderFunction),A9({cesdk:t,panelId:pe})):n()}}}function O6(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 N6=L6,D6=e=>({name:Lr,version:"0.2.12",...N6(e)}),bc=D6;var P6=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 z6=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")}},U6=typeof global=="object"&&global&&global.Object===Object&&global,ed=U6,R6=typeof self=="object"&&self&&self.Object===Object&&self,F6=ed||R6||Function("return this")(),X=F6,V6=X.Symbol,vt=V6,td=Object.prototype,B6=td.hasOwnProperty,q6=td.toString,Hr=vt?vt.toStringTag:void 0;function G6(e){var t=B6.call(e,Hr),r=e[Hr];try{e[Hr]=void 0;var i=!0}catch{}var n=q6.call(e);return i&&(t?e[Hr]=r:delete e[Hr]),n}var Y6=G6,H6=Object.prototype,Z6=H6.toString;function Q6(e){return Z6.call(e)}var W6=Q6,K6="[object Null]",J6="[object Undefined]",hc=vt?vt.toStringTag:void 0;function X6(e){return e==null?e===void 0?J6:K6:hc&&hc in Object(e)?Y6(e):W6(e)}var oi=X6;function ew(e){return e!=null&&typeof e=="object"}var Na=ew,LJ=Array.isArray;function tw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var rd=tw,rw="[object AsyncFunction]",iw="[object Function]",nw="[object GeneratorFunction]",ow="[object Proxy]";function aw(e){if(!rd(e))return!1;var t=oi(e);return t==iw||t==nw||t==rw||t==ow}var lw=aw,sw=X["__core-js_shared__"],ba=sw,vc=function(){var e=/[^.]+$/.exec(ba&&ba.keys&&ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uw(e){return!!vc&&vc in e}var cw=uw,dw=Function.prototype,pw=dw.toString;function gw(e){if(e!=null){try{return pw.call(e)}catch{}try{return e+""}catch{}}return""}var Te=gw,fw=/[\\^$.*+?()[\]{}|]/g,yw=/^\[object .+?Constructor\]$/,mw=Function.prototype,bw=Object.prototype,hw=mw.toString,vw=bw.hasOwnProperty,ww=RegExp("^"+hw.call(vw).replace(fw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kw(e){if(!rd(e)||cw(e))return!1;var t=lw(e)?ww:yw;return t.test(Te(e))}var xw=kw;function Iw(e,t){return e?.[t]}var Cw=Iw;function Aw(e,t){var r=Cw(e,t);return xw(r)?r:void 0}var kt=Aw,Mw=kt(X,"WeakMap"),Ca=Mw;function jw(e,t){return e===t||e!==e&&t!==t}var Sw=jw,$w=9007199254740991;function _w(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$w}var Ew=_w,OJ=Object.prototype,Tw="[object Arguments]";function Lw(e){return Na(e)&&oi(e)==Tw}var wc=Lw,id=Object.prototype,Ow=id.hasOwnProperty,Nw=id.propertyIsEnumerable,NJ=wc(function(){return arguments}())?wc:function(e){return Na(e)&&Ow.call(e,"callee")&&!Nw.call(e,"callee")},nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,kc=nd&&typeof module=="object"&&module&&!module.nodeType&&module,Dw=kc&&kc.exports===nd,xc=Dw?X.Buffer:void 0,DJ=xc?xc.isBuffer:void 0,Pw="[object Arguments]",zw="[object Array]",Uw="[object Boolean]",Rw="[object Date]",Fw="[object Error]",Vw="[object Function]",Bw="[object Map]",qw="[object Number]",Gw="[object Object]",Yw="[object RegExp]",Hw="[object Set]",Zw="[object String]",Qw="[object WeakMap]",Ww="[object ArrayBuffer]",Kw="[object DataView]",Jw="[object Float32Array]",Xw="[object Float64Array]",ek="[object Int8Array]",tk="[object Int16Array]",rk="[object Int32Array]",ik="[object Uint8Array]",nk="[object Uint8ClampedArray]",ok="[object Uint16Array]",ak="[object Uint32Array]",D={};D[Jw]=D[Xw]=D[ek]=D[tk]=D[rk]=D[ik]=D[nk]=D[ok]=D[ak]=!0;D[Pw]=D[zw]=D[Ww]=D[Uw]=D[Kw]=D[Rw]=D[Fw]=D[Vw]=D[Bw]=D[qw]=D[Gw]=D[Yw]=D[Hw]=D[Zw]=D[Qw]=!1;function lk(e){return Na(e)&&Ew(e.length)&&!!D[oi(e)]}var sk=lk;function uk(e){return function(t){return e(t)}}var ck=uk,od=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xr=od&&typeof module=="object"&&module&&!module.nodeType&&module,dk=Xr&&Xr.exports===od,ha=dk&&ed.process,pk=function(){try{var e=Xr&&Xr.require&&Xr.require("util").types;return e||ha&&ha.binding&&ha.binding("util")}catch{}}(),Ic=pk,Cc=Ic&&Ic.isTypedArray,PJ=Cc?ck(Cc):sk,gk=Object.prototype,zJ=gk.hasOwnProperty;function fk(e,t){return function(r){return e(t(r))}}var yk=fk,UJ=yk(Object.keys,Object),mk=Object.prototype,RJ=mk.hasOwnProperty,bk=kt(Object,"create"),ti=bk;function hk(){this.__data__=ti?ti(null):{},this.size=0}var vk=hk;function wk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kk=wk,xk="__lodash_hash_undefined__",Ik=Object.prototype,Ck=Ik.hasOwnProperty;function Ak(e){var t=this.__data__;if(ti){var r=t[e];return r===xk?void 0:r}return Ck.call(t,e)?t[e]:void 0}var Mk=Ak,jk=Object.prototype,Sk=jk.hasOwnProperty;function $k(e){var t=this.__data__;return ti?t[e]!==void 0:Sk.call(t,e)}var _k=$k,Ek="__lodash_hash_undefined__";function Tk(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ti&&t===void 0?Ek:t,this}var Lk=Tk;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=vk;xt.prototype.delete=kk;xt.prototype.get=Mk;xt.prototype.has=_k;xt.prototype.set=Lk;var Ac=xt;function Ok(){this.__data__=[],this.size=0}var Nk=Ok;function Dk(e,t){for(var r=e.length;r--;)if(Sw(e[r][0],t))return r;return-1}var Gn=Dk,Pk=Array.prototype,zk=Pk.splice;function Uk(e){var t=this.__data__,r=Gn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zk.call(t,r,1),--this.size,!0}var Rk=Uk;function Fk(e){var t=this.__data__,r=Gn(t,e);return r<0?void 0:t[r][1]}var Vk=Fk;function Bk(e){return Gn(this.__data__,e)>-1}var qk=Bk;function Gk(e,t){var r=this.__data__,i=Gn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Yk=Gk;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=Nk;It.prototype.delete=Rk;It.prototype.get=Vk;It.prototype.has=qk;It.prototype.set=Yk;var Yn=It,Hk=kt(X,"Map"),ri=Hk;function Zk(){this.size=0,this.__data__={hash:new Ac,map:new(ri||Yn),string:new Ac}}var Qk=Zk;function Wk(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Kk=Wk;function Jk(e,t){var r=e.__data__;return Kk(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Hn=Jk;function Xk(e){var t=Hn(this,e).delete(e);return this.size-=t?1:0,t}var ex=Xk;function tx(e){return Hn(this,e).get(e)}var rx=tx;function ix(e){return Hn(this,e).has(e)}var nx=ix;function ox(e,t){var r=Hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ax=ox;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=Qk;Ct.prototype.delete=ex;Ct.prototype.get=rx;Ct.prototype.has=nx;Ct.prototype.set=ax;var ad=Ct;function lx(){this.__data__=new Yn,this.size=0}var sx=lx;function ux(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cx=ux;function dx(e){return this.__data__.get(e)}var px=dx;function gx(e){return this.__data__.has(e)}var fx=gx,yx=200;function mx(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ri||i.length<yx-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 bx=mx;function ai(e){var t=this.__data__=new Yn(e);this.size=t.size}ai.prototype.clear=sx;ai.prototype.delete=cx;ai.prototype.get=px;ai.prototype.has=fx;ai.prototype.set=bx;var hx=Object.prototype,FJ=hx.propertyIsEnumerable,vx=kt(X,"DataView"),Aa=vx,wx=kt(X,"Promise"),Ma=wx,kx=kt(X,"Set"),ja=kx,Mc="[object Map]",xx="[object Object]",jc="[object Promise]",Sc="[object Set]",$c="[object WeakMap]",_c="[object DataView]",Ix=Te(Aa),Cx=Te(ri),Ax=Te(Ma),Mx=Te(ja),jx=Te(Ca),mt=oi;(Aa&&mt(new Aa(new ArrayBuffer(1)))!=_c||ri&&mt(new ri)!=Mc||Ma&&mt(Ma.resolve())!=jc||ja&&mt(new ja)!=Sc||Ca&&mt(new Ca)!=$c)&&(mt=function(e){var t=oi(e),r=t==xx?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case Ix:return _c;case Cx:return Mc;case Ax:return jc;case Mx:return Sc;case jx:return $c}return t});var VJ=X.Uint8Array,Sx="__lodash_hash_undefined__";function $x(e){return this.__data__.set(e,Sx),this}var _x=$x;function Ex(e){return this.__data__.has(e)}var Tx=Ex;function Sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ad;++t<r;)this.add(e[t])}Sa.prototype.add=Sa.prototype.push=_x;Sa.prototype.has=Tx;var Ec=vt?vt.prototype:void 0,BJ=Ec?Ec.valueOf:void 0,Lx=Object.prototype,qJ=Lx.hasOwnProperty,Ox=Object.prototype,GJ=Ox.hasOwnProperty,YJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Nx(e,t){let r=await ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function Dx(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ld(i,t)}function Px(e){return e!==void 0}var zx=Px;function li(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var qn=class sd{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 sd),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))}},Ux=class ud{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ud),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 Rx(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 Fx({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 Vx=Fx,va="ly.img.ai.temp";async function Bx(e,t){return e.engine.asset.findAllSources().includes(va)||e.engine.asset.addLocalSource(va),e.engine.asset.apply(va,t)}function qx(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 cd(){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 Gx(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 Yx(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 Da(e){return e instanceof Error&&e.name==="AbortError"}function Hx(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Zx(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 Qx(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 Wx=Qx;function Kx(){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 Jx=Kx;function Xx(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),eI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:qx(e)}))}function eI(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 Tc=Xx,tI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Pa=tI;function rI(e,t,r){switch(t){case"image":return iI(e,r[t]);case"video":return nI(e,r[t]);case"sticker":return oI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function iI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function nI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Pa,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function oI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Pa,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var aI=rI;async function lI(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 sI(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 uI(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 cI(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 dI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function sI(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 uI(e,t,r){let i=t.width,n=t.height,a=await Gx(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 cI(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 dI(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 dd=lI;function pI(e){switch(e.userFlow){case"placeholder":return fI(e);case"generation-only":return gI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function gI(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=cd(),c=await dd(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 fI(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=cd(),c=aI(s,a,o);if(i=await Bx(t,c),me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await dd(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)&&(Da(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 yI=pI;function za(e){return`${e}.generating`}function mI(e){return`${e}.abort`}function bI(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(mI(d),()=>{}),m=c.global(za(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await yI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Tc(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;hI(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(Da(y))return;Tc(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 hI(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 pd=bI;async function vI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(za(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return pd(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var wI=vI;function gd(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 Wr(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=gd(e,t.$ref),n={...Wr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Wr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Wr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Wr(e,t[n],r));return i}return t}function kI(e){return Wr(e,{...e})}function xI(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 II(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return CI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function CI(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=AI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function AI(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var fd=II;function be(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function yd(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 md(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?MI(e,c,r,i,n,a,o,s):bd(e,c,r,i,n,a,o,s);case"boolean":return hd(e,c,r,i,n,a,o,s);case"number":case"integer":return vd(e,c,r,i,n,a,o,s);case"object":return $a(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 jI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function $a(e,t,r,i,n,a,o,s){let c=fd(t.schema??{},i).reduce((l,u)=>{let d=md(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 bd(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=be(t,r,o),m=be(t,r,o,"placeholder"),f=li(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=si(d,h,f,t.schema.default,""),v=l(p,b),k=SI(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function MI(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=be(t,r,o),{labels:m,icons:f}=yd(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:be(t,r,o,I),icon:f[I]})),b=li(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=si(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function hd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=be(t,r,o),m=li(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!si(d,f,m,t.schema.default,!1),b=l(p,h);return c.Checkbox(p,{inputLabel:g,...b}),()=>({id:t.id,type:"boolean",value:b.value})}function vd(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=be(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=li(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=si(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function jI(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=be(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=yd(t.schema),x=li(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:bd,boolean:hd,integer:vd,object:$a},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:be(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>$a(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=si(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function SI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var $I=md,_I={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Lc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function EI(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={..._I,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function TI({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=kI(r.document),c=gd(s,r.inputReference);if(!xI(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=fd(l,r);return EI(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=$I(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});pd(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var LI=TI;async function OI(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return wI(e,t);case"schema":return LI(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var NI=OI;function DI(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 P6(o,r)),o}return i}var PI=DI;function zI(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 UI=zI,wa="@imgly/plugin-ai-generation",RI=`
@@ -206,7 +206,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
206
206
  </symbol>
207
207
  </svg>
208
208
  `,FI=RI;function VI(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 wd(2e3),await BI(t,e,r)):i(t,r)}async function BI(e,t,r){switch(t.kind){case"image":return qI(e,t,r);case"video":return GI(e,t,r);case"text":return YI(e,t,r);case"audio":return ZI(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function qI(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 Dx(s,r),l=await Nx(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 GI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function YI(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=Zr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Zr(n,o)}else"customPrompt"in e?a=Zr(n,"custom"):a=Zr(n,"improved");else a=Zr(n,"generated");return HI(a,r.abortSignal)}async function*HI(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 wd(100)}return{kind:"text",text:e}}function Zr(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 ZI(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:QI(220,i),duration:i,thumbnailUrl:void 0}}function QI(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 WI(i,44100)}function WI(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 wd(e){return new Promise(t=>{setTimeout(t,e)})}var KI=VI,JI="USER_CANCEL";function XI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Rx([...e.provider.output.middleware??[],...r?.middlewares??[],Vx({enable:r?.debug}),KI({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Yx(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Da(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===JI?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var eC=XI;async function tC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=qn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=PI(a),s=UI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=eC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await NI(a,c);Hx(r.cesdk,"@imgly/plugin-ai-generation",FI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ux.get().register(u),u}var ka=tC;function rC(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 z6(n,r,i);return r.engine.asset.addSource(a),a.id}var iC=rC;function Kr(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 nC(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(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ka(e,u,r,i)));o.push(...l),a=aC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ka(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ka(e,d,r,i)));o.push(...u),a=oC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=iC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(zx)}),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 oC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Kr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Kr(e,"fromText.label"),icon:f.value!=="fromText"&&Oc(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:Kr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Oc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Kr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function aC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Kr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Oc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(za(r.id),!1).value)}var lC=nC,sC=typeof global=="object"&&global&&global.Object===Object&&global,kd=sC,uC=typeof self=="object"&&self&&self.Object===Object&&self,cC=kd||uC||Function("return this")(),ee=cC,dC=ee.Symbol,wt=dC,xd=Object.prototype,pC=xd.hasOwnProperty,gC=xd.toString,Qr=wt?wt.toStringTag:void 0;function fC(e){var t=pC.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=gC.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var yC=fC,mC=Object.prototype,bC=mC.toString;function hC(e){return bC.call(e)}var vC=hC,wC="[object Null]",kC="[object Undefined]",Nc=wt?wt.toStringTag:void 0;function xC(e){return e==null?e===void 0?kC:wC:Nc&&Nc in Object(e)?yC(e):vC(e)}var ui=xC;function IC(e){return e!=null&&typeof e=="object"}var Ua=IC,QJ=Array.isArray;function CC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Id=CC,AC="[object AsyncFunction]",MC="[object Function]",jC="[object GeneratorFunction]",SC="[object Proxy]";function $C(e){if(!Id(e))return!1;var t=ui(e);return t==MC||t==jC||t==AC||t==SC}var _C=$C,EC=ee["__core-js_shared__"],xa=EC,Dc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function TC(e){return!!Dc&&Dc in e}var LC=TC,OC=Function.prototype,NC=OC.toString;function DC(e){if(e!=null){try{return NC.call(e)}catch{}try{return e+""}catch{}}return""}var Le=DC,PC=/[\\^$.*+?()[\]{}|]/g,zC=/^\[object .+?Constructor\]$/,UC=Function.prototype,RC=Object.prototype,FC=UC.toString,VC=RC.hasOwnProperty,BC=RegExp("^"+FC.call(VC).replace(PC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qC(e){if(!Id(e)||LC(e))return!1;var t=_C(e)?BC:zC;return t.test(Le(e))}var GC=qC;function YC(e,t){return e?.[t]}var HC=YC;function ZC(e,t){var r=HC(e,t);return GC(r)?r:void 0}var At=ZC,QC=At(ee,"WeakMap"),_a=QC;function WC(e,t){return e===t||e!==e&&t!==t}var KC=WC,JC=9007199254740991;function XC(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JC}var eA=XC,WJ=Object.prototype,tA="[object Arguments]";function rA(e){return Ua(e)&&ui(e)==tA}var Pc=rA,Cd=Object.prototype,iA=Cd.hasOwnProperty,nA=Cd.propertyIsEnumerable,KJ=Pc(function(){return arguments}())?Pc:function(e){return Ua(e)&&iA.call(e,"callee")&&!nA.call(e,"callee")},Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zc=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,oA=zc&&zc.exports===Ad,Uc=oA?ee.Buffer:void 0,JJ=Uc?Uc.isBuffer:void 0,aA="[object Arguments]",lA="[object Array]",sA="[object Boolean]",uA="[object Date]",cA="[object Error]",dA="[object Function]",pA="[object Map]",gA="[object Number]",fA="[object Object]",yA="[object RegExp]",mA="[object Set]",bA="[object String]",hA="[object WeakMap]",vA="[object ArrayBuffer]",wA="[object DataView]",kA="[object Float32Array]",xA="[object Float64Array]",IA="[object Int8Array]",CA="[object Int16Array]",AA="[object Int32Array]",MA="[object Uint8Array]",jA="[object Uint8ClampedArray]",SA="[object Uint16Array]",$A="[object Uint32Array]",P={};P[kA]=P[xA]=P[IA]=P[CA]=P[AA]=P[MA]=P[jA]=P[SA]=P[$A]=!0;P[aA]=P[lA]=P[vA]=P[sA]=P[wA]=P[uA]=P[cA]=P[dA]=P[pA]=P[gA]=P[fA]=P[yA]=P[mA]=P[bA]=P[hA]=!1;function _A(e){return Ua(e)&&eA(e.length)&&!!P[ui(e)]}var EA=_A;function TA(e){return function(t){return e(t)}}var LA=TA,Md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=Md&&typeof module=="object"&&module&&!module.nodeType&&module,OA=ei&&ei.exports===Md,Ia=OA&&kd.process,NA=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Rc=NA,Fc=Rc&&Rc.isTypedArray,XJ=Fc?LA(Fc):EA,DA=Object.prototype,eX=DA.hasOwnProperty;function PA(e,t){return function(r){return e(t(r))}}var zA=PA,tX=zA(Object.keys,Object),UA=Object.prototype,rX=UA.hasOwnProperty,RA=At(Object,"create"),ii=RA;function FA(){this.__data__=ii?ii(null):{},this.size=0}var VA=FA;function BA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qA=BA,GA="__lodash_hash_undefined__",YA=Object.prototype,HA=YA.hasOwnProperty;function ZA(e){var t=this.__data__;if(ii){var r=t[e];return r===GA?void 0:r}return HA.call(t,e)?t[e]:void 0}var QA=ZA,WA=Object.prototype,KA=WA.hasOwnProperty;function JA(e){var t=this.__data__;return ii?t[e]!==void 0:KA.call(t,e)}var XA=JA,eM="__lodash_hash_undefined__";function tM(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?eM:t,this}var rM=tM;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=VA;Mt.prototype.delete=qA;Mt.prototype.get=QA;Mt.prototype.has=XA;Mt.prototype.set=rM;var Vc=Mt;function iM(){this.__data__=[],this.size=0}var nM=iM;function oM(e,t){for(var r=e.length;r--;)if(KC(e[r][0],t))return r;return-1}var Zn=oM,aM=Array.prototype,lM=aM.splice;function sM(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lM.call(t,r,1),--this.size,!0}var uM=sM;function cM(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var dM=cM;function pM(e){return Zn(this.__data__,e)>-1}var gM=pM;function fM(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var yM=fM;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=nM;jt.prototype.delete=uM;jt.prototype.get=dM;jt.prototype.has=gM;jt.prototype.set=yM;var Qn=jt,mM=At(ee,"Map"),ni=mM;function bM(){this.size=0,this.__data__={hash:new Vc,map:new(ni||Qn),string:new Vc}}var hM=bM;function vM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wM=vM;function kM(e,t){var r=e.__data__;return wM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=kM;function xM(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var IM=xM;function CM(e){return Wn(this,e).get(e)}var AM=CM;function MM(e){return Wn(this,e).has(e)}var jM=MM;function SM(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $M=SM;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=hM;St.prototype.delete=IM;St.prototype.get=AM;St.prototype.has=jM;St.prototype.set=$M;var jd=St;function _M(){this.__data__=new Qn,this.size=0}var EM=_M;function TM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LM=TM;function OM(e){return this.__data__.get(e)}var NM=OM;function DM(e){return this.__data__.has(e)}var PM=DM,zM=200;function UM(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<zM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new jd(i)}return r.set(e,t),this.size=r.size,this}var RM=UM;function ci(e){var t=this.__data__=new Qn(e);this.size=t.size}ci.prototype.clear=EM;ci.prototype.delete=LM;ci.prototype.get=NM;ci.prototype.has=PM;ci.prototype.set=RM;var FM=Object.prototype,iX=FM.propertyIsEnumerable,VM=At(ee,"DataView"),Ea=VM,BM=At(ee,"Promise"),Ta=BM,qM=At(ee,"Set"),La=qM,Bc="[object Map]",GM="[object Object]",qc="[object Promise]",Gc="[object Set]",Yc="[object WeakMap]",Hc="[object DataView]",YM=Le(Ea),HM=Le(ni),ZM=Le(Ta),QM=Le(La),WM=Le(_a),bt=ui;(Ea&&bt(new Ea(new ArrayBuffer(1)))!=Hc||ni&&bt(new ni)!=Bc||Ta&&bt(Ta.resolve())!=qc||La&&bt(new La)!=Gc||_a&&bt(new _a)!=Yc)&&(bt=function(e){var t=ui(e),r=t==GM?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case YM:return Hc;case HM:return Bc;case ZM:return qc;case QM:return Gc;case WM:return Yc}return t});var nX=ee.Uint8Array,KM="__lodash_hash_undefined__";function JM(e){return this.__data__.set(e,KM),this}var XM=JM;function ej(e){return this.__data__.has(e)}var tj=ej;function Oa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new jd;++t<r;)this.add(e[t])}Oa.prototype.add=Oa.prototype.push=XM;Oa.prototype.has=tj;var Zc=wt?wt.prototype:void 0,oX=Zc?Zc.valueOf:void 0,rj=Object.prototype,aX=rj.hasOwnProperty,ij=Object.prototype,lX=ij.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 nj(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 Sd(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 nj(i,t)}function oj(e){return e==null?[]:Array.isArray(e)?e:[e]}var Qc=oj;function aj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function lj(e){return typeof e?.translate=="function"}function sj(e,t,r){return e&&aj(e)&&lj(e.i18n)?e.i18n.translate(t):r}var Jr="@imgly/plugin-ai-video-generation-web";var Kn="createVideo",Wc=`ly.img.${Kn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Kn}`,Kc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Kn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Kn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Kc}`]:"Create Video...",[`${Kc}.description`]:"Create a video from the image"}}),{id:Wc,type:"quick",kind:"image",label:`${uj}`,enable:Jx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Wc}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Sd(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)}}})}}),pj=dj,Jn="animateBetweenImages",Jc=`ly.img.${Jn}`,gj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,Xc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function fj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),e.i18n.setTranslations({en:{[`${Xc}`]:"Animate Between Images...",[`${Xc}.description`]:"Create a video transitioning between two images"}}),{id:Jc,type:"quick",kind:"image",label:`${gj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Jc}.button`,{label:fj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Sd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),mj=yj,ye="ly.img.ai.video-generation";function bj(e){return{async initialize({cesdk:t}){if(t==null)return;Zx(t,Jr,"0.2.11"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Jr}.action.label`;t.setTranslations({en:{[`panel.${ye}`]:"Video Generation",[`${ye}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),hj(e);let i=qn.get().register({type:"plugin",sceneMode:"Video",id:Jr,pluginId:Jr,label:sj(t,r,"Generate Video"),meta:{panelId:ye},execute:()=>{t.ui.isPanelOpen(ye)?t.ui.closePanel(ye):t.ui.openPanel(ye)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(Qc(n).map(l=>l({cesdk:t}))),s=await Promise.all(Qc(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await lC("video",{fromText:o,fromImage:s},{cesdk:t},e);qn.get().register(pj({cesdk:t})),qn.get().register(mj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(ye,c.panel.builderRenderFunction),Wx({cesdk:t,panelId:ye})):i()}}}function hj(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 vj=bj,wj=e=>({name:Jr,version:"0.2.11",...vj(e)}),$d=wj;var kj=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 xj=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")}},Ij=typeof global=="object"&&global&&global.Object===Object&&global,dp=Ij,Cj=typeof self=="object"&&self&&self.Object===Object&&self,Aj=dp||Cj||Function("return this")(),te=Aj,Mj=te.Symbol,Tt=Mj,pp=Object.prototype,jj=pp.hasOwnProperty,Sj=pp.toString,di=Tt?Tt.toStringTag:void 0;function $j(e){var t=jj.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=Sj.call(e);return i&&(t?e[di]=r:delete e[di]),n}var _j=$j,Ej=Object.prototype,Tj=Ej.toString;function Lj(e){return Tj.call(e)}var Oj=Lj,Nj="[object Null]",Dj="[object Undefined]",_d=Tt?Tt.toStringTag:void 0;function Pj(e){return e==null?e===void 0?Dj:Nj:_d&&_d in Object(e)?_j(e):Oj(e)}var xi=Pj;function zj(e){return e!=null&&typeof e=="object"}var nl=zj,fX=Array.isArray;function Uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var gp=Uj,Rj="[object AsyncFunction]",Fj="[object Function]",Vj="[object GeneratorFunction]",Bj="[object Proxy]";function qj(e){if(!gp(e))return!1;var t=xi(e);return t==Fj||t==Vj||t==Rj||t==Bj}var Gj=qj,Yj=te["__core-js_shared__"],Ra=Yj,Ed=function(){var e=/[^.]+$/.exec(Ra&&Ra.keys&&Ra.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hj(e){return!!Ed&&Ed in e}var Zj=Hj,Qj=Function.prototype,Wj=Qj.toString;function Kj(e){if(e!=null){try{return Wj.call(e)}catch{}try{return e+""}catch{}}return""}var De=Kj,Jj=/[\\^$.*+?()[\]{}|]/g,Xj=/^\[object .+?Constructor\]$/,eS=Function.prototype,tS=Object.prototype,rS=eS.toString,iS=tS.hasOwnProperty,nS=RegExp("^"+rS.call(iS).replace(Jj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oS(e){if(!gp(e)||Zj(e))return!1;var t=Gj(e)?nS:Xj;return t.test(De(e))}var aS=oS;function lS(e,t){return e?.[t]}var sS=lS;function uS(e,t){var r=sS(e,t);return aS(r)?r:void 0}var Ot=uS,cS=Ot(te,"WeakMap"),Ha=cS;function dS(e,t){return e===t||e!==e&&t!==t}var pS=dS,gS=9007199254740991;function fS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gS}var yS=fS,yX=Object.prototype,mS="[object Arguments]";function bS(e){return nl(e)&&xi(e)==mS}var Td=bS,fp=Object.prototype,hS=fp.hasOwnProperty,vS=fp.propertyIsEnumerable,mX=Td(function(){return arguments}())?Td:function(e){return nl(e)&&hS.call(e,"callee")&&!vS.call(e,"callee")},yp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ld=yp&&typeof module=="object"&&module&&!module.nodeType&&module,wS=Ld&&Ld.exports===yp,Od=wS?te.Buffer:void 0,bX=Od?Od.isBuffer:void 0,kS="[object Arguments]",xS="[object Array]",IS="[object Boolean]",CS="[object Date]",AS="[object Error]",MS="[object Function]",jS="[object Map]",SS="[object Number]",$S="[object Object]",_S="[object RegExp]",ES="[object Set]",TS="[object String]",LS="[object WeakMap]",OS="[object ArrayBuffer]",NS="[object DataView]",DS="[object Float32Array]",PS="[object Float64Array]",zS="[object Int8Array]",US="[object Int16Array]",RS="[object Int32Array]",FS="[object Uint8Array]",VS="[object Uint8ClampedArray]",BS="[object Uint16Array]",qS="[object Uint32Array]",z={};z[DS]=z[PS]=z[zS]=z[US]=z[RS]=z[FS]=z[VS]=z[BS]=z[qS]=!0;z[kS]=z[xS]=z[OS]=z[IS]=z[NS]=z[CS]=z[AS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=z[ES]=z[TS]=z[LS]=!1;function GS(e){return nl(e)&&yS(e.length)&&!!z[xi(e)]}var YS=GS;function HS(e){return function(t){return e(t)}}var ZS=HS,mp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mi=mp&&typeof module=="object"&&module&&!module.nodeType&&module,QS=mi&&mi.exports===mp,Fa=QS&&dp.process,WS=function(){try{var e=mi&&mi.require&&mi.require("util").types;return e||Fa&&Fa.binding&&Fa.binding("util")}catch{}}(),Nd=WS,Dd=Nd&&Nd.isTypedArray,hX=Dd?ZS(Dd):YS,KS=Object.prototype,vX=KS.hasOwnProperty;function JS(e,t){return function(r){return e(t(r))}}var XS=JS,wX=XS(Object.keys,Object),e$=Object.prototype,kX=e$.hasOwnProperty,t$=Ot(Object,"create"),hi=t$;function r$(){this.__data__=hi?hi(null):{},this.size=0}var i$=r$;function n$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o$=n$,a$="__lodash_hash_undefined__",l$=Object.prototype,s$=l$.hasOwnProperty;function u$(e){var t=this.__data__;if(hi){var r=t[e];return r===a$?void 0:r}return s$.call(t,e)?t[e]:void 0}var c$=u$,d$=Object.prototype,p$=d$.hasOwnProperty;function g$(e){var t=this.__data__;return hi?t[e]!==void 0:p$.call(t,e)}var f$=g$,y$="__lodash_hash_undefined__";function m$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hi&&t===void 0?y$:t,this}var b$=m$;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=i$;Nt.prototype.delete=o$;Nt.prototype.get=c$;Nt.prototype.has=f$;Nt.prototype.set=b$;var Pd=Nt;function h$(){this.__data__=[],this.size=0}var v$=h$;function w$(e,t){for(var r=e.length;r--;)if(pS(e[r][0],t))return r;return-1}var Xn=w$,k$=Array.prototype,x$=k$.splice;function I$(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x$.call(t,r,1),--this.size,!0}var C$=I$;function A$(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var M$=A$;function j$(e){return Xn(this.__data__,e)>-1}var S$=j$;function $$(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 _$=$$;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=v$;Dt.prototype.delete=C$;Dt.prototype.get=M$;Dt.prototype.has=S$;Dt.prototype.set=_$;var eo=Dt,E$=Ot(te,"Map"),vi=E$;function T$(){this.size=0,this.__data__={hash:new Pd,map:new(vi||eo),string:new Pd}}var L$=T$;function O$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N$=O$;function D$(e,t){var r=e.__data__;return N$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=D$;function P$(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var z$=P$;function U$(e){return to(this,e).get(e)}var R$=U$;function F$(e){return to(this,e).has(e)}var V$=F$;function B$(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q$=B$;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=L$;Pt.prototype.delete=z$;Pt.prototype.get=R$;Pt.prototype.has=V$;Pt.prototype.set=q$;var bp=Pt;function G$(){this.__data__=new eo,this.size=0}var Y$=G$;function H$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z$=H$;function Q$(e){return this.__data__.get(e)}var W$=Q$;function K$(e){return this.__data__.has(e)}var J$=K$,X$=200;function e_(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<X$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new bp(i)}return r.set(e,t),this.size=r.size,this}var t_=e_;function Ii(e){var t=this.__data__=new eo(e);this.size=t.size}Ii.prototype.clear=Y$;Ii.prototype.delete=Z$;Ii.prototype.get=W$;Ii.prototype.has=J$;Ii.prototype.set=t_;var r_=Object.prototype,xX=r_.propertyIsEnumerable,i_=Ot(te,"DataView"),Za=i_,n_=Ot(te,"Promise"),Qa=n_,o_=Ot(te,"Set"),Wa=o_,zd="[object Map]",a_="[object Object]",Ud="[object Promise]",Rd="[object Set]",Fd="[object WeakMap]",Vd="[object DataView]",l_=De(Za),s_=De(vi),u_=De(Qa),c_=De(Wa),d_=De(Ha),$t=xi;(Za&&$t(new Za(new ArrayBuffer(1)))!=Vd||vi&&$t(new vi)!=zd||Qa&&$t(Qa.resolve())!=Ud||Wa&&$t(new Wa)!=Rd||Ha&&$t(new Ha)!=Fd)&&($t=function(e){var t=xi(e),r=t==a_?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case l_:return Vd;case s_:return zd;case u_:return Ud;case c_:return Rd;case d_:return Fd}return t});var IX=te.Uint8Array,p_="__lodash_hash_undefined__";function g_(e){return this.__data__.set(e,p_),this}var f_=g_;function y_(e){return this.__data__.has(e)}var m_=y_;function Ka(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new bp;++t<r;)this.add(e[t])}Ka.prototype.add=Ka.prototype.push=f_;Ka.prototype.has=m_;var Bd=Tt?Tt.prototype:void 0,CX=Bd?Bd.valueOf:void 0,b_=Object.prototype,AX=b_.hasOwnProperty,h_=Object.prototype,MX=h_.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function hp(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 v_(e,t){let r=await hp(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 w_(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 hp(i,t)}function k_(e){return e!==void 0}var x_=k_;function Ci(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 vp=class wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},I_=class kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function 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 A_({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 M_=A_,Va="ly.img.ai.temp";async function j_(e,t){return e.engine.asset.findAllSources().includes(Va)||e.engine.asset.addLocalSource(Va),e.engine.asset.apply(Va,t)}function S_(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 xp(){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 $_(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 __(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 ol(e){return e instanceof Error&&e.name==="AbortError"}function E_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function T_(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 GI(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function YI(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=Zr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Zr(n,o)}else"customPrompt"in e?a=Zr(n,"custom"):a=Zr(n,"improved");else a=Zr(n,"generated");return HI(a,r.abortSignal)}async function*HI(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 wd(100)}return{kind:"text",text:e}}function Zr(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 ZI(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:QI(220,i),duration:i,thumbnailUrl:void 0}}function QI(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 WI(i,44100)}function WI(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 wd(e){return new Promise(t=>{setTimeout(t,e)})}var KI=VI,JI="USER_CANCEL";function XI(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Rx([...e.provider.output.middleware??[],...r?.middlewares??[],Vx({enable:r?.debug}),KI({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Yx(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Da(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===JI?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var eC=XI;async function tC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=qn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let m=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(m,!0)}})}let o=PI(a),s=UI(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=eC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await NI(a,c);Hx(r.cesdk,"@imgly/plugin-ai-generation",FI);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return Ux.get().register(u),u}var ka=tC;function rC(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 z6(n,r,i);return r.engine.asset.addSource(a),a.id}var iC=rC;function Kr(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 nC(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(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>ka(e,u,r,i)));o.push(...l),a=aC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>ka(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>ka(e,d,r,i)));o.push(...u),a=oC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=iC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(zx)}),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 oC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Kr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Kr(e,"fromText.label"),icon:f.value!=="fromText"&&Oc(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:Kr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Oc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Kr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function aC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Kr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Oc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(za(r.id),!1).value)}var lC=nC,sC=typeof global=="object"&&global&&global.Object===Object&&global,kd=sC,uC=typeof self=="object"&&self&&self.Object===Object&&self,cC=kd||uC||Function("return this")(),ee=cC,dC=ee.Symbol,wt=dC,xd=Object.prototype,pC=xd.hasOwnProperty,gC=xd.toString,Qr=wt?wt.toStringTag:void 0;function fC(e){var t=pC.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=gC.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var yC=fC,mC=Object.prototype,bC=mC.toString;function hC(e){return bC.call(e)}var vC=hC,wC="[object Null]",kC="[object Undefined]",Nc=wt?wt.toStringTag:void 0;function xC(e){return e==null?e===void 0?kC:wC:Nc&&Nc in Object(e)?yC(e):vC(e)}var ui=xC;function IC(e){return e!=null&&typeof e=="object"}var Ua=IC,QJ=Array.isArray;function CC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Id=CC,AC="[object AsyncFunction]",MC="[object Function]",jC="[object GeneratorFunction]",SC="[object Proxy]";function $C(e){if(!Id(e))return!1;var t=ui(e);return t==MC||t==jC||t==AC||t==SC}var _C=$C,EC=ee["__core-js_shared__"],xa=EC,Dc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function TC(e){return!!Dc&&Dc in e}var LC=TC,OC=Function.prototype,NC=OC.toString;function DC(e){if(e!=null){try{return NC.call(e)}catch{}try{return e+""}catch{}}return""}var Le=DC,PC=/[\\^$.*+?()[\]{}|]/g,zC=/^\[object .+?Constructor\]$/,UC=Function.prototype,RC=Object.prototype,FC=UC.toString,VC=RC.hasOwnProperty,BC=RegExp("^"+FC.call(VC).replace(PC,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qC(e){if(!Id(e)||LC(e))return!1;var t=_C(e)?BC:zC;return t.test(Le(e))}var GC=qC;function YC(e,t){return e?.[t]}var HC=YC;function ZC(e,t){var r=HC(e,t);return GC(r)?r:void 0}var At=ZC,QC=At(ee,"WeakMap"),_a=QC;function WC(e,t){return e===t||e!==e&&t!==t}var KC=WC,JC=9007199254740991;function XC(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JC}var eA=XC,WJ=Object.prototype,tA="[object Arguments]";function rA(e){return Ua(e)&&ui(e)==tA}var Pc=rA,Cd=Object.prototype,iA=Cd.hasOwnProperty,nA=Cd.propertyIsEnumerable,KJ=Pc(function(){return arguments}())?Pc:function(e){return Ua(e)&&iA.call(e,"callee")&&!nA.call(e,"callee")},Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zc=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,oA=zc&&zc.exports===Ad,Uc=oA?ee.Buffer:void 0,JJ=Uc?Uc.isBuffer:void 0,aA="[object Arguments]",lA="[object Array]",sA="[object Boolean]",uA="[object Date]",cA="[object Error]",dA="[object Function]",pA="[object Map]",gA="[object Number]",fA="[object Object]",yA="[object RegExp]",mA="[object Set]",bA="[object String]",hA="[object WeakMap]",vA="[object ArrayBuffer]",wA="[object DataView]",kA="[object Float32Array]",xA="[object Float64Array]",IA="[object Int8Array]",CA="[object Int16Array]",AA="[object Int32Array]",MA="[object Uint8Array]",jA="[object Uint8ClampedArray]",SA="[object Uint16Array]",$A="[object Uint32Array]",P={};P[kA]=P[xA]=P[IA]=P[CA]=P[AA]=P[MA]=P[jA]=P[SA]=P[$A]=!0;P[aA]=P[lA]=P[vA]=P[sA]=P[wA]=P[uA]=P[cA]=P[dA]=P[pA]=P[gA]=P[fA]=P[yA]=P[mA]=P[bA]=P[hA]=!1;function _A(e){return Ua(e)&&eA(e.length)&&!!P[ui(e)]}var EA=_A;function TA(e){return function(t){return e(t)}}var LA=TA,Md=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=Md&&typeof module=="object"&&module&&!module.nodeType&&module,OA=ei&&ei.exports===Md,Ia=OA&&kd.process,NA=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Rc=NA,Fc=Rc&&Rc.isTypedArray,XJ=Fc?LA(Fc):EA,DA=Object.prototype,eX=DA.hasOwnProperty;function PA(e,t){return function(r){return e(t(r))}}var zA=PA,tX=zA(Object.keys,Object),UA=Object.prototype,rX=UA.hasOwnProperty,RA=At(Object,"create"),ii=RA;function FA(){this.__data__=ii?ii(null):{},this.size=0}var VA=FA;function BA(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qA=BA,GA="__lodash_hash_undefined__",YA=Object.prototype,HA=YA.hasOwnProperty;function ZA(e){var t=this.__data__;if(ii){var r=t[e];return r===GA?void 0:r}return HA.call(t,e)?t[e]:void 0}var QA=ZA,WA=Object.prototype,KA=WA.hasOwnProperty;function JA(e){var t=this.__data__;return ii?t[e]!==void 0:KA.call(t,e)}var XA=JA,eM="__lodash_hash_undefined__";function tM(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?eM:t,this}var rM=tM;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=VA;Mt.prototype.delete=qA;Mt.prototype.get=QA;Mt.prototype.has=XA;Mt.prototype.set=rM;var Vc=Mt;function iM(){this.__data__=[],this.size=0}var nM=iM;function oM(e,t){for(var r=e.length;r--;)if(KC(e[r][0],t))return r;return-1}var Zn=oM,aM=Array.prototype,lM=aM.splice;function sM(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lM.call(t,r,1),--this.size,!0}var uM=sM;function cM(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var dM=cM;function pM(e){return Zn(this.__data__,e)>-1}var gM=pM;function fM(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var yM=fM;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=nM;jt.prototype.delete=uM;jt.prototype.get=dM;jt.prototype.has=gM;jt.prototype.set=yM;var Qn=jt,mM=At(ee,"Map"),ni=mM;function bM(){this.size=0,this.__data__={hash:new Vc,map:new(ni||Qn),string:new Vc}}var hM=bM;function vM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wM=vM;function kM(e,t){var r=e.__data__;return wM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=kM;function xM(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var IM=xM;function CM(e){return Wn(this,e).get(e)}var AM=CM;function MM(e){return Wn(this,e).has(e)}var jM=MM;function SM(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $M=SM;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=hM;St.prototype.delete=IM;St.prototype.get=AM;St.prototype.has=jM;St.prototype.set=$M;var jd=St;function _M(){this.__data__=new Qn,this.size=0}var EM=_M;function TM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var LM=TM;function OM(e){return this.__data__.get(e)}var NM=OM;function DM(e){return this.__data__.has(e)}var PM=DM,zM=200;function UM(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<zM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new jd(i)}return r.set(e,t),this.size=r.size,this}var RM=UM;function ci(e){var t=this.__data__=new Qn(e);this.size=t.size}ci.prototype.clear=EM;ci.prototype.delete=LM;ci.prototype.get=NM;ci.prototype.has=PM;ci.prototype.set=RM;var FM=Object.prototype,iX=FM.propertyIsEnumerable,VM=At(ee,"DataView"),Ea=VM,BM=At(ee,"Promise"),Ta=BM,qM=At(ee,"Set"),La=qM,Bc="[object Map]",GM="[object Object]",qc="[object Promise]",Gc="[object Set]",Yc="[object WeakMap]",Hc="[object DataView]",YM=Le(Ea),HM=Le(ni),ZM=Le(Ta),QM=Le(La),WM=Le(_a),bt=ui;(Ea&&bt(new Ea(new ArrayBuffer(1)))!=Hc||ni&&bt(new ni)!=Bc||Ta&&bt(Ta.resolve())!=qc||La&&bt(new La)!=Gc||_a&&bt(new _a)!=Yc)&&(bt=function(e){var t=ui(e),r=t==GM?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case YM:return Hc;case HM:return Bc;case ZM:return qc;case QM:return Gc;case WM:return Yc}return t});var nX=ee.Uint8Array,KM="__lodash_hash_undefined__";function JM(e){return this.__data__.set(e,KM),this}var XM=JM;function ej(e){return this.__data__.has(e)}var tj=ej;function Oa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new jd;++t<r;)this.add(e[t])}Oa.prototype.add=Oa.prototype.push=XM;Oa.prototype.has=tj;var Zc=wt?wt.prototype:void 0,oX=Zc?Zc.valueOf:void 0,rj=Object.prototype,aX=rj.hasOwnProperty,ij=Object.prototype,lX=ij.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 nj(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 Sd(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 nj(i,t)}function oj(e){return e==null?[]:Array.isArray(e)?e:[e]}var Qc=oj;function aj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function lj(e){return typeof e?.translate=="function"}function sj(e,t,r){return e&&aj(e)&&lj(e.i18n)?e.i18n.translate(t):r}var Jr="@imgly/plugin-ai-video-generation-web";var Kn="createVideo",Wc=`ly.img.${Kn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Kn}`,Kc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Kn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Kn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),e.i18n.setTranslations({en:{[`${Kc}`]:"Create Video...",[`${Kc}.description`]:"Create a video from the image"}}),{id:Wc,type:"quick",kind:"image",label:`${uj}`,enable:Jx(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Wc}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Sd(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)}}})}}),pj=dj,Jn="animateBetweenImages",Jc=`ly.img.${Jn}`,gj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,Xc=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function fj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Jn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var yj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),e.i18n.setTranslations({en:{[`${Xc}`]:"Animate Between Images...",[`${Xc}.description`]:"Create a video transitioning between two images"}}),{id:Jc,type:"quick",kind:"image",label:`${gj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Jc}.button`,{label:fj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Sd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),mj=yj,ye="ly.img.ai.video-generation";function bj(e){return{async initialize({cesdk:t}){if(t==null)return;Zx(t,Jr,"0.2.12"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Jr}.action.label`;t.setTranslations({en:{[`panel.${ye}`]:"Video Generation",[`${ye}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),hj(e);let i=qn.get().register({type:"plugin",sceneMode:"Video",id:Jr,pluginId:Jr,label:sj(t,r,"Generate Video"),meta:{panelId:ye},execute:()=>{t.ui.isPanelOpen(ye)?t.ui.closePanel(ye):t.ui.openPanel(ye)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(Qc(n).map(l=>l({cesdk:t}))),s=await Promise.all(Qc(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await lC("video",{fromText:o,fromImage:s},{cesdk:t},e);qn.get().register(pj({cesdk:t})),qn.get().register(mj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(ye,c.panel.builderRenderFunction),Wx({cesdk:t,panelId:ye})):i()}}}function hj(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 vj=bj,wj=e=>({name:Jr,version:"0.2.12",...vj(e)}),$d=wj;var kj=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 xj=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")}},Ij=typeof global=="object"&&global&&global.Object===Object&&global,dp=Ij,Cj=typeof self=="object"&&self&&self.Object===Object&&self,Aj=dp||Cj||Function("return this")(),te=Aj,Mj=te.Symbol,Tt=Mj,pp=Object.prototype,jj=pp.hasOwnProperty,Sj=pp.toString,di=Tt?Tt.toStringTag:void 0;function $j(e){var t=jj.call(e,di),r=e[di];try{e[di]=void 0;var i=!0}catch{}var n=Sj.call(e);return i&&(t?e[di]=r:delete e[di]),n}var _j=$j,Ej=Object.prototype,Tj=Ej.toString;function Lj(e){return Tj.call(e)}var Oj=Lj,Nj="[object Null]",Dj="[object Undefined]",_d=Tt?Tt.toStringTag:void 0;function Pj(e){return e==null?e===void 0?Dj:Nj:_d&&_d in Object(e)?_j(e):Oj(e)}var xi=Pj;function zj(e){return e!=null&&typeof e=="object"}var nl=zj,fX=Array.isArray;function Uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var gp=Uj,Rj="[object AsyncFunction]",Fj="[object Function]",Vj="[object GeneratorFunction]",Bj="[object Proxy]";function qj(e){if(!gp(e))return!1;var t=xi(e);return t==Fj||t==Vj||t==Rj||t==Bj}var Gj=qj,Yj=te["__core-js_shared__"],Ra=Yj,Ed=function(){var e=/[^.]+$/.exec(Ra&&Ra.keys&&Ra.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Hj(e){return!!Ed&&Ed in e}var Zj=Hj,Qj=Function.prototype,Wj=Qj.toString;function Kj(e){if(e!=null){try{return Wj.call(e)}catch{}try{return e+""}catch{}}return""}var De=Kj,Jj=/[\\^$.*+?()[\]{}|]/g,Xj=/^\[object .+?Constructor\]$/,eS=Function.prototype,tS=Object.prototype,rS=eS.toString,iS=tS.hasOwnProperty,nS=RegExp("^"+rS.call(iS).replace(Jj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function oS(e){if(!gp(e)||Zj(e))return!1;var t=Gj(e)?nS:Xj;return t.test(De(e))}var aS=oS;function lS(e,t){return e?.[t]}var sS=lS;function uS(e,t){var r=sS(e,t);return aS(r)?r:void 0}var Ot=uS,cS=Ot(te,"WeakMap"),Ha=cS;function dS(e,t){return e===t||e!==e&&t!==t}var pS=dS,gS=9007199254740991;function fS(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=gS}var yS=fS,yX=Object.prototype,mS="[object Arguments]";function bS(e){return nl(e)&&xi(e)==mS}var Td=bS,fp=Object.prototype,hS=fp.hasOwnProperty,vS=fp.propertyIsEnumerable,mX=Td(function(){return arguments}())?Td:function(e){return nl(e)&&hS.call(e,"callee")&&!vS.call(e,"callee")},yp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ld=yp&&typeof module=="object"&&module&&!module.nodeType&&module,wS=Ld&&Ld.exports===yp,Od=wS?te.Buffer:void 0,bX=Od?Od.isBuffer:void 0,kS="[object Arguments]",xS="[object Array]",IS="[object Boolean]",CS="[object Date]",AS="[object Error]",MS="[object Function]",jS="[object Map]",SS="[object Number]",$S="[object Object]",_S="[object RegExp]",ES="[object Set]",TS="[object String]",LS="[object WeakMap]",OS="[object ArrayBuffer]",NS="[object DataView]",DS="[object Float32Array]",PS="[object Float64Array]",zS="[object Int8Array]",US="[object Int16Array]",RS="[object Int32Array]",FS="[object Uint8Array]",VS="[object Uint8ClampedArray]",BS="[object Uint16Array]",qS="[object Uint32Array]",z={};z[DS]=z[PS]=z[zS]=z[US]=z[RS]=z[FS]=z[VS]=z[BS]=z[qS]=!0;z[kS]=z[xS]=z[OS]=z[IS]=z[NS]=z[CS]=z[AS]=z[MS]=z[jS]=z[SS]=z[$S]=z[_S]=z[ES]=z[TS]=z[LS]=!1;function GS(e){return nl(e)&&yS(e.length)&&!!z[xi(e)]}var YS=GS;function HS(e){return function(t){return e(t)}}var ZS=HS,mp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mi=mp&&typeof module=="object"&&module&&!module.nodeType&&module,QS=mi&&mi.exports===mp,Fa=QS&&dp.process,WS=function(){try{var e=mi&&mi.require&&mi.require("util").types;return e||Fa&&Fa.binding&&Fa.binding("util")}catch{}}(),Nd=WS,Dd=Nd&&Nd.isTypedArray,hX=Dd?ZS(Dd):YS,KS=Object.prototype,vX=KS.hasOwnProperty;function JS(e,t){return function(r){return e(t(r))}}var XS=JS,wX=XS(Object.keys,Object),e$=Object.prototype,kX=e$.hasOwnProperty,t$=Ot(Object,"create"),hi=t$;function r$(){this.__data__=hi?hi(null):{},this.size=0}var i$=r$;function n$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var o$=n$,a$="__lodash_hash_undefined__",l$=Object.prototype,s$=l$.hasOwnProperty;function u$(e){var t=this.__data__;if(hi){var r=t[e];return r===a$?void 0:r}return s$.call(t,e)?t[e]:void 0}var c$=u$,d$=Object.prototype,p$=d$.hasOwnProperty;function g$(e){var t=this.__data__;return hi?t[e]!==void 0:p$.call(t,e)}var f$=g$,y$="__lodash_hash_undefined__";function m$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hi&&t===void 0?y$:t,this}var b$=m$;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=i$;Nt.prototype.delete=o$;Nt.prototype.get=c$;Nt.prototype.has=f$;Nt.prototype.set=b$;var Pd=Nt;function h$(){this.__data__=[],this.size=0}var v$=h$;function w$(e,t){for(var r=e.length;r--;)if(pS(e[r][0],t))return r;return-1}var Xn=w$,k$=Array.prototype,x$=k$.splice;function I$(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():x$.call(t,r,1),--this.size,!0}var C$=I$;function A$(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var M$=A$;function j$(e){return Xn(this.__data__,e)>-1}var S$=j$;function $$(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 _$=$$;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=v$;Dt.prototype.delete=C$;Dt.prototype.get=M$;Dt.prototype.has=S$;Dt.prototype.set=_$;var eo=Dt,E$=Ot(te,"Map"),vi=E$;function T$(){this.size=0,this.__data__={hash:new Pd,map:new(vi||eo),string:new Pd}}var L$=T$;function O$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var N$=O$;function D$(e,t){var r=e.__data__;return N$(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=D$;function P$(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var z$=P$;function U$(e){return to(this,e).get(e)}var R$=U$;function F$(e){return to(this,e).has(e)}var V$=F$;function B$(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var q$=B$;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=L$;Pt.prototype.delete=z$;Pt.prototype.get=R$;Pt.prototype.has=V$;Pt.prototype.set=q$;var bp=Pt;function G$(){this.__data__=new eo,this.size=0}var Y$=G$;function H$(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Z$=H$;function Q$(e){return this.__data__.get(e)}var W$=Q$;function K$(e){return this.__data__.has(e)}var J$=K$,X$=200;function e_(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!vi||i.length<X$-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new bp(i)}return r.set(e,t),this.size=r.size,this}var t_=e_;function Ii(e){var t=this.__data__=new eo(e);this.size=t.size}Ii.prototype.clear=Y$;Ii.prototype.delete=Z$;Ii.prototype.get=W$;Ii.prototype.has=J$;Ii.prototype.set=t_;var r_=Object.prototype,xX=r_.propertyIsEnumerable,i_=Ot(te,"DataView"),Za=i_,n_=Ot(te,"Promise"),Qa=n_,o_=Ot(te,"Set"),Wa=o_,zd="[object Map]",a_="[object Object]",Ud="[object Promise]",Rd="[object Set]",Fd="[object WeakMap]",Vd="[object DataView]",l_=De(Za),s_=De(vi),u_=De(Qa),c_=De(Wa),d_=De(Ha),$t=xi;(Za&&$t(new Za(new ArrayBuffer(1)))!=Vd||vi&&$t(new vi)!=zd||Qa&&$t(Qa.resolve())!=Ud||Wa&&$t(new Wa)!=Rd||Ha&&$t(new Ha)!=Fd)&&($t=function(e){var t=xi(e),r=t==a_?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case l_:return Vd;case s_:return zd;case u_:return Ud;case c_:return Rd;case d_:return Fd}return t});var IX=te.Uint8Array,p_="__lodash_hash_undefined__";function g_(e){return this.__data__.set(e,p_),this}var f_=g_;function y_(e){return this.__data__.has(e)}var m_=y_;function Ka(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new bp;++t<r;)this.add(e[t])}Ka.prototype.add=Ka.prototype.push=f_;Ka.prototype.has=m_;var Bd=Tt?Tt.prototype:void 0,CX=Bd?Bd.valueOf:void 0,b_=Object.prototype,AX=b_.hasOwnProperty,h_=Object.prototype,MX=h_.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),SX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function hp(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 v_(e,t){let r=await hp(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 w_(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 hp(i,t)}function k_(e){return e!==void 0}var x_=k_;function Ci(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 vp=class wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},I_=class kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function 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 A_({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 M_=A_,Va="ly.img.ai.temp";async function j_(e,t){return e.engine.asset.findAllSources().includes(Va)||e.engine.asset.addLocalSource(Va),e.engine.asset.apply(Va,t)}function S_(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 xp(){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 $_(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 __(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 ol(e){return e instanceof Error&&e.name==="AbortError"}function E_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function T_(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 L_(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 qd=L_;function O_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),N_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:S_(e)}))}function N_(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 Gd=O_,D_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",al=D_;function P_(e,t,r){switch(t){case"image":return z_(e,r[t]);case"video":return U_(e,r[t]);case"sticker":return R_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function z_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:al,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function U_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:al,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function R_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:al,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var F_=P_;async function V_(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 B_(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 q_(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 G_(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 Y_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function B_(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 q_(e,t,r){let i=t.width,n=t.height,a=await $_(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 G_(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 Y_(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 Ip=V_;function H_(e){switch(e.userFlow){case"placeholder":return Q_(e);case"generation-only":return Z_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Z_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ve(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ve(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(ve(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=xp(),c=await Ip(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 Q_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ve(t,r))return{status:"aborted"};let s=xp(),c=F_(s,a,o);if(i=await j_(t,c),ve(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ve(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Ip(s,a,o,l.output);if(ve(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),ve(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)&&(ol(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 ve(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var W_=H_;function ll(e){return`${e}.generating`}function K_(e){return`${e}.abort`}function J_(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(K_(d),()=>{}),m=c.global(ll(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await W_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){Gd(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;X_(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(ol(y))return;Gd(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 X_(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 Cp=J_;async function eE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ll(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Cp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var tE=eE;function Ap(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 fi(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=Ap(e,t.$ref),n={...fi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=fi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>fi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=fi(e,t[n],r));return i}return t}function rE(e){return fi(e,{...e})}function iE(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 nE(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return oE(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function oE(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=aE(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function aE(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 Mp=nE;function we(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function jp(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 Sp(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?lE(e,c,r,i,n,a,o,s):$p(e,c,r,i,n,a,o,s);case"boolean":return _p(e,c,r,i,n,a,o,s);case"number":case"integer":return Ep(e,c,r,i,n,a,o,s);case"object":return Ja(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 sE(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ja(e,t,r,i,n,a,o,s){let c=Mp(t.schema??{},i).reduce((l,u)=>{let d=Sp(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 $p(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=we(t,r,o),m=we(t,r,o,"placeholder"),f=Ci(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=Ai(d,h,f,t.schema.default,""),v=l(p,b),k=uE(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function lE(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=we(t,r,o),{labels:m,icons:f}=jp(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:we(t,r,o,I),icon:f[I]})),b=Ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Ai(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function _p(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=we(t,r,o),m=Ci(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 Ep(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=we(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=Ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=Ai(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function sE(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=we(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=jp(t.schema),x=Ci(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:$p,boolean:_p,integer:Ep,object:Ja},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:we(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ja(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=Ai(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function uE(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var cE=Sp,dE={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Yd(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function pE(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]||Yd(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]||Yd(g);n[a(l.id,g)]=m}})}});let c={...dE,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function gE({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=rE(r.document),c=Ap(s,r.inputReference);if(!iE(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=Mp(l,r);return pE(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=cE(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});Cp(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var fE=gE;async function yE(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return tE(e,t);case"schema":return fE(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var mE=yE;function bE(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 kj(o,r)),o}return i}var hE=bE;function vE(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 wE=vE,Ba="@imgly/plugin-ai-generation",kE=`
@@ -271,7 +271,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
271
271
  </symbol>
272
272
  </svg>
273
273
  `,xE=kE;function IE(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 Tp(2e3),await CE(t,e,r)):i(t,r)}async function CE(e,t,r){switch(t.kind){case"image":return AE(e,t,r);case"video":return ME(e,t,r);case"text":return jE(e,t,r);case"audio":return $E(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function AE(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 w_(s,r),l=await v_(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 ME(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function jE(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=pi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=pi(n,o)}else"customPrompt"in e?a=pi(n,"custom"):a=pi(n,"improved");else a=pi(n,"generated");return SE(a,r.abortSignal)}async function*SE(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 Tp(100)}return{kind:"text",text:e}}function pi(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 $E(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:_E(220,i),duration:i,thumbnailUrl:void 0}}function _E(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 EE(i,44100)}function EE(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 Tp(e){return new Promise(t=>{setTimeout(t,e)})}var TE=IE,LE="USER_CANCEL";function OE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=C_([...e.provider.output.middleware??[],...r?.middlewares??[],M_({enable:r?.debug}),TE({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:__(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ol(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===LE?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var NE=OE;async function DE(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=vp.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=hE(a),s=wE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=NE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mE(a,c);E_(r.cesdk,"@imgly/plugin-ai-generation",xE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return I_.get().register(u),u}var qa=DE;function PE(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 xj(n,r,i);return r.engine.asset.addSource(a),a.id}var zE=PE;function yi(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 UE(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(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>qa(e,u,r,i)));o.push(...l),a=FE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>qa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>qa(e,d,r,i)));o.push(...u),a=RE({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=zE({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 RE({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:yi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:yi(e,"fromText.label"),icon:f.value!=="fromText"&&Hd(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:yi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Hd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:yi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function FE({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:yi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Hd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ll(r.id),!1).value)}var Zd=UE,VE=typeof global=="object"&&global&&global.Object===Object&&global,Lp=VE,BE=typeof self=="object"&&self&&self.Object===Object&&self,qE=Lp||BE||Function("return this")(),re=qE,GE=re.Symbol,Lt=GE,Op=Object.prototype,YE=Op.hasOwnProperty,HE=Op.toString,gi=Lt?Lt.toStringTag:void 0;function ZE(e){var t=YE.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=HE.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var QE=ZE,WE=Object.prototype,KE=WE.toString;function JE(e){return KE.call(e)}var XE=JE,eT="[object Null]",tT="[object Undefined]",Qd=Lt?Lt.toStringTag:void 0;function rT(e){return e==null?e===void 0?tT:eT:Qd&&Qd in Object(e)?QE(e):XE(e)}var Mi=rT;function iT(e){return e!=null&&typeof e=="object"}var sl=iT,_X=Array.isArray;function nT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Np=nT,oT="[object AsyncFunction]",aT="[object Function]",lT="[object GeneratorFunction]",sT="[object Proxy]";function uT(e){if(!Np(e))return!1;var t=Mi(e);return t==aT||t==lT||t==oT||t==sT}var cT=uT,dT=re["__core-js_shared__"],Ga=dT,Wd=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function pT(e){return!!Wd&&Wd in e}var gT=pT,fT=Function.prototype,yT=fT.toString;function mT(e){if(e!=null){try{return yT.call(e)}catch{}try{return e+""}catch{}}return""}var Pe=mT,bT=/[\\^$.*+?()[\]{}|]/g,hT=/^\[object .+?Constructor\]$/,vT=Function.prototype,wT=Object.prototype,kT=vT.toString,xT=wT.hasOwnProperty,IT=RegExp("^"+kT.call(xT).replace(bT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function CT(e){if(!Np(e)||gT(e))return!1;var t=cT(e)?IT:hT;return t.test(Pe(e))}var AT=CT;function MT(e,t){return e?.[t]}var jT=MT;function ST(e,t){var r=jT(e,t);return AT(r)?r:void 0}var zt=ST,$T=zt(re,"WeakMap"),Xa=$T;function _T(e,t){return e===t||e!==e&&t!==t}var ET=_T,TT=9007199254740991;function LT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=TT}var OT=LT,EX=Object.prototype,NT="[object Arguments]";function DT(e){return sl(e)&&Mi(e)==NT}var Kd=DT,Dp=Object.prototype,PT=Dp.hasOwnProperty,zT=Dp.propertyIsEnumerable,TX=Kd(function(){return arguments}())?Kd:function(e){return sl(e)&&PT.call(e,"callee")&&!zT.call(e,"callee")},Pp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jd=Pp&&typeof module=="object"&&module&&!module.nodeType&&module,UT=Jd&&Jd.exports===Pp,Xd=UT?re.Buffer:void 0,LX=Xd?Xd.isBuffer:void 0,RT="[object Arguments]",FT="[object Array]",VT="[object Boolean]",BT="[object Date]",qT="[object Error]",GT="[object Function]",YT="[object Map]",HT="[object Number]",ZT="[object Object]",QT="[object RegExp]",WT="[object Set]",KT="[object String]",JT="[object WeakMap]",XT="[object ArrayBuffer]",eL="[object DataView]",tL="[object Float32Array]",rL="[object Float64Array]",iL="[object Int8Array]",nL="[object Int16Array]",oL="[object Int32Array]",aL="[object Uint8Array]",lL="[object Uint8ClampedArray]",sL="[object Uint16Array]",uL="[object Uint32Array]",U={};U[tL]=U[rL]=U[iL]=U[nL]=U[oL]=U[aL]=U[lL]=U[sL]=U[uL]=!0;U[RT]=U[FT]=U[XT]=U[VT]=U[eL]=U[BT]=U[qT]=U[GT]=U[YT]=U[HT]=U[ZT]=U[QT]=U[WT]=U[KT]=U[JT]=!1;function cL(e){return sl(e)&&OT(e.length)&&!!U[Mi(e)]}var dL=cL;function pL(e){return function(t){return e(t)}}var gL=pL,zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=zp&&typeof module=="object"&&module&&!module.nodeType&&module,fL=bi&&bi.exports===zp,Ya=fL&&Lp.process,yL=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ya&&Ya.binding&&Ya.binding("util")}catch{}}(),ep=yL,tp=ep&&ep.isTypedArray,OX=tp?gL(tp):dL,mL=Object.prototype,NX=mL.hasOwnProperty;function bL(e,t){return function(r){return e(t(r))}}var hL=bL,DX=hL(Object.keys,Object),vL=Object.prototype,PX=vL.hasOwnProperty,wL=zt(Object,"create"),wi=wL;function kL(){this.__data__=wi?wi(null):{},this.size=0}var xL=kL;function IL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var CL=IL,AL="__lodash_hash_undefined__",ML=Object.prototype,jL=ML.hasOwnProperty;function SL(e){var t=this.__data__;if(wi){var r=t[e];return r===AL?void 0:r}return jL.call(t,e)?t[e]:void 0}var $L=SL,_L=Object.prototype,EL=_L.hasOwnProperty;function TL(e){var t=this.__data__;return wi?t[e]!==void 0:EL.call(t,e)}var LL=TL,OL="__lodash_hash_undefined__";function NL(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=wi&&t===void 0?OL:t,this}var DL=NL;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=xL;Ut.prototype.delete=CL;Ut.prototype.get=$L;Ut.prototype.has=LL;Ut.prototype.set=DL;var rp=Ut;function PL(){this.__data__=[],this.size=0}var zL=PL;function UL(e,t){for(var r=e.length;r--;)if(ET(e[r][0],t))return r;return-1}var ro=UL,RL=Array.prototype,FL=RL.splice;function VL(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():FL.call(t,r,1),--this.size,!0}var BL=VL;function qL(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var GL=qL;function YL(e){return ro(this.__data__,e)>-1}var HL=YL;function ZL(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var QL=ZL;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=zL;Rt.prototype.delete=BL;Rt.prototype.get=GL;Rt.prototype.has=HL;Rt.prototype.set=QL;var io=Rt,WL=zt(re,"Map"),ki=WL;function KL(){this.size=0,this.__data__={hash:new rp,map:new(ki||io),string:new rp}}var JL=KL;function XL(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var eO=XL;function tO(e,t){var r=e.__data__;return eO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=tO;function rO(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var iO=rO;function nO(e){return no(this,e).get(e)}var oO=nO;function aO(e){return no(this,e).has(e)}var lO=aO;function sO(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var uO=sO;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=JL;Ft.prototype.delete=iO;Ft.prototype.get=oO;Ft.prototype.has=lO;Ft.prototype.set=uO;var Up=Ft;function cO(){this.__data__=new io,this.size=0}var dO=cO;function pO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var gO=pO;function fO(e){return this.__data__.get(e)}var yO=fO;function mO(e){return this.__data__.has(e)}var bO=mO,hO=200;function vO(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!ki||i.length<hO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Up(i)}return r.set(e,t),this.size=r.size,this}var wO=vO;function ji(e){var t=this.__data__=new io(e);this.size=t.size}ji.prototype.clear=dO;ji.prototype.delete=gO;ji.prototype.get=yO;ji.prototype.has=bO;ji.prototype.set=wO;var kO=Object.prototype,zX=kO.propertyIsEnumerable,xO=zt(re,"DataView"),el=xO,IO=zt(re,"Promise"),tl=IO,CO=zt(re,"Set"),rl=CO,ip="[object Map]",AO="[object Object]",np="[object Promise]",op="[object Set]",ap="[object WeakMap]",lp="[object DataView]",MO=Pe(el),jO=Pe(ki),SO=Pe(tl),$O=Pe(rl),_O=Pe(Xa),_t=Mi;(el&&_t(new el(new ArrayBuffer(1)))!=lp||ki&&_t(new ki)!=ip||tl&&_t(tl.resolve())!=np||rl&&_t(new rl)!=op||Xa&&_t(new Xa)!=ap)&&(_t=function(e){var t=Mi(e),r=t==AO?e.constructor:void 0,i=r?Pe(r):"";if(i)switch(i){case MO:return lp;case jO:return ip;case SO:return np;case $O:return op;case _O:return ap}return t});var UX=re.Uint8Array,EO="__lodash_hash_undefined__";function TO(e){return this.__data__.set(e,EO),this}var LO=TO;function OO(e){return this.__data__.has(e)}var NO=OO;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Up;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=LO;il.prototype.has=NO;var sp=Lt?Lt.prototype:void 0,RX=sp?sp.valueOf:void 0,DO=Object.prototype,FX=DO.hasOwnProperty,PO=Object.prototype,VX=PO.hasOwnProperty,BX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function zO(e){return e==null?[]:Array.isArray(e)?e:[e]}var up=zO;function UO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function RO(e){return typeof e?.translate=="function"}function cp(e,t,r){return e&&UO(e)&&RO(e.i18n)?e.i18n.translate(t):r}var he="@imgly/plugin-ai-audio-generation-web",Oe="ly.img.ai.audio-generation.speech",Ne="ly.img.ai.audio-generation.sound";function FO(e){return{async initialize({cesdk:t}){if(t==null)return;T_(t,he,"0.2.11"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${he}.sound.action.label`,i=`${he}.speech.action.label`;t.setTranslations({en:{[`panel.${Oe}`]:"AI Voice",[`panel.${Ne}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),VO(e);let n=vp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${he}/sound`,pluginId:he,label:cp(t,r,"Generate Sound"),meta:{panelId:Ne},execute:()=>{t.ui.isPanelOpen(Ne)?t.ui.closePanel(Ne):t.ui.openPanel(Ne)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${he}/speech`,pluginId:he,label:cp(t,i,"AI Voice"),meta:{panelId:Oe},execute:()=>{t.ui.isPanelOpen(Oe)?t.ui.closePanel(Oe):t.ui.openPanel(Oe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(up(s).map(f=>f({cesdk:t}))),u=await Promise.all(up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Zd("audio",l,{cesdk:t},e),m=await Zd("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ne,m.panel.builderRenderFunction),qd({cesdk:t,panelId:Ne})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Oe,g.panel.builderRenderFunction),qd({cesdk:t,panelId:Oe})):o()}}}function VO(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 BO=FO,qO=e=>({name:he,version:"0.2.11",...BO(e)}),Rp=qO;var GO="@imgly/plugin-ai-text-generation",YO=`
274
+ `,"+")}`}}async function ME(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function jE(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=pi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=pi(n,o)}else"customPrompt"in e?a=pi(n,"custom"):a=pi(n,"improved");else a=pi(n,"generated");return SE(a,r.abortSignal)}async function*SE(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 Tp(100)}return{kind:"text",text:e}}function pi(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 $E(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:_E(220,i),duration:i,thumbnailUrl:void 0}}function _E(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 EE(i,44100)}function EE(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 Tp(e){return new Promise(t=>{setTimeout(t,e)})}var TE=IE,LE="USER_CANCEL";function OE(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=C_([...e.provider.output.middleware??[],...r?.middlewares??[],M_({enable:r?.debug}),TE({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:__(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ol(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===LE?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var NE=OE;async function DE(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=vp.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=hE(a),s=wE(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=NE({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await mE(a,c);E_(r.cesdk,"@imgly/plugin-ai-generation",xE);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return I_.get().register(u),u}var qa=DE;function PE(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 xj(n,r,i);return r.engine.asset.addSource(a),a.id}var zE=PE;function yi(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 UE(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(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>qa(e,u,r,i)));o.push(...l),a=FE({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>qa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>qa(e,d,r,i)));o.push(...u),a=RE({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=zE({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 RE({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),m;d&&r.length>0&&(!g||i.length===0)?m="fromText":g&&i.length>0&&(!d||r.length===0)?m="fromImage":d&&g&&a&&(m="fromText");let f=c.global(`${t}.fromType`,m),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let b=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),v=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,b[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),y=b.find(C=>C.id===k.value)??b[0],I=v.find(C=>C.id===x.value)??v[0],j=f.value==="fromText"?k:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?y:f.value==="fromImage"?I:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let $=d&&g&&r.length>0&&i.length>0,w=a&&$,_=h.length>1&&S;if((w||_)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:yi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:yi(e,"fromText.label"),icon:f.value!=="fromText"&&Hd(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:yi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Hd(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),_){let C=f.value==="fromText"?b:f.value==="fromImage"?v:[...b,...v];j!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:yi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{j.setValue(M.id)}})}}}),h.length>1)A?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function FE({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:yi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Hd(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ll(r.id),!1).value)}var Zd=UE,VE=typeof global=="object"&&global&&global.Object===Object&&global,Lp=VE,BE=typeof self=="object"&&self&&self.Object===Object&&self,qE=Lp||BE||Function("return this")(),re=qE,GE=re.Symbol,Lt=GE,Op=Object.prototype,YE=Op.hasOwnProperty,HE=Op.toString,gi=Lt?Lt.toStringTag:void 0;function ZE(e){var t=YE.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=HE.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var QE=ZE,WE=Object.prototype,KE=WE.toString;function JE(e){return KE.call(e)}var XE=JE,eT="[object Null]",tT="[object Undefined]",Qd=Lt?Lt.toStringTag:void 0;function rT(e){return e==null?e===void 0?tT:eT:Qd&&Qd in Object(e)?QE(e):XE(e)}var Mi=rT;function iT(e){return e!=null&&typeof e=="object"}var sl=iT,_X=Array.isArray;function nT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Np=nT,oT="[object AsyncFunction]",aT="[object Function]",lT="[object GeneratorFunction]",sT="[object Proxy]";function uT(e){if(!Np(e))return!1;var t=Mi(e);return t==aT||t==lT||t==oT||t==sT}var cT=uT,dT=re["__core-js_shared__"],Ga=dT,Wd=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function pT(e){return!!Wd&&Wd in e}var gT=pT,fT=Function.prototype,yT=fT.toString;function mT(e){if(e!=null){try{return yT.call(e)}catch{}try{return e+""}catch{}}return""}var Pe=mT,bT=/[\\^$.*+?()[\]{}|]/g,hT=/^\[object .+?Constructor\]$/,vT=Function.prototype,wT=Object.prototype,kT=vT.toString,xT=wT.hasOwnProperty,IT=RegExp("^"+kT.call(xT).replace(bT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function CT(e){if(!Np(e)||gT(e))return!1;var t=cT(e)?IT:hT;return t.test(Pe(e))}var AT=CT;function MT(e,t){return e?.[t]}var jT=MT;function ST(e,t){var r=jT(e,t);return AT(r)?r:void 0}var zt=ST,$T=zt(re,"WeakMap"),Xa=$T;function _T(e,t){return e===t||e!==e&&t!==t}var ET=_T,TT=9007199254740991;function LT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=TT}var OT=LT,EX=Object.prototype,NT="[object Arguments]";function DT(e){return sl(e)&&Mi(e)==NT}var Kd=DT,Dp=Object.prototype,PT=Dp.hasOwnProperty,zT=Dp.propertyIsEnumerable,TX=Kd(function(){return arguments}())?Kd:function(e){return sl(e)&&PT.call(e,"callee")&&!zT.call(e,"callee")},Pp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jd=Pp&&typeof module=="object"&&module&&!module.nodeType&&module,UT=Jd&&Jd.exports===Pp,Xd=UT?re.Buffer:void 0,LX=Xd?Xd.isBuffer:void 0,RT="[object Arguments]",FT="[object Array]",VT="[object Boolean]",BT="[object Date]",qT="[object Error]",GT="[object Function]",YT="[object Map]",HT="[object Number]",ZT="[object Object]",QT="[object RegExp]",WT="[object Set]",KT="[object String]",JT="[object WeakMap]",XT="[object ArrayBuffer]",eL="[object DataView]",tL="[object Float32Array]",rL="[object Float64Array]",iL="[object Int8Array]",nL="[object Int16Array]",oL="[object Int32Array]",aL="[object Uint8Array]",lL="[object Uint8ClampedArray]",sL="[object Uint16Array]",uL="[object Uint32Array]",U={};U[tL]=U[rL]=U[iL]=U[nL]=U[oL]=U[aL]=U[lL]=U[sL]=U[uL]=!0;U[RT]=U[FT]=U[XT]=U[VT]=U[eL]=U[BT]=U[qT]=U[GT]=U[YT]=U[HT]=U[ZT]=U[QT]=U[WT]=U[KT]=U[JT]=!1;function cL(e){return sl(e)&&OT(e.length)&&!!U[Mi(e)]}var dL=cL;function pL(e){return function(t){return e(t)}}var gL=pL,zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=zp&&typeof module=="object"&&module&&!module.nodeType&&module,fL=bi&&bi.exports===zp,Ya=fL&&Lp.process,yL=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ya&&Ya.binding&&Ya.binding("util")}catch{}}(),ep=yL,tp=ep&&ep.isTypedArray,OX=tp?gL(tp):dL,mL=Object.prototype,NX=mL.hasOwnProperty;function bL(e,t){return function(r){return e(t(r))}}var hL=bL,DX=hL(Object.keys,Object),vL=Object.prototype,PX=vL.hasOwnProperty,wL=zt(Object,"create"),wi=wL;function kL(){this.__data__=wi?wi(null):{},this.size=0}var xL=kL;function IL(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var CL=IL,AL="__lodash_hash_undefined__",ML=Object.prototype,jL=ML.hasOwnProperty;function SL(e){var t=this.__data__;if(wi){var r=t[e];return r===AL?void 0:r}return jL.call(t,e)?t[e]:void 0}var $L=SL,_L=Object.prototype,EL=_L.hasOwnProperty;function TL(e){var t=this.__data__;return wi?t[e]!==void 0:EL.call(t,e)}var LL=TL,OL="__lodash_hash_undefined__";function NL(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=wi&&t===void 0?OL:t,this}var DL=NL;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=xL;Ut.prototype.delete=CL;Ut.prototype.get=$L;Ut.prototype.has=LL;Ut.prototype.set=DL;var rp=Ut;function PL(){this.__data__=[],this.size=0}var zL=PL;function UL(e,t){for(var r=e.length;r--;)if(ET(e[r][0],t))return r;return-1}var ro=UL,RL=Array.prototype,FL=RL.splice;function VL(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():FL.call(t,r,1),--this.size,!0}var BL=VL;function qL(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var GL=qL;function YL(e){return ro(this.__data__,e)>-1}var HL=YL;function ZL(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var QL=ZL;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=zL;Rt.prototype.delete=BL;Rt.prototype.get=GL;Rt.prototype.has=HL;Rt.prototype.set=QL;var io=Rt,WL=zt(re,"Map"),ki=WL;function KL(){this.size=0,this.__data__={hash:new rp,map:new(ki||io),string:new rp}}var JL=KL;function XL(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var eO=XL;function tO(e,t){var r=e.__data__;return eO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=tO;function rO(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var iO=rO;function nO(e){return no(this,e).get(e)}var oO=nO;function aO(e){return no(this,e).has(e)}var lO=aO;function sO(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var uO=sO;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=JL;Ft.prototype.delete=iO;Ft.prototype.get=oO;Ft.prototype.has=lO;Ft.prototype.set=uO;var Up=Ft;function cO(){this.__data__=new io,this.size=0}var dO=cO;function pO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var gO=pO;function fO(e){return this.__data__.get(e)}var yO=fO;function mO(e){return this.__data__.has(e)}var bO=mO,hO=200;function vO(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!ki||i.length<hO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Up(i)}return r.set(e,t),this.size=r.size,this}var wO=vO;function ji(e){var t=this.__data__=new io(e);this.size=t.size}ji.prototype.clear=dO;ji.prototype.delete=gO;ji.prototype.get=yO;ji.prototype.has=bO;ji.prototype.set=wO;var kO=Object.prototype,zX=kO.propertyIsEnumerable,xO=zt(re,"DataView"),el=xO,IO=zt(re,"Promise"),tl=IO,CO=zt(re,"Set"),rl=CO,ip="[object Map]",AO="[object Object]",np="[object Promise]",op="[object Set]",ap="[object WeakMap]",lp="[object DataView]",MO=Pe(el),jO=Pe(ki),SO=Pe(tl),$O=Pe(rl),_O=Pe(Xa),_t=Mi;(el&&_t(new el(new ArrayBuffer(1)))!=lp||ki&&_t(new ki)!=ip||tl&&_t(tl.resolve())!=np||rl&&_t(new rl)!=op||Xa&&_t(new Xa)!=ap)&&(_t=function(e){var t=Mi(e),r=t==AO?e.constructor:void 0,i=r?Pe(r):"";if(i)switch(i){case MO:return lp;case jO:return ip;case SO:return np;case $O:return op;case _O:return ap}return t});var UX=re.Uint8Array,EO="__lodash_hash_undefined__";function TO(e){return this.__data__.set(e,EO),this}var LO=TO;function OO(e){return this.__data__.has(e)}var NO=OO;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Up;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=LO;il.prototype.has=NO;var sp=Lt?Lt.prototype:void 0,RX=sp?sp.valueOf:void 0,DO=Object.prototype,FX=DO.hasOwnProperty,PO=Object.prototype,VX=PO.hasOwnProperty,BX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),qX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),GX=new RegExp(/[A-Fa-f0-9]{2}/,"g");function zO(e){return e==null?[]:Array.isArray(e)?e:[e]}var up=zO;function UO(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function RO(e){return typeof e?.translate=="function"}function cp(e,t,r){return e&&UO(e)&&RO(e.i18n)?e.i18n.translate(t):r}var he="@imgly/plugin-ai-audio-generation-web",Oe="ly.img.ai.audio-generation.speech",Ne="ly.img.ai.audio-generation.sound";function FO(e){return{async initialize({cesdk:t}){if(t==null)return;T_(t,he,"0.2.12"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${he}.sound.action.label`,i=`${he}.speech.action.label`;t.setTranslations({en:{[`panel.${Oe}`]:"AI Voice",[`panel.${Ne}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),VO(e);let n=vp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${he}/sound`,pluginId:he,label:cp(t,r,"Generate Sound"),meta:{panelId:Ne},execute:()=>{t.ui.isPanelOpen(Ne)?t.ui.closePanel(Ne):t.ui.openPanel(Ne)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${he}/speech`,pluginId:he,label:cp(t,i,"AI Voice"),meta:{panelId:Oe},execute:()=>{t.ui.isPanelOpen(Oe)?t.ui.closePanel(Oe):t.ui.openPanel(Oe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(up(s).map(f=>f({cesdk:t}))),u=await Promise.all(up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Zd("audio",l,{cesdk:t},e),m=await Zd("audio",u,{cesdk:t},e);m.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ne,m.panel.builderRenderFunction),qd({cesdk:t,panelId:Ne})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Oe,g.panel.builderRenderFunction),qd({cesdk:t,panelId:Oe})):o()}}}function VO(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 BO=FO,qO=e=>({name:he,version:"0.2.12",...BO(e)}),Rp=qO;var GO="@imgly/plugin-ai-text-generation",YO=`
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 IB=xB,wo="changeTextTo",ke=`ly.img.${wo}`,Ag=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,Mg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function ml(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var CB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${Mg}`]:"Change Text to...",[`${Mg}.prompt`]:"Change Text to...",[`${Ag}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:ke,type:"quick",kind:"text",scopes:["text/edit"],label:`${Ag}`,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(`${ke}.prompt`,"");t.TextArea(`${ke}.prompt`,{inputLabel:ml(l,"prompt"),placeholder:ml(l,"prompt.placeholder")[1],...u}),t.Separator(`${ke}.separator`),r.builder.ButtonRow(`${ke}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ke}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ke}.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:IB(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(`${ke}.button`,{label:ml(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),AB=CB,l1="@imgly/plugin-ai-text-generation-web",MB=["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 jB(e){return{async initialize({cesdk:t}){if(t==null)return;nz(t,l1,"0.2.11"),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(GO,HO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),SB(e);let r=_l.get();r.register(FV({cesdk:t})),r.register(ZV({cesdk:t})),r.register(tB({cesdk:t})),r.register(sB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(AB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(OV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await pU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await DU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:MB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:uo}))}}}function SB(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 $B=jB,_B=e=>({name:l1,version:"0.2.11",...$B(e)}),s1=_B;var EB=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 TB=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")}},LB=typeof global=="object"&&global&&global.Object===Object&&global,R1=LB,OB=typeof self=="object"&&self&&self.Object===Object&&self,NB=R1||OB||Function("return this")(),oe=NB,DB=oe.Symbol,nr=DB,F1=Object.prototype,PB=F1.hasOwnProperty,zB=F1.toString,Hi=nr?nr.toStringTag:void 0;function UB(e){var t=PB.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=zB.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var RB=UB,FB=Object.prototype,VB=FB.toString;function BB(e){return VB.call(e)}var qB=BB,GB="[object Null]",YB="[object Undefined]",u1=nr?nr.toStringTag:void 0;function HB(e){return e==null?e===void 0?YB:GB:u1&&u1 in Object(e)?RB(e):qB(e)}var an=HB;function ZB(e){return e!=null&&typeof e=="object"}var Xl=ZB,Eee=Array.isArray;function QB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var V1=QB,WB="[object AsyncFunction]",KB="[object Function]",JB="[object GeneratorFunction]",XB="[object Proxy]";function eq(e){if(!V1(e))return!1;var t=an(e);return t==KB||t==JB||t==WB||t==XB}var tq=eq,rq=oe["__core-js_shared__"],Nl=rq,c1=function(){var e=/[^.]+$/.exec(Nl&&Nl.keys&&Nl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function iq(e){return!!c1&&c1 in e}var nq=iq,oq=Function.prototype,aq=oq.toString;function lq(e){if(e!=null){try{return aq.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=lq,sq=/[\\^$.*+?()[\]{}|]/g,uq=/^\[object .+?Constructor\]$/,cq=Function.prototype,dq=Object.prototype,pq=cq.toString,gq=dq.hasOwnProperty,fq=RegExp("^"+pq.call(gq).replace(sq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yq(e){if(!V1(e)||nq(e))return!1;var t=tq(e)?fq:uq;return t.test(Ve(e))}var mq=yq;function bq(e,t){return e?.[t]}var hq=bq;function vq(e,t){var r=hq(e,t);return mq(r)?r:void 0}var ar=vq,wq=ar(oe,"WeakMap"),Vl=wq;function kq(e,t){return e===t||e!==e&&t!==t}var xq=kq,Iq=9007199254740991;function Cq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Iq}var Aq=Cq,Tee=Object.prototype,Mq="[object Arguments]";function jq(e){return Xl(e)&&an(e)==Mq}var d1=jq,B1=Object.prototype,Sq=B1.hasOwnProperty,$q=B1.propertyIsEnumerable,Lee=d1(function(){return arguments}())?d1:function(e){return Xl(e)&&Sq.call(e,"callee")&&!$q.call(e,"callee")},q1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,p1=q1&&typeof module=="object"&&module&&!module.nodeType&&module,_q=p1&&p1.exports===q1,g1=_q?oe.Buffer:void 0,Oee=g1?g1.isBuffer:void 0,Eq="[object Arguments]",Tq="[object Array]",Lq="[object Boolean]",Oq="[object Date]",Nq="[object Error]",Dq="[object Function]",Pq="[object Map]",zq="[object Number]",Uq="[object Object]",Rq="[object RegExp]",Fq="[object Set]",Vq="[object String]",Bq="[object WeakMap]",qq="[object ArrayBuffer]",Gq="[object DataView]",Yq="[object Float32Array]",Hq="[object Float64Array]",Zq="[object Int8Array]",Qq="[object Int16Array]",Wq="[object Int32Array]",Kq="[object Uint8Array]",Jq="[object Uint8ClampedArray]",Xq="[object Uint16Array]",eG="[object Uint32Array]",V={};V[Yq]=V[Hq]=V[Zq]=V[Qq]=V[Wq]=V[Kq]=V[Jq]=V[Xq]=V[eG]=!0;V[Eq]=V[Tq]=V[qq]=V[Lq]=V[Gq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=V[Uq]=V[Rq]=V[Fq]=V[Vq]=V[Bq]=!1;function tG(e){return Xl(e)&&Aq(e.length)&&!!V[an(e)]}var rG=tG;function iG(e){return function(t){return e(t)}}var nG=iG,G1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=G1&&typeof module=="object"&&module&&!module.nodeType&&module,oG=Xi&&Xi.exports===G1,Dl=oG&&R1.process,aG=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Dl&&Dl.binding&&Dl.binding("util")}catch{}}(),f1=aG,y1=f1&&f1.isTypedArray,Nee=y1?nG(y1):rG,lG=Object.prototype,Dee=lG.hasOwnProperty;function sG(e,t){return function(r){return e(t(r))}}var uG=sG,Pee=uG(Object.keys,Object),cG=Object.prototype,zee=cG.hasOwnProperty,dG=ar(Object,"create"),tn=dG;function pG(){this.__data__=tn?tn(null):{},this.size=0}var gG=pG;function fG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var yG=fG,mG="__lodash_hash_undefined__",bG=Object.prototype,hG=bG.hasOwnProperty;function vG(e){var t=this.__data__;if(tn){var r=t[e];return r===mG?void 0:r}return hG.call(t,e)?t[e]:void 0}var wG=vG,kG=Object.prototype,xG=kG.hasOwnProperty;function IG(e){var t=this.__data__;return tn?t[e]!==void 0:xG.call(t,e)}var CG=IG,AG="__lodash_hash_undefined__";function MG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?AG:t,this}var jG=MG;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=gG;lr.prototype.delete=yG;lr.prototype.get=wG;lr.prototype.has=CG;lr.prototype.set=jG;var m1=lr;function SG(){this.__data__=[],this.size=0}var $G=SG;function _G(e,t){for(var r=e.length;r--;)if(xq(e[r][0],t))return r;return-1}var ko=_G,EG=Array.prototype,TG=EG.splice;function LG(e){var t=this.__data__,r=ko(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TG.call(t,r,1),--this.size,!0}var OG=LG;function NG(e){var t=this.__data__,r=ko(t,e);return r<0?void 0:t[r][1]}var DG=NG;function PG(e){return ko(this.__data__,e)>-1}var zG=PG;function UG(e,t){var r=this.__data__,i=ko(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var RG=UG;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=$G;sr.prototype.delete=OG;sr.prototype.get=DG;sr.prototype.has=zG;sr.prototype.set=RG;var xo=sr,FG=ar(oe,"Map"),rn=FG;function VG(){this.size=0,this.__data__={hash:new m1,map:new(rn||xo),string:new m1}}var BG=VG;function qG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var GG=qG;function YG(e,t){var r=e.__data__;return GG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Io=YG;function HG(e){var t=Io(this,e).delete(e);return this.size-=t?1:0,t}var ZG=HG;function QG(e){return Io(this,e).get(e)}var WG=QG;function KG(e){return Io(this,e).has(e)}var JG=KG;function XG(e,t){var r=Io(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var eY=XG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=BG;ur.prototype.delete=ZG;ur.prototype.get=WG;ur.prototype.has=JG;ur.prototype.set=eY;var Y1=ur;function tY(){this.__data__=new xo,this.size=0}var rY=tY;function iY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var nY=iY;function oY(e){return this.__data__.get(e)}var aY=oY;function lY(e){return this.__data__.has(e)}var sY=lY,uY=200;function cY(e,t){var r=this.__data__;if(r instanceof xo){var i=r.__data__;if(!rn||i.length<uY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Y1(i)}return r.set(e,t),this.size=r.size,this}var dY=cY;function ln(e){var t=this.__data__=new xo(e);this.size=t.size}ln.prototype.clear=rY;ln.prototype.delete=nY;ln.prototype.get=aY;ln.prototype.has=sY;ln.prototype.set=dY;var pY=Object.prototype,Uee=pY.propertyIsEnumerable,gY=ar(oe,"DataView"),Bl=gY,fY=ar(oe,"Promise"),ql=fY,yY=ar(oe,"Set"),Gl=yY,b1="[object Map]",mY="[object Object]",h1="[object Promise]",v1="[object Set]",w1="[object WeakMap]",k1="[object DataView]",bY=Ve(Bl),hY=Ve(rn),vY=Ve(ql),wY=Ve(Gl),kY=Ve(Vl),tr=an;(Bl&&tr(new Bl(new ArrayBuffer(1)))!=k1||rn&&tr(new rn)!=b1||ql&&tr(ql.resolve())!=h1||Gl&&tr(new Gl)!=v1||Vl&&tr(new Vl)!=w1)&&(tr=function(e){var t=an(e),r=t==mY?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case bY:return k1;case hY:return b1;case vY:return h1;case wY:return v1;case kY:return w1}return t});var Ree=oe.Uint8Array,xY="__lodash_hash_undefined__";function IY(e){return this.__data__.set(e,xY),this}var CY=IY;function AY(e){return this.__data__.has(e)}var MY=AY;function Yl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Y1;++t<r;)this.add(e[t])}Yl.prototype.add=Yl.prototype.push=CY;Yl.prototype.has=MY;var x1=nr?nr.prototype:void 0,Fee=x1?x1.valueOf:void 0,jY=Object.prototype,Vee=jY.hasOwnProperty,SY=Object.prototype,Bee=SY.hasOwnProperty,qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Gee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Yee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function H1(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 $Y(e,t){let r=await H1(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 _Y(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 H1(i,t)}function EY(e){return e!==void 0}var TY=EY;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Z1=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))}},LY=class W1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new W1),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 OY(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 NY({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 DY=NY,Pl="ly.img.ai.temp";async function PY(e,t){return e.engine.asset.findAllSources().includes(Pl)||e.engine.asset.addLocalSource(Pl),e.engine.asset.apply(Pl,t)}function zY(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 K1(){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 UY(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 RY(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 es(e){return e instanceof Error&&e.name==="AbortError"}function FY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function VY(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 IB=xB,wo="changeTextTo",ke=`ly.img.${wo}`,Ag=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,Mg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function ml(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var CB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),e.i18n.setTranslations({en:{[`${Mg}`]:"Change Text to...",[`${Mg}.prompt`]:"Change Text to...",[`${Ag}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:ke,type:"quick",kind:"text",scopes:["text/edit"],label:`${Ag}`,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(`${ke}.prompt`,"");t.TextArea(`${ke}.prompt`,{inputLabel:ml(l,"prompt"),placeholder:ml(l,"prompt.placeholder")[1],...u}),t.Separator(`${ke}.separator`),r.builder.ButtonRow(`${ke}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ke}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ke}.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:IB(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(`${ke}.button`,{label:ml(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),AB=CB,l1="@imgly/plugin-ai-text-generation-web",MB=["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 jB(e){return{async initialize({cesdk:t}){if(t==null)return;nz(t,l1,"0.2.12"),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(GO,HO),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),SB(e);let r=_l.get();r.register(FV({cesdk:t})),r.register(ZV({cesdk:t})),r.register(tB({cesdk:t})),r.register(sB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(AB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(OV(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await pU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await DU({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:MB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:uo}))}}}function SB(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 $B=jB,_B=e=>({name:l1,version:"0.2.12",...$B(e)}),s1=_B;var EB=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 TB=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")}},LB=typeof global=="object"&&global&&global.Object===Object&&global,R1=LB,OB=typeof self=="object"&&self&&self.Object===Object&&self,NB=R1||OB||Function("return this")(),oe=NB,DB=oe.Symbol,nr=DB,F1=Object.prototype,PB=F1.hasOwnProperty,zB=F1.toString,Hi=nr?nr.toStringTag:void 0;function UB(e){var t=PB.call(e,Hi),r=e[Hi];try{e[Hi]=void 0;var i=!0}catch{}var n=zB.call(e);return i&&(t?e[Hi]=r:delete e[Hi]),n}var RB=UB,FB=Object.prototype,VB=FB.toString;function BB(e){return VB.call(e)}var qB=BB,GB="[object Null]",YB="[object Undefined]",u1=nr?nr.toStringTag:void 0;function HB(e){return e==null?e===void 0?YB:GB:u1&&u1 in Object(e)?RB(e):qB(e)}var an=HB;function ZB(e){return e!=null&&typeof e=="object"}var Xl=ZB,Eee=Array.isArray;function QB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var V1=QB,WB="[object AsyncFunction]",KB="[object Function]",JB="[object GeneratorFunction]",XB="[object Proxy]";function eq(e){if(!V1(e))return!1;var t=an(e);return t==KB||t==JB||t==WB||t==XB}var tq=eq,rq=oe["__core-js_shared__"],Nl=rq,c1=function(){var e=/[^.]+$/.exec(Nl&&Nl.keys&&Nl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function iq(e){return!!c1&&c1 in e}var nq=iq,oq=Function.prototype,aq=oq.toString;function lq(e){if(e!=null){try{return aq.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=lq,sq=/[\\^$.*+?()[\]{}|]/g,uq=/^\[object .+?Constructor\]$/,cq=Function.prototype,dq=Object.prototype,pq=cq.toString,gq=dq.hasOwnProperty,fq=RegExp("^"+pq.call(gq).replace(sq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yq(e){if(!V1(e)||nq(e))return!1;var t=tq(e)?fq:uq;return t.test(Ve(e))}var mq=yq;function bq(e,t){return e?.[t]}var hq=bq;function vq(e,t){var r=hq(e,t);return mq(r)?r:void 0}var ar=vq,wq=ar(oe,"WeakMap"),Vl=wq;function kq(e,t){return e===t||e!==e&&t!==t}var xq=kq,Iq=9007199254740991;function Cq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Iq}var Aq=Cq,Tee=Object.prototype,Mq="[object Arguments]";function jq(e){return Xl(e)&&an(e)==Mq}var d1=jq,B1=Object.prototype,Sq=B1.hasOwnProperty,$q=B1.propertyIsEnumerable,Lee=d1(function(){return arguments}())?d1:function(e){return Xl(e)&&Sq.call(e,"callee")&&!$q.call(e,"callee")},q1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,p1=q1&&typeof module=="object"&&module&&!module.nodeType&&module,_q=p1&&p1.exports===q1,g1=_q?oe.Buffer:void 0,Oee=g1?g1.isBuffer:void 0,Eq="[object Arguments]",Tq="[object Array]",Lq="[object Boolean]",Oq="[object Date]",Nq="[object Error]",Dq="[object Function]",Pq="[object Map]",zq="[object Number]",Uq="[object Object]",Rq="[object RegExp]",Fq="[object Set]",Vq="[object String]",Bq="[object WeakMap]",qq="[object ArrayBuffer]",Gq="[object DataView]",Yq="[object Float32Array]",Hq="[object Float64Array]",Zq="[object Int8Array]",Qq="[object Int16Array]",Wq="[object Int32Array]",Kq="[object Uint8Array]",Jq="[object Uint8ClampedArray]",Xq="[object Uint16Array]",eG="[object Uint32Array]",V={};V[Yq]=V[Hq]=V[Zq]=V[Qq]=V[Wq]=V[Kq]=V[Jq]=V[Xq]=V[eG]=!0;V[Eq]=V[Tq]=V[qq]=V[Lq]=V[Gq]=V[Oq]=V[Nq]=V[Dq]=V[Pq]=V[zq]=V[Uq]=V[Rq]=V[Fq]=V[Vq]=V[Bq]=!1;function tG(e){return Xl(e)&&Aq(e.length)&&!!V[an(e)]}var rG=tG;function iG(e){return function(t){return e(t)}}var nG=iG,G1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=G1&&typeof module=="object"&&module&&!module.nodeType&&module,oG=Xi&&Xi.exports===G1,Dl=oG&&R1.process,aG=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Dl&&Dl.binding&&Dl.binding("util")}catch{}}(),f1=aG,y1=f1&&f1.isTypedArray,Nee=y1?nG(y1):rG,lG=Object.prototype,Dee=lG.hasOwnProperty;function sG(e,t){return function(r){return e(t(r))}}var uG=sG,Pee=uG(Object.keys,Object),cG=Object.prototype,zee=cG.hasOwnProperty,dG=ar(Object,"create"),tn=dG;function pG(){this.__data__=tn?tn(null):{},this.size=0}var gG=pG;function fG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var yG=fG,mG="__lodash_hash_undefined__",bG=Object.prototype,hG=bG.hasOwnProperty;function vG(e){var t=this.__data__;if(tn){var r=t[e];return r===mG?void 0:r}return hG.call(t,e)?t[e]:void 0}var wG=vG,kG=Object.prototype,xG=kG.hasOwnProperty;function IG(e){var t=this.__data__;return tn?t[e]!==void 0:xG.call(t,e)}var CG=IG,AG="__lodash_hash_undefined__";function MG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?AG:t,this}var jG=MG;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=gG;lr.prototype.delete=yG;lr.prototype.get=wG;lr.prototype.has=CG;lr.prototype.set=jG;var m1=lr;function SG(){this.__data__=[],this.size=0}var $G=SG;function _G(e,t){for(var r=e.length;r--;)if(xq(e[r][0],t))return r;return-1}var ko=_G,EG=Array.prototype,TG=EG.splice;function LG(e){var t=this.__data__,r=ko(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():TG.call(t,r,1),--this.size,!0}var OG=LG;function NG(e){var t=this.__data__,r=ko(t,e);return r<0?void 0:t[r][1]}var DG=NG;function PG(e){return ko(this.__data__,e)>-1}var zG=PG;function UG(e,t){var r=this.__data__,i=ko(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var RG=UG;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=$G;sr.prototype.delete=OG;sr.prototype.get=DG;sr.prototype.has=zG;sr.prototype.set=RG;var xo=sr,FG=ar(oe,"Map"),rn=FG;function VG(){this.size=0,this.__data__={hash:new m1,map:new(rn||xo),string:new m1}}var BG=VG;function qG(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var GG=qG;function YG(e,t){var r=e.__data__;return GG(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Io=YG;function HG(e){var t=Io(this,e).delete(e);return this.size-=t?1:0,t}var ZG=HG;function QG(e){return Io(this,e).get(e)}var WG=QG;function KG(e){return Io(this,e).has(e)}var JG=KG;function XG(e,t){var r=Io(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var eY=XG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=BG;ur.prototype.delete=ZG;ur.prototype.get=WG;ur.prototype.has=JG;ur.prototype.set=eY;var Y1=ur;function tY(){this.__data__=new xo,this.size=0}var rY=tY;function iY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var nY=iY;function oY(e){return this.__data__.get(e)}var aY=oY;function lY(e){return this.__data__.has(e)}var sY=lY,uY=200;function cY(e,t){var r=this.__data__;if(r instanceof xo){var i=r.__data__;if(!rn||i.length<uY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Y1(i)}return r.set(e,t),this.size=r.size,this}var dY=cY;function ln(e){var t=this.__data__=new xo(e);this.size=t.size}ln.prototype.clear=rY;ln.prototype.delete=nY;ln.prototype.get=aY;ln.prototype.has=sY;ln.prototype.set=dY;var pY=Object.prototype,Uee=pY.propertyIsEnumerable,gY=ar(oe,"DataView"),Bl=gY,fY=ar(oe,"Promise"),ql=fY,yY=ar(oe,"Set"),Gl=yY,b1="[object Map]",mY="[object Object]",h1="[object Promise]",v1="[object Set]",w1="[object WeakMap]",k1="[object DataView]",bY=Ve(Bl),hY=Ve(rn),vY=Ve(ql),wY=Ve(Gl),kY=Ve(Vl),tr=an;(Bl&&tr(new Bl(new ArrayBuffer(1)))!=k1||rn&&tr(new rn)!=b1||ql&&tr(ql.resolve())!=h1||Gl&&tr(new Gl)!=v1||Vl&&tr(new Vl)!=w1)&&(tr=function(e){var t=an(e),r=t==mY?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case bY:return k1;case hY:return b1;case vY:return h1;case wY:return v1;case kY:return w1}return t});var Ree=oe.Uint8Array,xY="__lodash_hash_undefined__";function IY(e){return this.__data__.set(e,xY),this}var CY=IY;function AY(e){return this.__data__.has(e)}var MY=AY;function Yl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Y1;++t<r;)this.add(e[t])}Yl.prototype.add=Yl.prototype.push=CY;Yl.prototype.has=MY;var x1=nr?nr.prototype:void 0,Fee=x1?x1.valueOf:void 0,jY=Object.prototype,Vee=jY.hasOwnProperty,SY=Object.prototype,Bee=SY.hasOwnProperty,qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Gee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Yee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function H1(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 $Y(e,t){let r=await H1(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 _Y(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 H1(i,t)}function EY(e){return e!==void 0}var TY=EY;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Z1=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))}},LY=class W1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new W1),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 OY(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 NY({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 DY=NY,Pl="ly.img.ai.temp";async function PY(e,t){return e.engine.asset.findAllSources().includes(Pl)||e.engine.asset.addLocalSource(Pl),e.engine.asset.apply(Pl,t)}function zY(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 K1(){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 UY(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 RY(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 es(e){return e instanceof Error&&e.name==="AbortError"}function FY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function VY(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 BY(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 qY=BY;function GY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),YY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:zY(e)}))}function YY(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 I1=GY,HY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ts=HY;function ZY(e,t,r){switch(t){case"image":return QY(e,r[t]);case"video":return WY(e,r[t]);case"sticker":return KY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ts,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function WY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ts,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function KY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ts,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var JY=ZY;async function XY(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 eH(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 tH(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 rH(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 iH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function eH(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 tH(e,t,r){let i=t.width,n=t.height,a=await UY(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 rH(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 iH(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 J1=XY;function nH(e){switch(e.userFlow){case"placeholder":return aH(e);case"generation-only":return oH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function oH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ae(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ae(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ae(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=K1(),c=await J1(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 aH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ae(t,r))return{status:"aborted"};let s=K1(),c=JY(s,a,o);if(i=await PY(t,c),Ae(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ae(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await J1(s,a,o,l.output);if(Ae(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ae(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(es(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 Ae(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var lH=nH;function rs(e){return`${e}.generating`}function sH(e){return`${e}.abort`}function uH(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(sH(d),()=>{}),m=c.global(rs(d),!1),f,h=m.value&&p,b=()=>{h&&(g.value(),m.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();v=a.requiredInputs.every(y=>!x.input[y])}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:m.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{l.ui.closeDialog(y),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{b(),l.ui.closeDialog(y),k.setValue(void 0)}}});k.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{m.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let y=await lH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(y.status==="aborted")return;if(y.status==="error"){I1(y.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:y.middlewareOptions});return}if(y.status==="success"&&y.type==="sync"&&!y.middlewareOptions?.defaultPrevented()){let I=t.output.notification;cH(l,I,()=>({input:i().input,output:y.output}))}}catch(y){if(es(y))return;I1(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 cH(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 X1=uH;async function dH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(rs(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return X1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var pH=dH;function ef(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 Wi(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=ef(e,t.$ref),n={...Wi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Wi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Wi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Wi(e,t[n],r));return i}return t}function gH(e){return Wi(e,{...e})}function fH(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 yH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return mH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function mH(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=bH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function bH(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 tf=yH;function Me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function rf(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 nf(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?hH(e,c,r,i,n,a,o,s):of(e,c,r,i,n,a,o,s);case"boolean":return af(e,c,r,i,n,a,o,s);case"number":case"integer":return lf(e,c,r,i,n,a,o,s);case"object":return Hl(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 vH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Hl(e,t,r,i,n,a,o,s){let c=tf(t.schema??{},i).reduce((l,u)=>{let d=nf(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 of(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Me(t,r,o),m=Me(t,r,o,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],b=un(d,h,f,t.schema.default,""),v=l(p,b),k=wH(t.schema),x=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput",y=m.length>0?m:void 0;return c[x](p,{inputLabel:g,...y&&{placeholder:y},...v}),()=>({id:t.id,type:"string",value:v.value})}function hH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Me(t,r,o),{labels:m,icons:f}=rf(t.schema),h=(t.schema.enum??[]).map(I=>({id:I,label:Me(t,r,o,I),icon:f[I]})),b=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,b,t.schema.default,h[0]?.id),x=k!=null?h.find(I=>I.id===k)??h[0]:h[0],y=l(p,x);return c.Select(p,{inputLabel:g,values:h,...y}),()=>({id:t.id,type:"string",value:y.value.id})}function af(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Me(t,r,o),m=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(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 lf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Me(t,r,o),m=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(m!=null?v=m:f!=null?v=f:v=0);let k=un(d,b,h,v,v),x=l(p,k);if(m!=null&&f!=null){let y=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(y=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:m,max:f,step:y,...x})}else c.NumberInput(p,{inputLabel:g,min:m,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function vH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Me(t,r,o),m=t.schema.anyOf??[],f=[],h={},b={},{labels:v,icons:k}=rf(t.schema),x=sn(u,n.cesdk),y=s?.properties?.[d]??a.properties?.[d],I={string:of,boolean:af,integer:lf,object:Hl},j=(w,_)=>w.$ref?w.$ref.split("/").pop():_.split(".").pop()??_,A=(w,_)=>({id:w,label:Me(t,r,o,_),icon:k[_]??k[w]});m.forEach((w,_)=>{let C=`${r.id}.${d}.anyOf[${_}]`;if(w.$ref||w.title){let M=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Hl(e,{id:C,schema:{...w,title:v[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(w.type==="string"&&w.enum)w.enum.forEach(M=>{f.push(A(M,M))});else if(w.type&&I[w.type]){let M=I[w.type];h[C]=()=>M(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let q=j(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||q,icon:w.title&&k[w.title]||k[q]}:A(C,q))}});let E=un(d,y,x,t.schema.default,null),S=E!=null?f.find(w=>w.id===E)??f[0]:f[0],$=l(p,S);if(c.Select(p,{inputLabel:g,values:f,...$}),$.value.id in h){let w=h[$.value.id]();b[$.value.id]=w}return()=>{let w=b[$.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:$.value.id}}}function wH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var kH=nf,xH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function C1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function IH(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]||C1(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]||C1(g);n[a(l.id,g)]=m}})}});let c={...xH,...n};Object.keys(c).length>0&&r.cesdk.i18n.setTranslations({en:c})}async function CH({options:e,provider:t,panelInput:r,config:i,providerConfig:n},a){let{id:o}=t;if(r==null)return;i.debug&&console.log(`Provider: ${o} (schema-based)`);let s=gH(r.document),c=ef(s,r.inputReference);if(!fH(c,i.debug))throw new Error(`Input reference '${r.inputReference}' does not resolve to a valid OpenAPI schema`);let l=c,u=tf(l,r);return IH(u,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{u.forEach(b=>{let v=kH(d,b,t,r,e,i,t.kind,n);v!=null&&(Array.isArray(v)?g.push(...v):g.push(v))})}});let m=g.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((v,[k,x])=>(v[k]=f(x),v),{}):b.value,h=m.reduce((b,v)=>(b[v.id]=f(v),b),{});X1(d,t,a,()=>({input:h}),()=>r.getBlockInput(h),{...e,requiredInputs:l.required,createPlaceholderBlock:r.userFlow==="placeholder"},i)}}var AH=CH;async function MH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return pH(e,t);case"schema":return AH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var jH=MH;function SH(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 EB(o,r)),o}return i}var $H=SH;function _H(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 EH=_H,zl="@imgly/plugin-ai-generation",TH=`
@@ -662,7 +662,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
662
 
663
663
  </symbol>
664
664
  </svg>
665
- `,rZ=tZ,iZ=typeof global=="object"&&global&&global.Object===Object&&global,uf=iZ,nZ=typeof self=="object"&&self&&self.Object===Object&&self,oZ=uf||nZ||Function("return this")(),ae=oZ,aZ=ae.Symbol,or=aZ,cf=Object.prototype,lZ=cf.hasOwnProperty,sZ=cf.toString,Qi=or?or.toStringTag:void 0;function uZ(e){var t=lZ.call(e,Qi),r=e[Qi];try{e[Qi]=void 0;var i=!0}catch{}var n=sZ.call(e);return i&&(t?e[Qi]=r:delete e[Qi]),n}var cZ=uZ,dZ=Object.prototype,pZ=dZ.toString;function gZ(e){return pZ.call(e)}var fZ=gZ,yZ="[object Null]",mZ="[object Undefined]",M1=or?or.toStringTag:void 0;function bZ(e){return e==null?e===void 0?mZ:yZ:M1&&M1 in Object(e)?cZ(e):fZ(e)}var cn=bZ;function hZ(e){return e!=null&&typeof e=="object"}var is=hZ,Hee=Array.isArray;function vZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var df=vZ,wZ="[object AsyncFunction]",kZ="[object Function]",xZ="[object GeneratorFunction]",IZ="[object Proxy]";function CZ(e){if(!df(e))return!1;var t=cn(e);return t==kZ||t==xZ||t==wZ||t==IZ}var AZ=CZ,MZ=ae["__core-js_shared__"],Rl=MZ,j1=function(){var e=/[^.]+$/.exec(Rl&&Rl.keys&&Rl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jZ(e){return!!j1&&j1 in e}var SZ=jZ,$Z=Function.prototype,_Z=$Z.toString;function EZ(e){if(e!=null){try{return _Z.call(e)}catch{}try{return e+""}catch{}}return""}var Be=EZ,TZ=/[\\^$.*+?()[\]{}|]/g,LZ=/^\[object .+?Constructor\]$/,OZ=Function.prototype,NZ=Object.prototype,DZ=OZ.toString,PZ=NZ.hasOwnProperty,zZ=RegExp("^"+DZ.call(PZ).replace(TZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UZ(e){if(!df(e)||SZ(e))return!1;var t=AZ(e)?zZ:LZ;return t.test(Be(e))}var RZ=UZ;function FZ(e,t){return e?.[t]}var VZ=FZ;function BZ(e,t){var r=VZ(e,t);return RZ(r)?r:void 0}var cr=BZ,qZ=cr(ae,"WeakMap"),Zl=qZ;function GZ(e,t){return e===t||e!==e&&t!==t}var YZ=GZ,HZ=9007199254740991;function ZZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HZ}var QZ=ZZ,Zee=Object.prototype,WZ="[object Arguments]";function KZ(e){return is(e)&&cn(e)==WZ}var S1=KZ,pf=Object.prototype,JZ=pf.hasOwnProperty,XZ=pf.propertyIsEnumerable,Qee=S1(function(){return arguments}())?S1:function(e){return is(e)&&JZ.call(e,"callee")&&!XZ.call(e,"callee")},gf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$1=gf&&typeof module=="object"&&module&&!module.nodeType&&module,eQ=$1&&$1.exports===gf,_1=eQ?ae.Buffer:void 0,Wee=_1?_1.isBuffer:void 0,tQ="[object Arguments]",rQ="[object Array]",iQ="[object Boolean]",nQ="[object Date]",oQ="[object Error]",aQ="[object Function]",lQ="[object Map]",sQ="[object Number]",uQ="[object Object]",cQ="[object RegExp]",dQ="[object Set]",pQ="[object String]",gQ="[object WeakMap]",fQ="[object ArrayBuffer]",yQ="[object DataView]",mQ="[object Float32Array]",bQ="[object Float64Array]",hQ="[object Int8Array]",vQ="[object Int16Array]",wQ="[object Int32Array]",kQ="[object Uint8Array]",xQ="[object Uint8ClampedArray]",IQ="[object Uint16Array]",CQ="[object Uint32Array]",B={};B[mQ]=B[bQ]=B[hQ]=B[vQ]=B[wQ]=B[kQ]=B[xQ]=B[IQ]=B[CQ]=!0;B[tQ]=B[rQ]=B[fQ]=B[iQ]=B[yQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=B[uQ]=B[cQ]=B[dQ]=B[pQ]=B[gQ]=!1;function AQ(e){return is(e)&&QZ(e.length)&&!!B[cn(e)]}var MQ=AQ;function jQ(e){return function(t){return e(t)}}var SQ=jQ,ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=ff&&typeof module=="object"&&module&&!module.nodeType&&module,$Q=en&&en.exports===ff,Fl=$Q&&uf.process,_Q=function(){try{var e=en&&en.require&&en.require("util").types;return e||Fl&&Fl.binding&&Fl.binding("util")}catch{}}(),E1=_Q,T1=E1&&E1.isTypedArray,Kee=T1?SQ(T1):MQ,EQ=Object.prototype,Jee=EQ.hasOwnProperty;function TQ(e,t){return function(r){return e(t(r))}}var LQ=TQ,Xee=LQ(Object.keys,Object),OQ=Object.prototype,ete=OQ.hasOwnProperty,NQ=cr(Object,"create"),nn=NQ;function DQ(){this.__data__=nn?nn(null):{},this.size=0}var PQ=DQ;function zQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var UQ=zQ,RQ="__lodash_hash_undefined__",FQ=Object.prototype,VQ=FQ.hasOwnProperty;function BQ(e){var t=this.__data__;if(nn){var r=t[e];return r===RQ?void 0:r}return VQ.call(t,e)?t[e]:void 0}var qQ=BQ,GQ=Object.prototype,YQ=GQ.hasOwnProperty;function HQ(e){var t=this.__data__;return nn?t[e]!==void 0:YQ.call(t,e)}var ZQ=HQ,QQ="__lodash_hash_undefined__";function WQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?QQ:t,this}var KQ=WQ;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=PQ;dr.prototype.delete=UQ;dr.prototype.get=qQ;dr.prototype.has=ZQ;dr.prototype.set=KQ;var L1=dr;function JQ(){this.__data__=[],this.size=0}var XQ=JQ;function eW(e,t){for(var r=e.length;r--;)if(YZ(e[r][0],t))return r;return-1}var Co=eW,tW=Array.prototype,rW=tW.splice;function iW(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rW.call(t,r,1),--this.size,!0}var nW=iW;function oW(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var aW=oW;function lW(e){return Co(this.__data__,e)>-1}var sW=lW;function uW(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var cW=uW;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=XQ;pr.prototype.delete=nW;pr.prototype.get=aW;pr.prototype.has=sW;pr.prototype.set=cW;var Ao=pr,dW=cr(ae,"Map"),on=dW;function pW(){this.size=0,this.__data__={hash:new L1,map:new(on||Ao),string:new L1}}var gW=pW;function fW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yW=fW;function mW(e,t){var r=e.__data__;return yW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=mW;function bW(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var hW=bW;function vW(e){return Mo(this,e).get(e)}var wW=vW;function kW(e){return Mo(this,e).has(e)}var xW=kW;function IW(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var CW=IW;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=gW;gr.prototype.delete=hW;gr.prototype.get=wW;gr.prototype.has=xW;gr.prototype.set=CW;var yf=gr;function AW(){this.__data__=new Ao,this.size=0}var MW=AW;function jW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SW=jW;function $W(e){return this.__data__.get(e)}var _W=$W;function EW(e){return this.__data__.has(e)}var TW=EW,LW=200;function OW(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!on||i.length<LW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yf(i)}return r.set(e,t),this.size=r.size,this}var NW=OW;function dn(e){var t=this.__data__=new Ao(e);this.size=t.size}dn.prototype.clear=MW;dn.prototype.delete=SW;dn.prototype.get=_W;dn.prototype.has=TW;dn.prototype.set=NW;var DW=Object.prototype,tte=DW.propertyIsEnumerable,PW=cr(ae,"DataView"),Ql=PW,zW=cr(ae,"Promise"),Wl=zW,UW=cr(ae,"Set"),Kl=UW,O1="[object Map]",RW="[object Object]",N1="[object Promise]",D1="[object Set]",P1="[object WeakMap]",z1="[object DataView]",FW=Be(Ql),VW=Be(on),BW=Be(Wl),qW=Be(Kl),GW=Be(Zl),rr=cn;(Ql&&rr(new Ql(new ArrayBuffer(1)))!=z1||on&&rr(new on)!=O1||Wl&&rr(Wl.resolve())!=N1||Kl&&rr(new Kl)!=D1||Zl&&rr(new Zl)!=P1)&&(rr=function(e){var t=cn(e),r=t==RW?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case FW:return z1;case VW:return O1;case BW:return N1;case qW:return D1;case GW:return P1}return t});var rte=ae.Uint8Array,YW="__lodash_hash_undefined__";function HW(e){return this.__data__.set(e,YW),this}var ZW=HW;function QW(e){return this.__data__.has(e)}var WW=QW;function Jl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yf;++t<r;)this.add(e[t])}Jl.prototype.add=Jl.prototype.push=ZW;Jl.prototype.has=WW;var U1=or?or.prototype:void 0,ite=U1?U1.valueOf:void 0,KW=Object.prototype,nte=KW.hasOwnProperty,JW=Object.prototype,ote=JW.hasOwnProperty,ate=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),lte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ste=new RegExp(/[A-Fa-f0-9]{2}/,"g");function XW(e){return e==null?[]:Array.isArray(e)?e:[e]}var eK=XW;function tK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function rK(e){return typeof e?.translate=="function"}function iK(e,t,r){return e&&tK(e)&&rK(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Ce="ly.img.ai.sticker-generation";function nK(e){return{async initialize({cesdk:t}){if(t==null)return;VY(t,Ji,"0.2.11"),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=Z1.get(),i=`${Ji}.action.label`;t.ui.addIconSet(eZ,rZ),t.i18n.setTranslations({en:{[`panel.${Ce}`]:"Sticker Generation",[`${Ce}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:iK(t,i,"Generate Sticker"),meta:{panelId:Ce},execute:()=>{t.ui.isPanelOpen(Ce)?t.ui.closePanel(Ce):t.ui.openPanel(Ce)}}),a=e.providers?.text2sticker,o=await Promise.all(eK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await XH("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ce,s.panel.builderRenderFunction),qY({cesdk:t,panelId:Ce})):n()}}}var oK=nK,aK=e=>({name:Ji,version:"0.2.11",...oK(e)}),mf=aK;var ns=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=lK(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 bf(e,t,r=[]){return new ns(e,t,r)}function lK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=Qs("apps"),sK=512,uK=128,hf=e=>({async initialize({cesdk:t}){if(t==null)return;Ws(t,pn,"0.2.11");let{providers:r}=e;await t.addPlugin(s1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(bc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin($d({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Rp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),fK(t),cK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function cK(e,t){gK(e);let r=dK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({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?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function dK(e,t){let r=vn.get(),i=bf(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?pK(t.baseURL,o):void 0,width:sK,height:uK}}).filter(Ms)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function pK(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 gK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?b.sourceIds.some(k=>{let x=v(e.version.startsWith("1.51.")?k:{sourceId:k});return x===u||x==="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 fK(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","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var yK=e=>({name:pn,version:"0.2.11",...hf(e)}),Mte=yK;export{Mte as default};
665
+ `,rZ=tZ,iZ=typeof global=="object"&&global&&global.Object===Object&&global,uf=iZ,nZ=typeof self=="object"&&self&&self.Object===Object&&self,oZ=uf||nZ||Function("return this")(),ae=oZ,aZ=ae.Symbol,or=aZ,cf=Object.prototype,lZ=cf.hasOwnProperty,sZ=cf.toString,Qi=or?or.toStringTag:void 0;function uZ(e){var t=lZ.call(e,Qi),r=e[Qi];try{e[Qi]=void 0;var i=!0}catch{}var n=sZ.call(e);return i&&(t?e[Qi]=r:delete e[Qi]),n}var cZ=uZ,dZ=Object.prototype,pZ=dZ.toString;function gZ(e){return pZ.call(e)}var fZ=gZ,yZ="[object Null]",mZ="[object Undefined]",M1=or?or.toStringTag:void 0;function bZ(e){return e==null?e===void 0?mZ:yZ:M1&&M1 in Object(e)?cZ(e):fZ(e)}var cn=bZ;function hZ(e){return e!=null&&typeof e=="object"}var is=hZ,Hee=Array.isArray;function vZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var df=vZ,wZ="[object AsyncFunction]",kZ="[object Function]",xZ="[object GeneratorFunction]",IZ="[object Proxy]";function CZ(e){if(!df(e))return!1;var t=cn(e);return t==kZ||t==xZ||t==wZ||t==IZ}var AZ=CZ,MZ=ae["__core-js_shared__"],Rl=MZ,j1=function(){var e=/[^.]+$/.exec(Rl&&Rl.keys&&Rl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jZ(e){return!!j1&&j1 in e}var SZ=jZ,$Z=Function.prototype,_Z=$Z.toString;function EZ(e){if(e!=null){try{return _Z.call(e)}catch{}try{return e+""}catch{}}return""}var Be=EZ,TZ=/[\\^$.*+?()[\]{}|]/g,LZ=/^\[object .+?Constructor\]$/,OZ=Function.prototype,NZ=Object.prototype,DZ=OZ.toString,PZ=NZ.hasOwnProperty,zZ=RegExp("^"+DZ.call(PZ).replace(TZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UZ(e){if(!df(e)||SZ(e))return!1;var t=AZ(e)?zZ:LZ;return t.test(Be(e))}var RZ=UZ;function FZ(e,t){return e?.[t]}var VZ=FZ;function BZ(e,t){var r=VZ(e,t);return RZ(r)?r:void 0}var cr=BZ,qZ=cr(ae,"WeakMap"),Zl=qZ;function GZ(e,t){return e===t||e!==e&&t!==t}var YZ=GZ,HZ=9007199254740991;function ZZ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HZ}var QZ=ZZ,Zee=Object.prototype,WZ="[object Arguments]";function KZ(e){return is(e)&&cn(e)==WZ}var S1=KZ,pf=Object.prototype,JZ=pf.hasOwnProperty,XZ=pf.propertyIsEnumerable,Qee=S1(function(){return arguments}())?S1:function(e){return is(e)&&JZ.call(e,"callee")&&!XZ.call(e,"callee")},gf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$1=gf&&typeof module=="object"&&module&&!module.nodeType&&module,eQ=$1&&$1.exports===gf,_1=eQ?ae.Buffer:void 0,Wee=_1?_1.isBuffer:void 0,tQ="[object Arguments]",rQ="[object Array]",iQ="[object Boolean]",nQ="[object Date]",oQ="[object Error]",aQ="[object Function]",lQ="[object Map]",sQ="[object Number]",uQ="[object Object]",cQ="[object RegExp]",dQ="[object Set]",pQ="[object String]",gQ="[object WeakMap]",fQ="[object ArrayBuffer]",yQ="[object DataView]",mQ="[object Float32Array]",bQ="[object Float64Array]",hQ="[object Int8Array]",vQ="[object Int16Array]",wQ="[object Int32Array]",kQ="[object Uint8Array]",xQ="[object Uint8ClampedArray]",IQ="[object Uint16Array]",CQ="[object Uint32Array]",B={};B[mQ]=B[bQ]=B[hQ]=B[vQ]=B[wQ]=B[kQ]=B[xQ]=B[IQ]=B[CQ]=!0;B[tQ]=B[rQ]=B[fQ]=B[iQ]=B[yQ]=B[nQ]=B[oQ]=B[aQ]=B[lQ]=B[sQ]=B[uQ]=B[cQ]=B[dQ]=B[pQ]=B[gQ]=!1;function AQ(e){return is(e)&&QZ(e.length)&&!!B[cn(e)]}var MQ=AQ;function jQ(e){return function(t){return e(t)}}var SQ=jQ,ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=ff&&typeof module=="object"&&module&&!module.nodeType&&module,$Q=en&&en.exports===ff,Fl=$Q&&uf.process,_Q=function(){try{var e=en&&en.require&&en.require("util").types;return e||Fl&&Fl.binding&&Fl.binding("util")}catch{}}(),E1=_Q,T1=E1&&E1.isTypedArray,Kee=T1?SQ(T1):MQ,EQ=Object.prototype,Jee=EQ.hasOwnProperty;function TQ(e,t){return function(r){return e(t(r))}}var LQ=TQ,Xee=LQ(Object.keys,Object),OQ=Object.prototype,ete=OQ.hasOwnProperty,NQ=cr(Object,"create"),nn=NQ;function DQ(){this.__data__=nn?nn(null):{},this.size=0}var PQ=DQ;function zQ(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var UQ=zQ,RQ="__lodash_hash_undefined__",FQ=Object.prototype,VQ=FQ.hasOwnProperty;function BQ(e){var t=this.__data__;if(nn){var r=t[e];return r===RQ?void 0:r}return VQ.call(t,e)?t[e]:void 0}var qQ=BQ,GQ=Object.prototype,YQ=GQ.hasOwnProperty;function HQ(e){var t=this.__data__;return nn?t[e]!==void 0:YQ.call(t,e)}var ZQ=HQ,QQ="__lodash_hash_undefined__";function WQ(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?QQ:t,this}var KQ=WQ;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=PQ;dr.prototype.delete=UQ;dr.prototype.get=qQ;dr.prototype.has=ZQ;dr.prototype.set=KQ;var L1=dr;function JQ(){this.__data__=[],this.size=0}var XQ=JQ;function eW(e,t){for(var r=e.length;r--;)if(YZ(e[r][0],t))return r;return-1}var Co=eW,tW=Array.prototype,rW=tW.splice;function iW(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rW.call(t,r,1),--this.size,!0}var nW=iW;function oW(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var aW=oW;function lW(e){return Co(this.__data__,e)>-1}var sW=lW;function uW(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var cW=uW;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=XQ;pr.prototype.delete=nW;pr.prototype.get=aW;pr.prototype.has=sW;pr.prototype.set=cW;var Ao=pr,dW=cr(ae,"Map"),on=dW;function pW(){this.size=0,this.__data__={hash:new L1,map:new(on||Ao),string:new L1}}var gW=pW;function fW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yW=fW;function mW(e,t){var r=e.__data__;return yW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=mW;function bW(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var hW=bW;function vW(e){return Mo(this,e).get(e)}var wW=vW;function kW(e){return Mo(this,e).has(e)}var xW=kW;function IW(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var CW=IW;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=gW;gr.prototype.delete=hW;gr.prototype.get=wW;gr.prototype.has=xW;gr.prototype.set=CW;var yf=gr;function AW(){this.__data__=new Ao,this.size=0}var MW=AW;function jW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SW=jW;function $W(e){return this.__data__.get(e)}var _W=$W;function EW(e){return this.__data__.has(e)}var TW=EW,LW=200;function OW(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!on||i.length<LW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yf(i)}return r.set(e,t),this.size=r.size,this}var NW=OW;function dn(e){var t=this.__data__=new Ao(e);this.size=t.size}dn.prototype.clear=MW;dn.prototype.delete=SW;dn.prototype.get=_W;dn.prototype.has=TW;dn.prototype.set=NW;var DW=Object.prototype,tte=DW.propertyIsEnumerable,PW=cr(ae,"DataView"),Ql=PW,zW=cr(ae,"Promise"),Wl=zW,UW=cr(ae,"Set"),Kl=UW,O1="[object Map]",RW="[object Object]",N1="[object Promise]",D1="[object Set]",P1="[object WeakMap]",z1="[object DataView]",FW=Be(Ql),VW=Be(on),BW=Be(Wl),qW=Be(Kl),GW=Be(Zl),rr=cn;(Ql&&rr(new Ql(new ArrayBuffer(1)))!=z1||on&&rr(new on)!=O1||Wl&&rr(Wl.resolve())!=N1||Kl&&rr(new Kl)!=D1||Zl&&rr(new Zl)!=P1)&&(rr=function(e){var t=cn(e),r=t==RW?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case FW:return z1;case VW:return O1;case BW:return N1;case qW:return D1;case GW:return P1}return t});var rte=ae.Uint8Array,YW="__lodash_hash_undefined__";function HW(e){return this.__data__.set(e,YW),this}var ZW=HW;function QW(e){return this.__data__.has(e)}var WW=QW;function Jl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yf;++t<r;)this.add(e[t])}Jl.prototype.add=Jl.prototype.push=ZW;Jl.prototype.has=WW;var U1=or?or.prototype:void 0,ite=U1?U1.valueOf:void 0,KW=Object.prototype,nte=KW.hasOwnProperty,JW=Object.prototype,ote=JW.hasOwnProperty,ate=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),lte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ste=new RegExp(/[A-Fa-f0-9]{2}/,"g");function XW(e){return e==null?[]:Array.isArray(e)?e:[e]}var eK=XW;function tK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function rK(e){return typeof e?.translate=="function"}function iK(e,t,r){return e&&tK(e)&&rK(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Ce="ly.img.ai.sticker-generation";function nK(e){return{async initialize({cesdk:t}){if(t==null)return;VY(t,Ji,"0.2.12"),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=Z1.get(),i=`${Ji}.action.label`;t.ui.addIconSet(eZ,rZ),t.i18n.setTranslations({en:{[`panel.${Ce}`]:"Sticker Generation",[`${Ce}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:iK(t,i,"Generate Sticker"),meta:{panelId:Ce},execute:()=>{t.ui.isPanelOpen(Ce)?t.ui.closePanel(Ce):t.ui.openPanel(Ce)}}),a=e.providers?.text2sticker,o=await Promise.all(eK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await XH("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Ce,s.panel.builderRenderFunction),qY({cesdk:t,panelId:Ce})):n()}}}var oK=nK,aK=e=>({name:Ji,version:"0.2.12",...oK(e)}),mf=aK;var ns=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(x=>k.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(x=>k.groups?.includes(x)))),o){let k=o.toLowerCase();p=p.filter(x=>{let y=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return y&&y.includes(k)||I.some(j=>j.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(x=>{let y=x.tags?.[n]||[];return k.some(I=>y.includes(I))})}a&&p.sort((k,x)=>{let y=this.activeAssetIds.has(k.id),I=this.activeAssetIds.has(x.id);return y&&!I?-1:!y&&I?1:0}),d&&d!=="id"?p.sort((k,x)=>{let y=k.meta?.[d],I=x.meta?.[d];return y===void 0?1:I===void 0?-1:typeof y=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(y):y.localeCompare(I):typeof y=="number"&&typeof I=="number"?u==="Descending"?I-y:y-I:0}):d==="id"&&p.sort((k,x)=>u==="Descending"?x.id.localeCompare(k.id):k.id.localeCompare(x.id));let g=p.length,m=r*i,f=m+i,b=p.slice(m,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:b,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=lK(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 bf(e,t,r=[]){return new ns(e,t,r)}function lK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=Qs("apps"),sK=512,uK=128,hf=e=>({async initialize({cesdk:t}){if(t==null)return;Ws(t,pn,"0.2.12");let{providers:r}=e;await t.addPlugin(s1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(bc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin($d({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Rp({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),fK(t),cK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function cK(e,t){gK(e);let r=dK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:({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?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function dK(e,t){let r=vn.get(),i=bf(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?pK(t.baseURL,o):void 0,width:sK,height:uK}}).filter(Ms)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function pK(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 gK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let b=e.ui.getAssetLibraryEntry(h);if(b==null)return!1;let v=b.sceneMode;return typeof v=="string"?b.sceneMode===u||b.sceneMode==="All":typeof v=="function"?b.sourceIds.some(k=>{let x=v(e.version.startsWith("1.51.")?k:{sourceId:k});return x===u||x==="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 fK(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","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}})}var yK=e=>({name:pn,version:"0.2.12",...hf(e)}),Mte=yK;export{Mte as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imgly/plugin-ai-apps-web",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "AI apps orchestration plugin for the CE.SDK editor",
5
5
  "keywords": ["CE.SDK", "plugin", "AI", "ai apps"],
6
6
  "repository": {