@imgly/plugin-ai-apps-web 1.83.0-rc.0 → 1.83.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -163,7 +163,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
163
163
 
164
164
  </symbol>
165
165
  </svg>
166
- `,Zv=Yv,Qv=typeof global=="object"&&global&&global.Object===Object&&global,Lc=Qv,Wv=typeof self=="object"&&self&&self.Object===Object&&self,Kv=Lc||Wv||Function("return this")(),ee=Kv,Jv=ee.Symbol,ut=Jv,Tc=Object.prototype,Xv=Tc.hasOwnProperty,e8=Tc.toString,Er=ut?ut.toStringTag:void 0;function t8(e){var t=Xv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=e8.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var r8=t8,i8=Object.prototype,n8=i8.toString;function o8(e){return n8.call(e)}var a8=o8,l8="[object Null]",s8="[object Undefined]",Tu=ut?ut.toStringTag:void 0;function u8(e){return e==null?e===void 0?s8:l8:Tu&&Tu in Object(e)?r8(e):a8(e)}var Yr=u8;function c8(e){return e!=null&&typeof e=="object"}var va=c8,fX=Array.isArray;function d8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Oc=d8,p8="[object AsyncFunction]",g8="[object Function]",f8="[object GeneratorFunction]",y8="[object Proxy]";function m8(e){if(!Oc(e))return!1;var t=Yr(e);return t==g8||t==f8||t==p8||t==y8}var b8=m8,h8=ee["__core-js_shared__"],Wo=h8,Ou=function(){var e=/[^.]+$/.exec(Wo&&Wo.keys&&Wo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v8(e){return!!Ou&&Ou in e}var w8=v8,k8=Function.prototype,x8=k8.toString;function I8(e){if(e!=null){try{return x8.call(e)}catch{}try{return e+""}catch{}}return""}var Te=I8,C8=/[\\^$.*+?()[\]{}|]/g,A8=/^\[object .+?Constructor\]$/,S8=Function.prototype,M8=Object.prototype,j8=S8.toString,$8=M8.hasOwnProperty,_8=RegExp("^"+j8.call($8).replace(C8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E8(e){if(!Oc(e)||w8(e))return!1;var t=b8(e)?_8:A8;return t.test(Te(e))}var L8=E8;function T8(e,t){return e?.[t]}var O8=T8;function N8(e,t){var r=O8(e,t);return L8(r)?r:void 0}var yt=N8,D8=yt(ee,"WeakMap"),ua=D8;function P8(e,t){return e===t||e!==e&&t!==t}var z8=P8,U8=9007199254740991;function R8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U8}var F8=R8,yX=Object.prototype,V8="[object Arguments]";function B8(e){return va(e)&&Yr(e)==V8}var Nu=B8,Nc=Object.prototype,q8=Nc.hasOwnProperty,G8=Nc.propertyIsEnumerable,mX=Nu(function(){return arguments}())?Nu:function(e){return va(e)&&q8.call(e,"callee")&&!G8.call(e,"callee")},Dc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Dc&&typeof module=="object"&&module&&!module.nodeType&&module,H8=Du&&Du.exports===Dc,Pu=H8?ee.Buffer:void 0,bX=Pu?Pu.isBuffer:void 0,Y8="[object Arguments]",Z8="[object Array]",Q8="[object Boolean]",W8="[object Date]",K8="[object Error]",J8="[object Function]",X8="[object Map]",e7="[object Number]",t7="[object Object]",r7="[object RegExp]",i7="[object Set]",n7="[object String]",o7="[object WeakMap]",a7="[object ArrayBuffer]",l7="[object DataView]",s7="[object Float32Array]",u7="[object Float64Array]",c7="[object Int8Array]",d7="[object Int16Array]",p7="[object Int32Array]",g7="[object Uint8Array]",f7="[object Uint8ClampedArray]",y7="[object Uint16Array]",m7="[object Uint32Array]",D={};D[s7]=D[u7]=D[c7]=D[d7]=D[p7]=D[g7]=D[f7]=D[y7]=D[m7]=!0;D[Y8]=D[Z8]=D[a7]=D[Q8]=D[l7]=D[W8]=D[K8]=D[J8]=D[X8]=D[e7]=D[t7]=D[r7]=D[i7]=D[n7]=D[o7]=!1;function b7(e){return va(e)&&F8(e.length)&&!!D[Yr(e)]}var h7=b7;function v7(e){return function(t){return e(t)}}var w7=v7,Pc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Pc&&typeof module=="object"&&module&&!module.nodeType&&module,k7=Pr&&Pr.exports===Pc,Ko=k7&&Lc.process,x7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Ko&&Ko.binding&&Ko.binding("util")}catch{}}(),zu=x7,Uu=zu&&zu.isTypedArray,hX=Uu?w7(Uu):h7,I7=Object.prototype,vX=I7.hasOwnProperty;function C7(e,t){return function(r){return e(t(r))}}var A7=C7,wX=A7(Object.keys,Object),S7=Object.prototype,kX=S7.hasOwnProperty,M7=yt(Object,"create"),Fr=M7;function j7(){this.__data__=Fr?Fr(null):{},this.size=0}var $7=j7;function _7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E7=_7,L7="__lodash_hash_undefined__",T7=Object.prototype,O7=T7.hasOwnProperty;function N7(e){var t=this.__data__;if(Fr){var r=t[e];return r===L7?void 0:r}return O7.call(t,e)?t[e]:void 0}var D7=N7,P7=Object.prototype,z7=P7.hasOwnProperty;function U7(e){var t=this.__data__;return Fr?t[e]!==void 0:z7.call(t,e)}var R7=U7,F7="__lodash_hash_undefined__";function V7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?F7:t,this}var B7=V7;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=$7;mt.prototype.delete=E7;mt.prototype.get=D7;mt.prototype.has=R7;mt.prototype.set=B7;var Ru=mt;function q7(){this.__data__=[],this.size=0}var G7=q7;function H7(e,t){for(var r=e.length;r--;)if(z8(e[r][0],t))return r;return-1}var Tn=H7,Y7=Array.prototype,Z7=Y7.splice;function Q7(e){var t=this.__data__,r=Tn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z7.call(t,r,1),--this.size,!0}var W7=Q7;function K7(e){var t=this.__data__,r=Tn(t,e);return r<0?void 0:t[r][1]}var J7=K7;function X7(e){return Tn(this.__data__,e)>-1}var e6=X7;function t6(e,t){var r=this.__data__,i=Tn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r6=t6;function bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}bt.prototype.clear=G7;bt.prototype.delete=W7;bt.prototype.get=J7;bt.prototype.has=e6;bt.prototype.set=r6;var On=bt,i6=yt(ee,"Map"),Vr=i6;function n6(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||On),string:new Ru}}var o6=n6;function a6(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l6=a6;function s6(e,t){var r=e.__data__;return l6(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=s6;function u6(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var c6=u6;function d6(e){return Nn(this,e).get(e)}var p6=d6;function g6(e){return Nn(this,e).has(e)}var f6=g6;function y6(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m6=y6;function ht(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ht.prototype.clear=o6;ht.prototype.delete=c6;ht.prototype.get=p6;ht.prototype.has=f6;ht.prototype.set=m6;var zc=ht;function b6(){this.__data__=new On,this.size=0}var h6=b6;function v6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w6=v6;function k6(e){return this.__data__.get(e)}var x6=k6;function I6(e){return this.__data__.has(e)}var C6=I6,A6=200;function S6(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Vr||i.length<A6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zc(i)}return r.set(e,t),this.size=r.size,this}var M6=S6;function Zr(e){var t=this.__data__=new On(e);this.size=t.size}Zr.prototype.clear=h6;Zr.prototype.delete=w6;Zr.prototype.get=x6;Zr.prototype.has=C6;Zr.prototype.set=M6;var j6=Object.prototype,xX=j6.propertyIsEnumerable,$6=yt(ee,"DataView"),ca=$6,_6=yt(ee,"Promise"),da=_6,E6=yt(ee,"Set"),pa=E6,Fu="[object Map]",L6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",T6=Te(ca),O6=Te(Vr),N6=Te(da),D6=Te(pa),P6=Te(ua),at=Yr;(ca&&at(new ca(new ArrayBuffer(1)))!=Gu||Vr&&at(new Vr)!=Fu||da&&at(da.resolve())!=Vu||pa&&at(new pa)!=Bu||ua&&at(new ua)!=qu)&&(at=function(e){var t=Yr(e),r=t==L6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case T6:return Gu;case O6:return Fu;case N6:return Vu;case D6:return Bu;case P6:return qu}return t});var IX=ee.Uint8Array,z6="__lodash_hash_undefined__";function U6(e){return this.__data__.set(e,z6),this}var R6=U6;function F6(e){return this.__data__.has(e)}var V6=F6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=R6;ga.prototype.has=V6;var Hu=ut?ut.prototype:void 0,CX=Hu?Hu.valueOf:void 0,B6=Object.prototype,AX=B6.hasOwnProperty,q6=Object.prototype,SX=q6.hasOwnProperty,MX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function G6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Oe(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return G6(i,t)}function H6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=H6;function Y6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function Z6(e){return typeof e?.translate=="function"}function Q6(e,t,r){return e&&Y6(e)&&Z6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",W6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createImage","ly.img.createVideo","ly.img.animateBetweenImages"],Dn="editImage",ue=`ly.img.${Dn}`,Zu=`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 K6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.PromptInput(`${ue}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),J6=K6,Pn="swapBackground",ce=`ly.img.${Pn}`,Qu=`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 X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.PromptInput(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),ew=X6,zn="styleTransfer",Lr=`ly.img.${zn}`,tw=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Wu(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 rw=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:Lr,type:"quick",kind:"image",label:`${tw}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{rw.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),nw=iw,Un="artistTransfer",Tr=`ly.img.${Un}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Ku(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 aw=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${ow}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{aw.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),sw=lw,Rn="createVariant",de=`ly.img.${Rn}`,Ju=`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 uw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!ft()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.PromptInput(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let m=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(m,v)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let h=await Oe(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),cw=uw,Fn="createImage",Xu=`ly.img.${Fn}`,dw=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,ec=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function pw(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 gw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createImage",!0),H(e,{en:{[`${ec}`]:"Create Image from Reference...",[`${ec}.description`]:"Create an image from the selected image"}}),{id:Xu,type:"quick",kind:"image",label:`${dw}`,enable:ft(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Xu}.button`,{label:pw(n),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",isDisabled:!e9(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Oe(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.selectedProvider.fromImage",n),t9(e,n,o),e.ui.openPanel("ly.img.ai.image-generation"),i()}catch(a){console.error("Error opening image generation panel:",a)}}})}}),fw=gw,Vn="combineImages",pe=`ly.img.${Vn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Jo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Sn(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 yw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${Jo}.apply`]:"Combine",[`${Jo}`]:"Combine Images...",[`${Jo}.prompt`]:"Image Combination Instructions",[`${tc}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tc}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.PromptInput(`${pe}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(y),m=o.block.getHeight(y),v=.02*Math.min(h,m)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(I=>Oe(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),mw=yw,Bn="remixPage",rc=`ly.img.${Bn}`,bw=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,hw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function vw(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 ww=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${hw}`]:"Turn Page into Image"}}),{id:rc,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${bw}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${rc}.button`,{label:vw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(m=>{i.block.destroy(m)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),kw=ww,qn="remixPageWithPrompt",ge=`ly.img.${qn}`,ic=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,Xo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Mn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var xw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${Xo}`]:"Remix Page...",[`${Xo}.prompt`]:"Remix Page Prompt",[`${ic}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Xo}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ic}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.PromptInput(`${ge}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),m=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,I),o.block.appendChild(f,b),o.block.setWidth(b,h),o.block.setHeight(b,m),o.block.setPositionX(b,v),o.block.setPositionY(b,k);let x=o.block.createFill("image");o.block.setFill(b,x),o.block.setString(x,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Mn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),Iw=xw,fe="ly.img.ai.image-generation";function Cw(e){return{async initialize({cesdk:t}){if(t==null)return;c9(t,Nr,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Hv,Zv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image","ly.img.plugin-ai-image-generation-web.defaults.fromText.label":"Text to Image","ly.img.plugin-ai-image-generation-web.defaults.fromImage.label":"Image to Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:Q6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});Aw(e),r.register(J6({cesdk:t})),r.register(ew({cesdk:t})),r.register(nw({cesdk:t})),r.register(sw({cesdk:t})),r.register(cw({cesdk:t})),r.register(fw({cesdk:t})),r.register(mw({cesdk:t})),r.register(kw({cesdk:t})),r.register(Iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Yu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Yu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await kv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Gv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:W6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Ln})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),p9({cesdk:t,panelId:fe})):n()}}}function Aw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var Sw=Cw,Mw=e=>({name:Nr,version:"1.83.0-rc.0",...Sw(e)}),Uc=Mw;function jw(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var ve=jw,$w=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;kt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{kt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return kt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),kt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function kt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=kt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=kt(n,t,a)}return e}var _w=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ew=typeof global=="object"&&global&&global.Object===Object&&global,Ad=Ew,Lw=typeof self=="object"&&self&&self.Object===Object&&self,Tw=Ad||Lw||Function("return this")(),te=Tw,Ow=te.Symbol,xt=Ow,Sd=Object.prototype,Nw=Sd.hasOwnProperty,Dw=Sd.toString,Qr=xt?xt.toStringTag:void 0;function Pw(e){var t=Nw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=Dw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var zw=Pw,Uw=Object.prototype,Rw=Uw.toString;function Fw(e){return Rw.call(e)}var Vw=Fw,Bw="[object Null]",qw="[object Undefined]",Rc=xt?xt.toStringTag:void 0;function Gw(e){return e==null?e===void 0?qw:Bw:Rc&&Rc in Object(e)?zw(e):Vw(e)}var ai=Gw;function Hw(e){return e!=null&&typeof e=="object"}var Ra=Hw,OX=Array.isArray;function Yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Md=Yw,Zw="[object AsyncFunction]",Qw="[object Function]",Ww="[object GeneratorFunction]",Kw="[object Proxy]";function Jw(e){if(!Md(e))return!1;var t=ai(e);return t==Qw||t==Ww||t==Zw||t==Kw}var Xw=Jw,ek=te["__core-js_shared__"],wa=ek,Fc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tk(e){return!!Fc&&Fc in e}var rk=tk,ik=Function.prototype,nk=ik.toString;function ok(e){if(e!=null){try{return nk.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=ok,ak=/[\\^$.*+?()[\]{}|]/g,lk=/^\[object .+?Constructor\]$/,sk=Function.prototype,uk=Object.prototype,ck=sk.toString,dk=uk.hasOwnProperty,pk=RegExp("^"+ck.call(dk).replace(ak,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gk(e){if(!Md(e)||rk(e))return!1;var t=Xw(e)?pk:lk;return t.test(Ne(e))}var fk=gk;function yk(e,t){return e?.[t]}var mk=yk;function bk(e,t){var r=mk(e,t);return fk(r)?r:void 0}var Ct=bk,hk=Ct(te,"WeakMap"),Ma=hk;function vk(e,t){return e===t||e!==e&&t!==t}var wk=vk,kk=9007199254740991;function xk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kk}var Ik=xk,NX=Object.prototype,Ck="[object Arguments]";function Ak(e){return Ra(e)&&ai(e)==Ck}var Vc=Ak,jd=Object.prototype,Sk=jd.hasOwnProperty,Mk=jd.propertyIsEnumerable,DX=Vc(function(){return arguments}())?Vc:function(e){return Ra(e)&&Sk.call(e,"callee")&&!Mk.call(e,"callee")},$d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bc=$d&&typeof module=="object"&&module&&!module.nodeType&&module,jk=Bc&&Bc.exports===$d,qc=jk?te.Buffer:void 0,PX=qc?qc.isBuffer:void 0,$k="[object Arguments]",_k="[object Array]",Ek="[object Boolean]",Lk="[object Date]",Tk="[object Error]",Ok="[object Function]",Nk="[object Map]",Dk="[object Number]",Pk="[object Object]",zk="[object RegExp]",Uk="[object Set]",Rk="[object String]",Fk="[object WeakMap]",Vk="[object ArrayBuffer]",Bk="[object DataView]",qk="[object Float32Array]",Gk="[object Float64Array]",Hk="[object Int8Array]",Yk="[object Int16Array]",Zk="[object Int32Array]",Qk="[object Uint8Array]",Wk="[object Uint8ClampedArray]",Kk="[object Uint16Array]",Jk="[object Uint32Array]",P={};P[qk]=P[Gk]=P[Hk]=P[Yk]=P[Zk]=P[Qk]=P[Wk]=P[Kk]=P[Jk]=!0;P[$k]=P[_k]=P[Vk]=P[Ek]=P[Bk]=P[Lk]=P[Tk]=P[Ok]=P[Nk]=P[Dk]=P[Pk]=P[zk]=P[Uk]=P[Rk]=P[Fk]=!1;function Xk(e){return Ra(e)&&Ik(e.length)&&!!P[ai(e)]}var ex=Xk;function tx(e){return function(t){return e(t)}}var rx=tx,_d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=_d&&typeof module=="object"&&module&&!module.nodeType&&module,ix=ei&&ei.exports===_d,ka=ix&&Ad.process,nx=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Gc=nx,Hc=Gc&&Gc.isTypedArray,zX=Hc?rx(Hc):ex,ox=Object.prototype,UX=ox.hasOwnProperty;function ax(e,t){return function(r){return e(t(r))}}var lx=ax,RX=lx(Object.keys,Object),sx=Object.prototype,FX=sx.hasOwnProperty,ux=Ct(Object,"create"),ri=ux;function cx(){this.__data__=ri?ri(null):{},this.size=0}var dx=cx;function px(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gx=px,fx="__lodash_hash_undefined__",yx=Object.prototype,mx=yx.hasOwnProperty;function bx(e){var t=this.__data__;if(ri){var r=t[e];return r===fx?void 0:r}return mx.call(t,e)?t[e]:void 0}var hx=bx,vx=Object.prototype,wx=vx.hasOwnProperty;function kx(e){var t=this.__data__;return ri?t[e]!==void 0:wx.call(t,e)}var xx=kx,Ix="__lodash_hash_undefined__";function Cx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ri&&t===void 0?Ix:t,this}var Ax=Cx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=dx;At.prototype.delete=gx;At.prototype.get=hx;At.prototype.has=xx;At.prototype.set=Ax;var Yc=At;function Sx(){this.__data__=[],this.size=0}var Mx=Sx;function jx(e,t){for(var r=e.length;r--;)if(wk(e[r][0],t))return r;return-1}var Hn=jx,$x=Array.prototype,_x=$x.splice;function Ex(e){var t=this.__data__,r=Hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_x.call(t,r,1),--this.size,!0}var Lx=Ex;function Tx(e){var t=this.__data__,r=Hn(t,e);return r<0?void 0:t[r][1]}var Ox=Tx;function Nx(e){return Hn(this.__data__,e)>-1}var Dx=Nx;function Px(e,t){var r=this.__data__,i=Hn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zx=Px;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=Mx;St.prototype.delete=Lx;St.prototype.get=Ox;St.prototype.has=Dx;St.prototype.set=zx;var Yn=St,Ux=Ct(te,"Map"),ii=Ux;function Rx(){this.size=0,this.__data__={hash:new Yc,map:new(ii||Yn),string:new Yc}}var Fx=Rx;function Vx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bx=Vx;function qx(e,t){var r=e.__data__;return Bx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=qx;function Gx(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var Hx=Gx;function Yx(e){return Zn(this,e).get(e)}var Zx=Yx;function Qx(e){return Zn(this,e).has(e)}var Wx=Qx;function Kx(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jx=Kx;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=Fx;Mt.prototype.delete=Hx;Mt.prototype.get=Zx;Mt.prototype.has=Wx;Mt.prototype.set=Jx;var Ed=Mt;function Xx(){this.__data__=new Yn,this.size=0}var eI=Xx;function tI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rI=tI;function iI(e){return this.__data__.get(e)}var nI=iI;function oI(e){return this.__data__.has(e)}var aI=oI,lI=200;function sI(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ii||i.length<lI-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ed(i)}return r.set(e,t),this.size=r.size,this}var uI=sI;function li(e){var t=this.__data__=new Yn(e);this.size=t.size}li.prototype.clear=eI;li.prototype.delete=rI;li.prototype.get=nI;li.prototype.has=aI;li.prototype.set=uI;var cI=Object.prototype,VX=cI.propertyIsEnumerable,dI=Ct(te,"DataView"),ja=dI,pI=Ct(te,"Promise"),$a=pI,gI=Ct(te,"Set"),_a=gI,Zc="[object Map]",fI="[object Object]",Qc="[object Promise]",Wc="[object Set]",Kc="[object WeakMap]",Jc="[object DataView]",yI=Ne(ja),mI=Ne(ii),bI=Ne($a),hI=Ne(_a),vI=Ne(Ma),vt=ai;(ja&&vt(new ja(new ArrayBuffer(1)))!=Jc||ii&&vt(new ii)!=Zc||$a&&vt($a.resolve())!=Qc||_a&&vt(new _a)!=Wc||Ma&&vt(new Ma)!=Kc)&&(vt=function(e){var t=ai(e),r=t==fI?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case yI:return Jc;case mI:return Zc;case bI:return Qc;case hI:return Wc;case vI:return Kc}return t});var BX=te.Uint8Array,wI="__lodash_hash_undefined__";function kI(e){return this.__data__.set(e,wI),this}var xI=kI;function II(e){return this.__data__.has(e)}var CI=II;function Ea(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ed;++t<r;)this.add(e[t])}Ea.prototype.add=Ea.prototype.push=xI;Ea.prototype.has=CI;var Xc=xt?xt.prototype:void 0,qX=Xc?Xc.valueOf:void 0,AI=Object.prototype,GX=AI.hasOwnProperty,SI=Object.prototype,HX=SI.hasOwnProperty,YX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MI(e,t){let r=await Ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ld(i,t)}function $I(e){return e!==void 0}var _I=$I;function si(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ui(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function EI(e){return Array.isArray(e)?e:e?[e]:[]}function LI(e,t){return t?e:e[0]??""}function Td(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function Od(e,t){return EI(e.ui.experimental.getGlobalStateValue(t.stateId))}function TI(e,t){let r=Td().get(t);return r==null?!1:Od(e,r).length<r.maxCount}function OI(e,t,r){let i=Td().get(t);if(i==null)return!1;let n=Od(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,LI([...n,r],i.isList)),!0)}var Gn=class Nd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Nd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},NI=class Dd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Dd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function DI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function PI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var zI=PI,xa="ly.img.ai.temp";async function UI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function RI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Pd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function FI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function VI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Fa(e){return e instanceof Error&&e.name==="AbortError"}function BI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function qI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
166
+ `,Zv=Yv,Qv=typeof global=="object"&&global&&global.Object===Object&&global,Lc=Qv,Wv=typeof self=="object"&&self&&self.Object===Object&&self,Kv=Lc||Wv||Function("return this")(),ee=Kv,Jv=ee.Symbol,ut=Jv,Tc=Object.prototype,Xv=Tc.hasOwnProperty,e8=Tc.toString,Er=ut?ut.toStringTag:void 0;function t8(e){var t=Xv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=e8.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var r8=t8,i8=Object.prototype,n8=i8.toString;function o8(e){return n8.call(e)}var a8=o8,l8="[object Null]",s8="[object Undefined]",Tu=ut?ut.toStringTag:void 0;function u8(e){return e==null?e===void 0?s8:l8:Tu&&Tu in Object(e)?r8(e):a8(e)}var Yr=u8;function c8(e){return e!=null&&typeof e=="object"}var va=c8,fX=Array.isArray;function d8(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Oc=d8,p8="[object AsyncFunction]",g8="[object Function]",f8="[object GeneratorFunction]",y8="[object Proxy]";function m8(e){if(!Oc(e))return!1;var t=Yr(e);return t==g8||t==f8||t==p8||t==y8}var b8=m8,h8=ee["__core-js_shared__"],Wo=h8,Ou=function(){var e=/[^.]+$/.exec(Wo&&Wo.keys&&Wo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v8(e){return!!Ou&&Ou in e}var w8=v8,k8=Function.prototype,x8=k8.toString;function I8(e){if(e!=null){try{return x8.call(e)}catch{}try{return e+""}catch{}}return""}var Te=I8,C8=/[\\^$.*+?()[\]{}|]/g,A8=/^\[object .+?Constructor\]$/,S8=Function.prototype,M8=Object.prototype,j8=S8.toString,$8=M8.hasOwnProperty,_8=RegExp("^"+j8.call($8).replace(C8,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E8(e){if(!Oc(e)||w8(e))return!1;var t=b8(e)?_8:A8;return t.test(Te(e))}var L8=E8;function T8(e,t){return e?.[t]}var O8=T8;function N8(e,t){var r=O8(e,t);return L8(r)?r:void 0}var yt=N8,D8=yt(ee,"WeakMap"),ua=D8;function P8(e,t){return e===t||e!==e&&t!==t}var z8=P8,U8=9007199254740991;function R8(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U8}var F8=R8,yX=Object.prototype,V8="[object Arguments]";function B8(e){return va(e)&&Yr(e)==V8}var Nu=B8,Nc=Object.prototype,q8=Nc.hasOwnProperty,G8=Nc.propertyIsEnumerable,mX=Nu(function(){return arguments}())?Nu:function(e){return va(e)&&q8.call(e,"callee")&&!G8.call(e,"callee")},Dc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Du=Dc&&typeof module=="object"&&module&&!module.nodeType&&module,H8=Du&&Du.exports===Dc,Pu=H8?ee.Buffer:void 0,bX=Pu?Pu.isBuffer:void 0,Y8="[object Arguments]",Z8="[object Array]",Q8="[object Boolean]",W8="[object Date]",K8="[object Error]",J8="[object Function]",X8="[object Map]",e7="[object Number]",t7="[object Object]",r7="[object RegExp]",i7="[object Set]",n7="[object String]",o7="[object WeakMap]",a7="[object ArrayBuffer]",l7="[object DataView]",s7="[object Float32Array]",u7="[object Float64Array]",c7="[object Int8Array]",d7="[object Int16Array]",p7="[object Int32Array]",g7="[object Uint8Array]",f7="[object Uint8ClampedArray]",y7="[object Uint16Array]",m7="[object Uint32Array]",D={};D[s7]=D[u7]=D[c7]=D[d7]=D[p7]=D[g7]=D[f7]=D[y7]=D[m7]=!0;D[Y8]=D[Z8]=D[a7]=D[Q8]=D[l7]=D[W8]=D[K8]=D[J8]=D[X8]=D[e7]=D[t7]=D[r7]=D[i7]=D[n7]=D[o7]=!1;function b7(e){return va(e)&&F8(e.length)&&!!D[Yr(e)]}var h7=b7;function v7(e){return function(t){return e(t)}}var w7=v7,Pc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Pc&&typeof module=="object"&&module&&!module.nodeType&&module,k7=Pr&&Pr.exports===Pc,Ko=k7&&Lc.process,x7=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Ko&&Ko.binding&&Ko.binding("util")}catch{}}(),zu=x7,Uu=zu&&zu.isTypedArray,hX=Uu?w7(Uu):h7,I7=Object.prototype,vX=I7.hasOwnProperty;function C7(e,t){return function(r){return e(t(r))}}var A7=C7,wX=A7(Object.keys,Object),S7=Object.prototype,kX=S7.hasOwnProperty,M7=yt(Object,"create"),Fr=M7;function j7(){this.__data__=Fr?Fr(null):{},this.size=0}var $7=j7;function _7(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E7=_7,L7="__lodash_hash_undefined__",T7=Object.prototype,O7=T7.hasOwnProperty;function N7(e){var t=this.__data__;if(Fr){var r=t[e];return r===L7?void 0:r}return O7.call(t,e)?t[e]:void 0}var D7=N7,P7=Object.prototype,z7=P7.hasOwnProperty;function U7(e){var t=this.__data__;return Fr?t[e]!==void 0:z7.call(t,e)}var R7=U7,F7="__lodash_hash_undefined__";function V7(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?F7:t,this}var B7=V7;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=$7;mt.prototype.delete=E7;mt.prototype.get=D7;mt.prototype.has=R7;mt.prototype.set=B7;var Ru=mt;function q7(){this.__data__=[],this.size=0}var G7=q7;function H7(e,t){for(var r=e.length;r--;)if(z8(e[r][0],t))return r;return-1}var Tn=H7,Y7=Array.prototype,Z7=Y7.splice;function Q7(e){var t=this.__data__,r=Tn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z7.call(t,r,1),--this.size,!0}var W7=Q7;function K7(e){var t=this.__data__,r=Tn(t,e);return r<0?void 0:t[r][1]}var J7=K7;function X7(e){return Tn(this.__data__,e)>-1}var e6=X7;function t6(e,t){var r=this.__data__,i=Tn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r6=t6;function bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}bt.prototype.clear=G7;bt.prototype.delete=W7;bt.prototype.get=J7;bt.prototype.has=e6;bt.prototype.set=r6;var On=bt,i6=yt(ee,"Map"),Vr=i6;function n6(){this.size=0,this.__data__={hash:new Ru,map:new(Vr||On),string:new Ru}}var o6=n6;function a6(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l6=a6;function s6(e,t){var r=e.__data__;return l6(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=s6;function u6(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var c6=u6;function d6(e){return Nn(this,e).get(e)}var p6=d6;function g6(e){return Nn(this,e).has(e)}var f6=g6;function y6(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m6=y6;function ht(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ht.prototype.clear=o6;ht.prototype.delete=c6;ht.prototype.get=p6;ht.prototype.has=f6;ht.prototype.set=m6;var zc=ht;function b6(){this.__data__=new On,this.size=0}var h6=b6;function v6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w6=v6;function k6(e){return this.__data__.get(e)}var x6=k6;function I6(e){return this.__data__.has(e)}var C6=I6,A6=200;function S6(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Vr||i.length<A6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new zc(i)}return r.set(e,t),this.size=r.size,this}var M6=S6;function Zr(e){var t=this.__data__=new On(e);this.size=t.size}Zr.prototype.clear=h6;Zr.prototype.delete=w6;Zr.prototype.get=x6;Zr.prototype.has=C6;Zr.prototype.set=M6;var j6=Object.prototype,xX=j6.propertyIsEnumerable,$6=yt(ee,"DataView"),ca=$6,_6=yt(ee,"Promise"),da=_6,E6=yt(ee,"Set"),pa=E6,Fu="[object Map]",L6="[object Object]",Vu="[object Promise]",Bu="[object Set]",qu="[object WeakMap]",Gu="[object DataView]",T6=Te(ca),O6=Te(Vr),N6=Te(da),D6=Te(pa),P6=Te(ua),at=Yr;(ca&&at(new ca(new ArrayBuffer(1)))!=Gu||Vr&&at(new Vr)!=Fu||da&&at(da.resolve())!=Vu||pa&&at(new pa)!=Bu||ua&&at(new ua)!=qu)&&(at=function(e){var t=Yr(e),r=t==L6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case T6:return Gu;case O6:return Fu;case N6:return Vu;case D6:return Bu;case P6:return qu}return t});var IX=ee.Uint8Array,z6="__lodash_hash_undefined__";function U6(e){return this.__data__.set(e,z6),this}var R6=U6;function F6(e){return this.__data__.has(e)}var V6=F6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=R6;ga.prototype.has=V6;var Hu=ut?ut.prototype:void 0,CX=Hu?Hu.valueOf:void 0,B6=Object.prototype,AX=B6.hasOwnProperty,q6=Object.prototype,SX=q6.hasOwnProperty,MX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),jX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$X=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function G6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Oe(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return G6(i,t)}function H6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Yu=H6;function Y6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function Z6(e){return typeof e?.translate=="function"}function Q6(e,t,r){return e&&Y6(e)&&Z6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",W6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createImage","ly.img.createVideo","ly.img.animateBetweenImages"],Dn="editImage",ue=`ly.img.${Dn}`,Zu=`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 K6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${wn}`]:"Edit Image...",[`${wn}.description`]:"Change image based on description",[`${wn}.prompt`]:"Edit Image...",[`${Zu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${wn}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Zu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.PromptInput(`${ue}.prompt`,{inputLabel:kn(l,"prompt"),placeholder:kn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:kn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:kn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),J6=K6,Pn="swapBackground",ce=`ly.img.${Pn}`,Qu=`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 X6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${xn}`]:"Swap Background...",[`${xn}.description`]:"Change the background of the image",[`${xn}.prompt`]:"Swap Background...",[`${Qu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${xn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Qu}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.PromptInput(`${ce}.prompt`,{inputLabel:In(l,"prompt"),placeholder:In(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:In(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await Oe(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:In(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),ew=X6,zn="styleTransfer",Lr=`ly.img.${zn}`,tw=`ly.img.plugin-ai-image-generation-web.quickAction.${zn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${zn}`;function Wu(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 rw=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],iw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:Lr,type:"quick",kind:"image",label:`${tw}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Wu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{rw.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Wu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),nw=iw,Un="artistTransfer",Tr=`ly.img.${Un}`,ow=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Ku(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 aw=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Tr,type:"quick",kind:"image",label:`${ow}`,enable:ft(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Tr}.popover`,{label:Ku(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Tr}.popover.section`,{children:()=>{r.builder.Menu(`${Tr}.popover.menu`,{children:()=>{aw.forEach(s=>{t.Button(`${Tr}.popover.menu.${s.id}`,{label:Ku(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await Oe(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),sw=lw,Rn="createVariant",de=`ly.img.${Rn}`,Ju=`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 uw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Cn}`]:"Create Variant...",[`${Cn}.description`]:"Create a variation of the image",[`${Cn}.prompt`]:"Create Variant...",[`${Ju}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Cn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ju}`,enable:t=>{if(!ft()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.PromptInput(`${de}.prompt`,{inputLabel:An(l,"prompt"),placeholder:An(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:An(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(m=>{o.block.destroy(m)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let m=o.block.getWidth(f),v=o.block.getHeight(f),k=.02*Math.min(m,v)*1;o.block.setPositionX(y,o.block.getPositionX(y)+k),o.block.setPositionY(y,o.block.getPositionY(y)+k)}let h=await Oe(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:h},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:An(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),cw=uw,Fn="createImage",Xu=`ly.img.${Fn}`,dw=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,ec=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function pw(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 gw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createImage",!0),H(e,{en:{[`${ec}`]:"Create Image from Reference...",[`${ec}.description`]:"Create an image from the selected image"}}),{id:Xu,type:"quick",kind:"image",label:`${dw}`,enable:ft(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Xu}.button`,{label:pw(n),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",isDisabled:!e9(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Oe(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.image-generation.selectedProvider.fromImage",n),t9(e,n,o),e.ui.openPanel("ly.img.ai.image-generation"),i()}catch(a){console.error("Error opening image generation panel:",a)}}})}}),fw=gw,Vn="combineImages",pe=`ly.img.${Vn}`,tc=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Jo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function Sn(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 yw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${Jo}.apply`]:"Combine",[`${Jo}`]:"Combine Images...",[`${Jo}.prompt`]:"Image Combination Instructions",[`${tc}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tc}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.PromptInput(`${pe}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(I=>{o.block.setSelected(I,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,h=o.block.getWidth(y),m=o.block.getHeight(y),v=.02*Math.min(h,m)*f;o.block.setPositionX(g,o.block.getPositionX(g)+v),o.block.setPositionY(g,o.block.getPositionY(g)+v);let k=await Promise.all(p.map(I=>Oe(I,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:Sn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),mw=yw,Bn="remixPage",rc=`ly.img.${Bn}`,bw=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,hw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function vw(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 ww=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${hw}`]:"Turn Page into Image"}}),{id:rc,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${bw}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${rc}.button`,{label:vw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(m=>{i.block.destroy(m)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let h=i.block.createFill("image");i.block.setFill(f,h),i.block.setString(h,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),kw=ww,qn="remixPageWithPrompt",ge=`ly.img.${qn}`,ic=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,Xo=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Mn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var xw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${Xo}`]:"Remix Page...",[`${Xo}.prompt`]:"Remix Page Prompt",[`${ic}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Xo}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ic}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.PromptInput(`${ge}.prompt`,{inputLabel:Mn(l,"prompt"),placeholder:Mn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Mn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(M=>{o.block.destroy(M)}),o.block.setSelected(p,!1);let h=o.block.getFrameWidth(p),m=o.block.getFrameHeight(p),v=o.block.getPositionX(p),k=o.block.getPositionY(p),I=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,I),o.block.appendChild(f,b),o.block.setWidth(b,h),o.block.setHeight(b,m),o.block.setPositionX(b,v),o.block.setPositionY(b,k);let x=o.block.createFill("image");o.block.setFill(b,x),o.block.setString(x,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Mn(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),Iw=xw,fe="ly.img.ai.image-generation";function Cw(e){return{async initialize({cesdk:t}){if(t==null)return;c9(t,Nr,"1.83.0-rc.1"),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=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Hv,Zv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image","ly.img.plugin-ai-image-generation-web.defaults.fromText.label":"Text to Image","ly.img.plugin-ai-image-generation-web.defaults.fromImage.label":"Image to Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:Q6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});Aw(e),r.register(J6({cesdk:t})),r.register(ew({cesdk:t})),r.register(nw({cesdk:t})),r.register(sw({cesdk:t})),r.register(cw({cesdk:t})),r.register(fw({cesdk:t})),r.register(mw({cesdk:t})),r.register(kw({cesdk:t})),r.register(Iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Yu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Yu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await kv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Gv({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:W6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Ln})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),p9({cesdk:t,panelId:fe})):n()}}}function Aw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var Sw=Cw,Mw=e=>({name:Nr,version:"1.83.0-rc.1",...Sw(e)}),Uc=Mw;function jw(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var ve=jw,$w=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;kt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{kt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return kt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),kt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function kt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=kt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=kt(n,t,a)}return e}var _w=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Ew=typeof global=="object"&&global&&global.Object===Object&&global,Ad=Ew,Lw=typeof self=="object"&&self&&self.Object===Object&&self,Tw=Ad||Lw||Function("return this")(),te=Tw,Ow=te.Symbol,xt=Ow,Sd=Object.prototype,Nw=Sd.hasOwnProperty,Dw=Sd.toString,Qr=xt?xt.toStringTag:void 0;function Pw(e){var t=Nw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=Dw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var zw=Pw,Uw=Object.prototype,Rw=Uw.toString;function Fw(e){return Rw.call(e)}var Vw=Fw,Bw="[object Null]",qw="[object Undefined]",Rc=xt?xt.toStringTag:void 0;function Gw(e){return e==null?e===void 0?qw:Bw:Rc&&Rc in Object(e)?zw(e):Vw(e)}var ai=Gw;function Hw(e){return e!=null&&typeof e=="object"}var Ra=Hw,OX=Array.isArray;function Yw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Md=Yw,Zw="[object AsyncFunction]",Qw="[object Function]",Ww="[object GeneratorFunction]",Kw="[object Proxy]";function Jw(e){if(!Md(e))return!1;var t=ai(e);return t==Qw||t==Ww||t==Zw||t==Kw}var Xw=Jw,ek=te["__core-js_shared__"],wa=ek,Fc=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tk(e){return!!Fc&&Fc in e}var rk=tk,ik=Function.prototype,nk=ik.toString;function ok(e){if(e!=null){try{return nk.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=ok,ak=/[\\^$.*+?()[\]{}|]/g,lk=/^\[object .+?Constructor\]$/,sk=Function.prototype,uk=Object.prototype,ck=sk.toString,dk=uk.hasOwnProperty,pk=RegExp("^"+ck.call(dk).replace(ak,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gk(e){if(!Md(e)||rk(e))return!1;var t=Xw(e)?pk:lk;return t.test(Ne(e))}var fk=gk;function yk(e,t){return e?.[t]}var mk=yk;function bk(e,t){var r=mk(e,t);return fk(r)?r:void 0}var Ct=bk,hk=Ct(te,"WeakMap"),Ma=hk;function vk(e,t){return e===t||e!==e&&t!==t}var wk=vk,kk=9007199254740991;function xk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kk}var Ik=xk,NX=Object.prototype,Ck="[object Arguments]";function Ak(e){return Ra(e)&&ai(e)==Ck}var Vc=Ak,jd=Object.prototype,Sk=jd.hasOwnProperty,Mk=jd.propertyIsEnumerable,DX=Vc(function(){return arguments}())?Vc:function(e){return Ra(e)&&Sk.call(e,"callee")&&!Mk.call(e,"callee")},$d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bc=$d&&typeof module=="object"&&module&&!module.nodeType&&module,jk=Bc&&Bc.exports===$d,qc=jk?te.Buffer:void 0,PX=qc?qc.isBuffer:void 0,$k="[object Arguments]",_k="[object Array]",Ek="[object Boolean]",Lk="[object Date]",Tk="[object Error]",Ok="[object Function]",Nk="[object Map]",Dk="[object Number]",Pk="[object Object]",zk="[object RegExp]",Uk="[object Set]",Rk="[object String]",Fk="[object WeakMap]",Vk="[object ArrayBuffer]",Bk="[object DataView]",qk="[object Float32Array]",Gk="[object Float64Array]",Hk="[object Int8Array]",Yk="[object Int16Array]",Zk="[object Int32Array]",Qk="[object Uint8Array]",Wk="[object Uint8ClampedArray]",Kk="[object Uint16Array]",Jk="[object Uint32Array]",P={};P[qk]=P[Gk]=P[Hk]=P[Yk]=P[Zk]=P[Qk]=P[Wk]=P[Kk]=P[Jk]=!0;P[$k]=P[_k]=P[Vk]=P[Ek]=P[Bk]=P[Lk]=P[Tk]=P[Ok]=P[Nk]=P[Dk]=P[Pk]=P[zk]=P[Uk]=P[Rk]=P[Fk]=!1;function Xk(e){return Ra(e)&&Ik(e.length)&&!!P[ai(e)]}var ex=Xk;function tx(e){return function(t){return e(t)}}var rx=tx,_d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ei=_d&&typeof module=="object"&&module&&!module.nodeType&&module,ix=ei&&ei.exports===_d,ka=ix&&Ad.process,nx=function(){try{var e=ei&&ei.require&&ei.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Gc=nx,Hc=Gc&&Gc.isTypedArray,zX=Hc?rx(Hc):ex,ox=Object.prototype,UX=ox.hasOwnProperty;function ax(e,t){return function(r){return e(t(r))}}var lx=ax,RX=lx(Object.keys,Object),sx=Object.prototype,FX=sx.hasOwnProperty,ux=Ct(Object,"create"),ri=ux;function cx(){this.__data__=ri?ri(null):{},this.size=0}var dx=cx;function px(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gx=px,fx="__lodash_hash_undefined__",yx=Object.prototype,mx=yx.hasOwnProperty;function bx(e){var t=this.__data__;if(ri){var r=t[e];return r===fx?void 0:r}return mx.call(t,e)?t[e]:void 0}var hx=bx,vx=Object.prototype,wx=vx.hasOwnProperty;function kx(e){var t=this.__data__;return ri?t[e]!==void 0:wx.call(t,e)}var xx=kx,Ix="__lodash_hash_undefined__";function Cx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ri&&t===void 0?Ix:t,this}var Ax=Cx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=dx;At.prototype.delete=gx;At.prototype.get=hx;At.prototype.has=xx;At.prototype.set=Ax;var Yc=At;function Sx(){this.__data__=[],this.size=0}var Mx=Sx;function jx(e,t){for(var r=e.length;r--;)if(wk(e[r][0],t))return r;return-1}var Hn=jx,$x=Array.prototype,_x=$x.splice;function Ex(e){var t=this.__data__,r=Hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_x.call(t,r,1),--this.size,!0}var Lx=Ex;function Tx(e){var t=this.__data__,r=Hn(t,e);return r<0?void 0:t[r][1]}var Ox=Tx;function Nx(e){return Hn(this.__data__,e)>-1}var Dx=Nx;function Px(e,t){var r=this.__data__,i=Hn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zx=Px;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=Mx;St.prototype.delete=Lx;St.prototype.get=Ox;St.prototype.has=Dx;St.prototype.set=zx;var Yn=St,Ux=Ct(te,"Map"),ii=Ux;function Rx(){this.size=0,this.__data__={hash:new Yc,map:new(ii||Yn),string:new Yc}}var Fx=Rx;function Vx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Bx=Vx;function qx(e,t){var r=e.__data__;return Bx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zn=qx;function Gx(e){var t=Zn(this,e).delete(e);return this.size-=t?1:0,t}var Hx=Gx;function Yx(e){return Zn(this,e).get(e)}var Zx=Yx;function Qx(e){return Zn(this,e).has(e)}var Wx=Qx;function Kx(e,t){var r=Zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Jx=Kx;function Mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Mt.prototype.clear=Fx;Mt.prototype.delete=Hx;Mt.prototype.get=Zx;Mt.prototype.has=Wx;Mt.prototype.set=Jx;var Ed=Mt;function Xx(){this.__data__=new Yn,this.size=0}var eI=Xx;function tI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rI=tI;function iI(e){return this.__data__.get(e)}var nI=iI;function oI(e){return this.__data__.has(e)}var aI=oI,lI=200;function sI(e,t){var r=this.__data__;if(r instanceof Yn){var i=r.__data__;if(!ii||i.length<lI-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ed(i)}return r.set(e,t),this.size=r.size,this}var uI=sI;function li(e){var t=this.__data__=new Yn(e);this.size=t.size}li.prototype.clear=eI;li.prototype.delete=rI;li.prototype.get=nI;li.prototype.has=aI;li.prototype.set=uI;var cI=Object.prototype,VX=cI.propertyIsEnumerable,dI=Ct(te,"DataView"),ja=dI,pI=Ct(te,"Promise"),$a=pI,gI=Ct(te,"Set"),_a=gI,Zc="[object Map]",fI="[object Object]",Qc="[object Promise]",Wc="[object Set]",Kc="[object WeakMap]",Jc="[object DataView]",yI=Ne(ja),mI=Ne(ii),bI=Ne($a),hI=Ne(_a),vI=Ne(Ma),vt=ai;(ja&&vt(new ja(new ArrayBuffer(1)))!=Jc||ii&&vt(new ii)!=Zc||$a&&vt($a.resolve())!=Qc||_a&&vt(new _a)!=Wc||Ma&&vt(new Ma)!=Kc)&&(vt=function(e){var t=ai(e),r=t==fI?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case yI:return Jc;case mI:return Zc;case bI:return Qc;case hI:return Wc;case vI:return Kc}return t});var BX=te.Uint8Array,wI="__lodash_hash_undefined__";function kI(e){return this.__data__.set(e,wI),this}var xI=kI;function II(e){return this.__data__.has(e)}var CI=II;function Ea(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ed;++t<r;)this.add(e[t])}Ea.prototype.add=Ea.prototype.push=xI;Ea.prototype.has=CI;var Xc=xt?xt.prototype:void 0,qX=Xc?Xc.valueOf:void 0,AI=Object.prototype,GX=AI.hasOwnProperty,SI=Object.prototype,HX=SI.hasOwnProperty,YX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Ld(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MI(e,t){let r=await Ld(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Ld(i,t)}function $I(e){return e!==void 0}var _I=$I;function si(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ui(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function EI(e){return Array.isArray(e)?e:e?[e]:[]}function LI(e,t){return t?e:e[0]??""}function Td(){let e="__imgly_ai_prompt_image_entries__",t=typeof window<"u"?window:globalThis;return t[e]==null&&(t[e]=new Map),t[e]}function Od(e,t){return EI(e.ui.experimental.getGlobalStateValue(t.stateId))}function TI(e,t){let r=Td().get(t);return r==null?!1:Od(e,r).length<r.maxCount}function OI(e,t,r){let i=Td().get(t);if(i==null)return!1;let n=Od(e,i);return n.includes(r)?!0:n.length>=i.maxCount?!1:(e.ui.experimental.setGlobalStateValue(i.stateId,LI([...n,r],i.isList)),!0)}var Gn=class Nd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Nd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},NI=class Dd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Dd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function DI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function PI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var zI=PI,xa="ly.img.ai.temp";async function UI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function RI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Pd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function FI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function VI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Fa(e){return e instanceof Error&&e.name==="AbortError"}function BI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function qI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
167
167
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
168
168
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
169
169
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function GI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var HI=GI;function YI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var ZI=YI;function QI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),WI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:RI(e)}))}function WI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var ed=QI,KI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Va=KI;function JI(e,t,r){switch(t){case"image":return XI(e,r[t]);case"video":return eC(e,r[t]);case"sticker":return tC(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function XI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Va,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function eC(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Va,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function tC(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Va,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var rC=JI;async function iC(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return nC(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return oC(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return aC(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return lC(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nC(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function oC(e,t,r){let i=t.width,n=t.height,a=await FI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function aC(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function lC(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var zd=iC;function sC(e){switch(e.userFlow){case"placeholder":return cC(e);case"generation-only":return uC(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function uC(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Pd(),c=await zd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function cC(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=Pd(),c=rC(s,a,o);if(i=await UI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await zd(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Fa(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var dC=sC;function Ba(e){return`${e}.generating`}function pC(e){return`${e}.abort`}function gC(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(pC(d),()=>{}),y=c.global(Ba(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await dC({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ed(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;fC(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(Fa(b))return;ed(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function fC(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ud=gC;function La(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function yC({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Ba(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Ud(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var mC=yC;function Rd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Rd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function bC(e){return Jr(e,{...e})}function hC(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function vC(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return wC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function wC(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=kC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function kC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Fd=vC;function Vd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Bd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?xC(e,c,r,i,n,a,o,s):qd(e,c,r,i,n,a,o,s);case"boolean":return Gd(e,c,r,i,n,a,o,s);case"number":case"integer":return Hd(e,c,r,i,n,a,o,s);case"object":return Ta(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return IC(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ta(e,t,r,i,n,a,o,s){let c=Fd(t.schema??{},i).reduce((l,u)=>{let d=Bd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function qd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=ve(r.id,o,d,"placeholder"),f=si(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=ui(d,h,f,t.schema.default,""),v=l(p,m),k=CC(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function xC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),{labels:y,icons:f}=Vd(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:ve(r.id,o,d,x),icon:f[x]})),m=si(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=ui(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Gd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=si(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!ui(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Hd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=si(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=ui(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function IC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Vd(t.schema),I=si(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:qd,boolean:Gd,integer:Hd,object:Ta},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:ve(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>Ta(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=ui(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function CC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var AC=Bd,SC={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function td(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rd(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||td(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||td(g);n[a(l.id,g)]=y}})}});let c={...SC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function id(e){return typeof e.document=="function"?e.document():e.document}function nd(e,t,r){let i=bC(e),n=Rd(i,t.inputReference);if(!hC(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Fd(a,t);return{inputSchema:a,properties:o}}function od(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=AC(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Ud(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function MC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=id(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=nd(c,s,a.debug);return rd(y,i,r,i.kind),od(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(id(s)).then(g=>{let{inputSchema:y,properties:f}=nd(g,s,a.debug);rd(f,i,r,i.kind),u=od(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var jC=MC;async function $C(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return mC(e,t);case"schema":return jC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var _C=$C;function EC(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $w(o,r)),o}return i}var LC=EC;function TC(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var OC=TC,Ia="@imgly/plugin-ai-generation",NC=`
@@ -239,7 +239,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
239
239
  </symbol>
240
240
  </svg>
241
241
  `,DC=NC;function PC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Yd(2e3),await zC(t,e,r)):i(t,r)}async function zC(e,t,r){switch(t.kind){case"image":return UC(e,t,r);case"video":return RC(e,t,r);case"text":return FC(e,t,r);case"audio":return BC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function UC(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await jI(s,r),l=await MI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
242
- `,"+")}`}}async function RC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function FC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return VC(a,r.abortSignal)}async function*VC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Yd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function BC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:qC(220,i),duration:i,thumbnailUrl:void 0}}function qC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return GC(i,44100)}function GC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Yd(e){return new Promise(t=>{setTimeout(t,e)})}var HC=PC,YC="USER_CANCEL";function ZC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=DI([...e.provider.output.middleware??[],...r?.middlewares??[],zI({enable:r?.debug}),HC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:VI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===YC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var QC=ZC;async function WC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Gn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=LC(a),s=OC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=QC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _C(a,c);BI(r.cesdk,"@imgly/plugin-ai-generation",DC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return NI.get().register(u),u}var Ca=WC;function KC(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _w(n,r,i);return r.engine.asset.addSource(a),a.id}var JC=KC;function Oa(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function XC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=tA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=eA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=JC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_I)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function eA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Oa(e,`${A}.label`),icon:f.value!==A&&rA(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function tA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:La(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rA(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ba(r.id),!1).value)}var iA=XC,WX=5*60*1e3,nA=typeof global=="object"&&global&&global.Object===Object&&global,Zd=nA,oA=typeof self=="object"&&self&&self.Object===Object&&self,aA=Zd||oA||Function("return this")(),re=aA,lA=re.Symbol,It=lA,Qd=Object.prototype,sA=Qd.hasOwnProperty,uA=Qd.toString,Kr=It?It.toStringTag:void 0;function cA(e){var t=sA.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=uA.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var dA=cA,pA=Object.prototype,gA=pA.toString;function fA(e){return gA.call(e)}var yA=fA,mA="[object Null]",bA="[object Undefined]",ad=It?It.toStringTag:void 0;function hA(e){return e==null?e===void 0?bA:mA:ad&&ad in Object(e)?dA(e):yA(e)}var di=hA;function vA(e){return e!=null&&typeof e=="object"}var qa=vA,KX=Array.isArray;function wA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wd=wA,kA="[object AsyncFunction]",xA="[object Function]",IA="[object GeneratorFunction]",CA="[object Proxy]";function AA(e){if(!Wd(e))return!1;var t=di(e);return t==xA||t==IA||t==kA||t==CA}var SA=AA,MA=re["__core-js_shared__"],Aa=MA,ld=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jA(e){return!!ld&&ld in e}var $A=jA,_A=Function.prototype,EA=_A.toString;function LA(e){if(e!=null){try{return EA.call(e)}catch{}try{return e+""}catch{}}return""}var De=LA,TA=/[\\^$.*+?()[\]{}|]/g,OA=/^\[object .+?Constructor\]$/,NA=Function.prototype,DA=Object.prototype,PA=NA.toString,zA=DA.hasOwnProperty,UA=RegExp("^"+PA.call(zA).replace(TA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RA(e){if(!Wd(e)||$A(e))return!1;var t=SA(e)?UA:OA;return t.test(De(e))}var FA=RA;function VA(e,t){return e?.[t]}var BA=VA;function qA(e,t){var r=BA(e,t);return FA(r)?r:void 0}var jt=qA,GA=jt(re,"WeakMap"),Na=GA;function HA(e,t){return e===t||e!==e&&t!==t}var YA=HA,ZA=9007199254740991;function QA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ZA}var WA=QA,JX=Object.prototype,KA="[object Arguments]";function JA(e){return qa(e)&&di(e)==KA}var sd=JA,Kd=Object.prototype,XA=Kd.hasOwnProperty,eS=Kd.propertyIsEnumerable,XX=sd(function(){return arguments}())?sd:function(e){return qa(e)&&XA.call(e,"callee")&&!eS.call(e,"callee")},Jd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ud=Jd&&typeof module=="object"&&module&&!module.nodeType&&module,tS=ud&&ud.exports===Jd,cd=tS?re.Buffer:void 0,eee=cd?cd.isBuffer:void 0,rS="[object Arguments]",iS="[object Array]",nS="[object Boolean]",oS="[object Date]",aS="[object Error]",lS="[object Function]",sS="[object Map]",uS="[object Number]",cS="[object Object]",dS="[object RegExp]",pS="[object Set]",gS="[object String]",fS="[object WeakMap]",yS="[object ArrayBuffer]",mS="[object DataView]",bS="[object Float32Array]",hS="[object Float64Array]",vS="[object Int8Array]",wS="[object Int16Array]",kS="[object Int32Array]",xS="[object Uint8Array]",IS="[object Uint8ClampedArray]",CS="[object Uint16Array]",AS="[object Uint32Array]",z={};z[bS]=z[hS]=z[vS]=z[wS]=z[kS]=z[xS]=z[IS]=z[CS]=z[AS]=!0;z[rS]=z[iS]=z[yS]=z[nS]=z[mS]=z[oS]=z[aS]=z[lS]=z[sS]=z[uS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=!1;function SS(e){return qa(e)&&WA(e.length)&&!!z[di(e)]}var MS=SS;function jS(e){return function(t){return e(t)}}var $S=jS,Xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=Xd&&typeof module=="object"&&module&&!module.nodeType&&module,_S=ti&&ti.exports===Xd,Sa=_S&&Zd.process,ES=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),dd=ES,pd=dd&&dd.isTypedArray,tee=pd?$S(pd):MS,LS=Object.prototype,ree=LS.hasOwnProperty;function TS(e,t){return function(r){return e(t(r))}}var OS=TS,iee=OS(Object.keys,Object),NS=Object.prototype,nee=NS.hasOwnProperty,DS=jt(Object,"create"),ni=DS;function PS(){this.__data__=ni?ni(null):{},this.size=0}var zS=PS;function US(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RS=US,FS="__lodash_hash_undefined__",VS=Object.prototype,BS=VS.hasOwnProperty;function qS(e){var t=this.__data__;if(ni){var r=t[e];return r===FS?void 0:r}return BS.call(t,e)?t[e]:void 0}var GS=qS,HS=Object.prototype,YS=HS.hasOwnProperty;function ZS(e){var t=this.__data__;return ni?t[e]!==void 0:YS.call(t,e)}var QS=ZS,WS="__lodash_hash_undefined__";function KS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?WS:t,this}var JS=KS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=zS;$t.prototype.delete=RS;$t.prototype.get=GS;$t.prototype.has=QS;$t.prototype.set=JS;var gd=$t;function XS(){this.__data__=[],this.size=0}var eM=XS;function tM(e,t){for(var r=e.length;r--;)if(YA(e[r][0],t))return r;return-1}var Qn=tM,rM=Array.prototype,iM=rM.splice;function nM(e){var t=this.__data__,r=Qn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iM.call(t,r,1),--this.size,!0}var oM=nM;function aM(e){var t=this.__data__,r=Qn(t,e);return r<0?void 0:t[r][1]}var lM=aM;function sM(e){return Qn(this.__data__,e)>-1}var uM=sM;function cM(e,t){var r=this.__data__,i=Qn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dM=cM;function _t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}_t.prototype.clear=eM;_t.prototype.delete=oM;_t.prototype.get=lM;_t.prototype.has=uM;_t.prototype.set=dM;var Wn=_t,pM=jt(re,"Map"),oi=pM;function gM(){this.size=0,this.__data__={hash:new gd,map:new(oi||Wn),string:new gd}}var fM=gM;function yM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mM=yM;function bM(e,t){var r=e.__data__;return mM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Kn=bM;function hM(e){var t=Kn(this,e).delete(e);return this.size-=t?1:0,t}var vM=hM;function wM(e){return Kn(this,e).get(e)}var kM=wM;function xM(e){return Kn(this,e).has(e)}var IM=xM;function CM(e,t){var r=Kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AM=CM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=fM;Et.prototype.delete=vM;Et.prototype.get=kM;Et.prototype.has=IM;Et.prototype.set=AM;var ep=Et;function SM(){this.__data__=new Wn,this.size=0}var MM=SM;function jM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $M=jM;function _M(e){return this.__data__.get(e)}var EM=_M;function LM(e){return this.__data__.has(e)}var TM=LM,OM=200;function NM(e,t){var r=this.__data__;if(r instanceof Wn){var i=r.__data__;if(!oi||i.length<OM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ep(i)}return r.set(e,t),this.size=r.size,this}var DM=NM;function pi(e){var t=this.__data__=new Wn(e);this.size=t.size}pi.prototype.clear=MM;pi.prototype.delete=$M;pi.prototype.get=EM;pi.prototype.has=TM;pi.prototype.set=DM;var PM=Object.prototype,oee=PM.propertyIsEnumerable,zM=jt(re,"DataView"),Da=zM,UM=jt(re,"Promise"),Pa=UM,RM=jt(re,"Set"),za=RM,fd="[object Map]",FM="[object Object]",yd="[object Promise]",md="[object Set]",bd="[object WeakMap]",hd="[object DataView]",VM=De(Da),BM=De(oi),qM=De(Pa),GM=De(za),HM=De(Na),wt=di;(Da&&wt(new Da(new ArrayBuffer(1)))!=hd||oi&&wt(new oi)!=fd||Pa&&wt(Pa.resolve())!=yd||za&&wt(new za)!=md||Na&&wt(new Na)!=bd)&&(wt=function(e){var t=di(e),r=t==FM?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case VM:return hd;case BM:return fd;case qM:return yd;case GM:return md;case HM:return bd}return t});var aee=re.Uint8Array,YM="__lodash_hash_undefined__";function ZM(e){return this.__data__.set(e,YM),this}var QM=ZM;function WM(e){return this.__data__.has(e)}var KM=WM;function Ua(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ep;++t<r;)this.add(e[t])}Ua.prototype.add=Ua.prototype.push=QM;Ua.prototype.has=KM;var vd=It?It.prototype:void 0,lee=vd?vd.valueOf:void 0,JM=Object.prototype,see=JM.hasOwnProperty,XM=Object.prototype,uee=XM.hasOwnProperty,cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ej(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function tp(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ej(i,t)}function tj(e){return e==null?[]:Array.isArray(e)?e:[e]}var wd=tj;function rj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ij(e){return typeof e?.translate=="function"}function nj(e,t,r){return e&&rj(e)&&ij(e.i18n)?e.i18n.translate(t):r}var Xr="@imgly/plugin-ai-video-generation-web";var Jn="createVideo",kd=`ly.img.${Jn}`,oj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,xd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function aj(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 lj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${xd}`]:"Create Video from Reference...",[`${xd}.description`]:"Create a video from the selected image"}}),{id:kd,type:"quick",kind:"image",label:`${oj}`,enable:ZI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${kd}.button`,{label:aj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",isDisabled:!TI(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await tp(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",n),OI(e,n,o),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),sj=lj,Xn="animateBetweenImages",Id=`ly.img.${Xn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Xn}`,Cd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Xn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Xn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${Cd}`]:"Animate Between Images...",[`${Cd}.description`]:"Create a video transitioning between two images"}}),{id:Id,type:"quick",kind:"image",label:`${uj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Id}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>tp(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),pj=dj,be="ly.img.ai.video-generation";function gj(e){return{async initialize({cesdk:t}){if(t==null)return;qI(t,Xr,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Xr}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.plugin-ai-video-generation-web.defaults.fromText.label":"Text to Video","ly.img.plugin-ai-video-generation-web.defaults.fromImage.label":"Image to Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),fj(e);let i=Gn.get().register({type:"plugin",sceneMode:"Video",id:Xr,pluginId:Xr,label:nj(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(wd(n).map(l=>l({cesdk:t}))),s=await Promise.all(wd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await iA("video",{fromText:o,fromImage:s},{cesdk:t},e);Gn.get().register(sj({cesdk:t})),Gn.get().register(pj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),HI({cesdk:t,panelId:be})):i()}}}function fj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var yj=gj,mj=e=>({name:Xr,version:"1.83.0-rc.0",...yj(e)}),rp=mj;function bj(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var xe=bj,hj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Ot(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Ot(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Ot(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Ot(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Ot(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Ot(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Ot(n,t,a)}return e}var vj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wj=typeof global=="object"&&global&&global.Object===Object&&global,Fp=wj,kj=typeof self=="object"&&self&&self.Object===Object&&self,xj=Fp||kj||Function("return this")(),ie=xj,Ij=ie.Symbol,Nt=Ij,Vp=Object.prototype,Cj=Vp.hasOwnProperty,Aj=Vp.toString,gi=Nt?Nt.toStringTag:void 0;function Sj(e){var t=Cj.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=Aj.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var Mj=Sj,jj=Object.prototype,$j=jj.toString;function _j(e){return $j.call(e)}var Ej=_j,Lj="[object Null]",Tj="[object Undefined]",ip=Nt?Nt.toStringTag:void 0;function Oj(e){return e==null?e===void 0?Tj:Lj:ip&&ip in Object(e)?Mj(e):Ej(e)}var Ii=Oj;function Nj(e){return e!=null&&typeof e=="object"}var dl=Nj,mee=Array.isArray;function Dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bp=Dj,Pj="[object AsyncFunction]",zj="[object Function]",Uj="[object GeneratorFunction]",Rj="[object Proxy]";function Fj(e){if(!Bp(e))return!1;var t=Ii(e);return t==zj||t==Uj||t==Pj||t==Rj}var Vj=Fj,Bj=ie["__core-js_shared__"],Ga=Bj,np=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qj(e){return!!np&&np in e}var Gj=qj,Hj=Function.prototype,Yj=Hj.toString;function Zj(e){if(e!=null){try{return Yj.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=Zj,Qj=/[\\^$.*+?()[\]{}|]/g,Wj=/^\[object .+?Constructor\]$/,Kj=Function.prototype,Jj=Object.prototype,Xj=Kj.toString,e$=Jj.hasOwnProperty,t$=RegExp("^"+Xj.call(e$).replace(Qj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function r$(e){if(!Bp(e)||Gj(e))return!1;var t=Vj(e)?t$:Wj;return t.test(Ue(e))}var i$=r$;function n$(e,t){return e?.[t]}var o$=n$;function a$(e,t){var r=o$(e,t);return i$(r)?r:void 0}var Pt=a$,l$=Pt(ie,"WeakMap"),Ja=l$;function s$(e,t){return e===t||e!==e&&t!==t}var u$=s$,c$=9007199254740991;function d$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c$}var p$=d$,bee=Object.prototype,g$="[object Arguments]";function f$(e){return dl(e)&&Ii(e)==g$}var op=f$,qp=Object.prototype,y$=qp.hasOwnProperty,m$=qp.propertyIsEnumerable,hee=op(function(){return arguments}())?op:function(e){return dl(e)&&y$.call(e,"callee")&&!m$.call(e,"callee")},Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,b$=ap&&ap.exports===Gp,lp=b$?ie.Buffer:void 0,vee=lp?lp.isBuffer:void 0,h$="[object Arguments]",v$="[object Array]",w$="[object Boolean]",k$="[object Date]",x$="[object Error]",I$="[object Function]",C$="[object Map]",A$="[object Number]",S$="[object Object]",M$="[object RegExp]",j$="[object Set]",$$="[object String]",_$="[object WeakMap]",E$="[object ArrayBuffer]",L$="[object DataView]",T$="[object Float32Array]",O$="[object Float64Array]",N$="[object Int8Array]",D$="[object Int16Array]",P$="[object Int32Array]",z$="[object Uint8Array]",U$="[object Uint8ClampedArray]",R$="[object Uint16Array]",F$="[object Uint32Array]",U={};U[T$]=U[O$]=U[N$]=U[D$]=U[P$]=U[z$]=U[U$]=U[R$]=U[F$]=!0;U[h$]=U[v$]=U[E$]=U[w$]=U[L$]=U[k$]=U[x$]=U[I$]=U[C$]=U[A$]=U[S$]=U[M$]=U[j$]=U[$$]=U[_$]=!1;function V$(e){return dl(e)&&p$(e.length)&&!!U[Ii(e)]}var B$=V$;function q$(e){return function(t){return e(t)}}var G$=q$,Hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=Hp&&typeof module=="object"&&module&&!module.nodeType&&module,H$=bi&&bi.exports===Hp,Ha=H$&&Fp.process,Y$=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),sp=Y$,up=sp&&sp.isTypedArray,wee=up?G$(up):B$,Z$=Object.prototype,kee=Z$.hasOwnProperty;function Q$(e,t){return function(r){return e(t(r))}}var W$=Q$,xee=W$(Object.keys,Object),K$=Object.prototype,Iee=K$.hasOwnProperty,J$=Pt(Object,"create"),vi=J$;function X$(){this.__data__=vi?vi(null):{},this.size=0}var e_=X$;function t_(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var r_=t_,i_="__lodash_hash_undefined__",n_=Object.prototype,o_=n_.hasOwnProperty;function a_(e){var t=this.__data__;if(vi){var r=t[e];return r===i_?void 0:r}return o_.call(t,e)?t[e]:void 0}var l_=a_,s_=Object.prototype,u_=s_.hasOwnProperty;function c_(e){var t=this.__data__;return vi?t[e]!==void 0:u_.call(t,e)}var d_=c_,p_="__lodash_hash_undefined__";function g_(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vi&&t===void 0?p_:t,this}var f_=g_;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=e_;zt.prototype.delete=r_;zt.prototype.get=l_;zt.prototype.has=d_;zt.prototype.set=f_;var cp=zt;function y_(){this.__data__=[],this.size=0}var m_=y_;function b_(e,t){for(var r=e.length;r--;)if(u$(e[r][0],t))return r;return-1}var eo=b_,h_=Array.prototype,v_=h_.splice;function w_(e){var t=this.__data__,r=eo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():v_.call(t,r,1),--this.size,!0}var k_=w_;function x_(e){var t=this.__data__,r=eo(t,e);return r<0?void 0:t[r][1]}var I_=x_;function C_(e){return eo(this.__data__,e)>-1}var A_=C_;function S_(e,t){var r=this.__data__,i=eo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var M_=S_;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=m_;Ut.prototype.delete=k_;Ut.prototype.get=I_;Ut.prototype.has=A_;Ut.prototype.set=M_;var to=Ut,j_=Pt(ie,"Map"),wi=j_;function $_(){this.size=0,this.__data__={hash:new cp,map:new(wi||to),string:new cp}}var __=$_;function E_(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var L_=E_;function T_(e,t){var r=e.__data__;return L_(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ro=T_;function O_(e){var t=ro(this,e).delete(e);return this.size-=t?1:0,t}var N_=O_;function D_(e){return ro(this,e).get(e)}var P_=D_;function z_(e){return ro(this,e).has(e)}var U_=z_;function R_(e,t){var r=ro(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var F_=R_;function Rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Rt.prototype.clear=__;Rt.prototype.delete=N_;Rt.prototype.get=P_;Rt.prototype.has=U_;Rt.prototype.set=F_;var Yp=Rt;function V_(){this.__data__=new to,this.size=0}var B_=V_;function q_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var G_=q_;function H_(e){return this.__data__.get(e)}var Y_=H_;function Z_(e){return this.__data__.has(e)}var Q_=Z_,W_=200;function K_(e,t){var r=this.__data__;if(r instanceof to){var i=r.__data__;if(!wi||i.length<W_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var J_=K_;function Ci(e){var t=this.__data__=new to(e);this.size=t.size}Ci.prototype.clear=B_;Ci.prototype.delete=G_;Ci.prototype.get=Y_;Ci.prototype.has=Q_;Ci.prototype.set=J_;var X_=Object.prototype,Cee=X_.propertyIsEnumerable,eE=Pt(ie,"DataView"),Xa=eE,tE=Pt(ie,"Promise"),el=tE,rE=Pt(ie,"Set"),tl=rE,dp="[object Map]",iE="[object Object]",pp="[object Promise]",gp="[object Set]",fp="[object WeakMap]",yp="[object DataView]",nE=Ue(Xa),oE=Ue(wi),aE=Ue(el),lE=Ue(tl),sE=Ue(Ja),Lt=Ii;(Xa&&Lt(new Xa(new ArrayBuffer(1)))!=yp||wi&&Lt(new wi)!=dp||el&&Lt(el.resolve())!=pp||tl&&Lt(new tl)!=gp||Ja&&Lt(new Ja)!=fp)&&(Lt=function(e){var t=Ii(e),r=t==iE?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case nE:return yp;case oE:return dp;case aE:return pp;case lE:return gp;case sE:return fp}return t});var Aee=ie.Uint8Array,uE="__lodash_hash_undefined__";function cE(e){return this.__data__.set(e,uE),this}var dE=cE;function pE(e){return this.__data__.has(e)}var gE=pE;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=dE;rl.prototype.has=gE;var mp=Nt?Nt.prototype:void 0,See=mp?mp.valueOf:void 0,fE=Object.prototype,Mee=fE.hasOwnProperty,yE=Object.prototype,jee=yE.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Zp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function mE(e,t){let r=await Zp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function bE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Zp(i,t)}function hE(e){return e!==void 0}var vE=hE;function Ai(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function pl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Qp=class Wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},wE=class Kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function kE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function xE({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var IE=xE,Ya="ly.img.ai.temp";async function CE(e,t){return e.engine.asset.findAllSources().includes(Ya)||e.engine.asset.addLocalSource(Ya),e.engine.asset.apply(Ya,t)}function AE(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Jp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function SE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function ME(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gl(e){return e instanceof Error&&e.name==="AbortError"}function jE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function $E(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
242
+ `,"+")}`}}async function RC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function FC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return VC(a,r.abortSignal)}async function*VC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Yd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function BC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:qC(220,i),duration:i,thumbnailUrl:void 0}}function qC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return GC(i,44100)}function GC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Yd(e){return new Promise(t=>{setTimeout(t,e)})}var HC=PC,YC="USER_CANCEL";function ZC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=DI([...e.provider.output.middleware??[],...r?.middlewares??[],zI({enable:r?.debug}),HC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:VI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Fa(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===YC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var QC=ZC;async function WC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Gn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=LC(a),s=OC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=QC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await _C(a,c);BI(r.cesdk,"@imgly/plugin-ai-generation",DC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return NI.get().register(u),u}var Ca=WC;function KC(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new _w(n,r,i);return r.engine.asset.addSource(a),a.id}var JC=KC;function Oa(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function XC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=tA({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=eA({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=JC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(_I)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function eA({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:La(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:Oa(e,`${A}.label`),icon:f.value!==A&&rA(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function tA({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:La(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Oa(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function rA(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ba(r.id),!1).value)}var iA=XC,WX=5*60*1e3,nA=typeof global=="object"&&global&&global.Object===Object&&global,Zd=nA,oA=typeof self=="object"&&self&&self.Object===Object&&self,aA=Zd||oA||Function("return this")(),re=aA,lA=re.Symbol,It=lA,Qd=Object.prototype,sA=Qd.hasOwnProperty,uA=Qd.toString,Kr=It?It.toStringTag:void 0;function cA(e){var t=sA.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=uA.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var dA=cA,pA=Object.prototype,gA=pA.toString;function fA(e){return gA.call(e)}var yA=fA,mA="[object Null]",bA="[object Undefined]",ad=It?It.toStringTag:void 0;function hA(e){return e==null?e===void 0?bA:mA:ad&&ad in Object(e)?dA(e):yA(e)}var di=hA;function vA(e){return e!=null&&typeof e=="object"}var qa=vA,KX=Array.isArray;function wA(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wd=wA,kA="[object AsyncFunction]",xA="[object Function]",IA="[object GeneratorFunction]",CA="[object Proxy]";function AA(e){if(!Wd(e))return!1;var t=di(e);return t==xA||t==IA||t==kA||t==CA}var SA=AA,MA=re["__core-js_shared__"],Aa=MA,ld=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jA(e){return!!ld&&ld in e}var $A=jA,_A=Function.prototype,EA=_A.toString;function LA(e){if(e!=null){try{return EA.call(e)}catch{}try{return e+""}catch{}}return""}var De=LA,TA=/[\\^$.*+?()[\]{}|]/g,OA=/^\[object .+?Constructor\]$/,NA=Function.prototype,DA=Object.prototype,PA=NA.toString,zA=DA.hasOwnProperty,UA=RegExp("^"+PA.call(zA).replace(TA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RA(e){if(!Wd(e)||$A(e))return!1;var t=SA(e)?UA:OA;return t.test(De(e))}var FA=RA;function VA(e,t){return e?.[t]}var BA=VA;function qA(e,t){var r=BA(e,t);return FA(r)?r:void 0}var jt=qA,GA=jt(re,"WeakMap"),Na=GA;function HA(e,t){return e===t||e!==e&&t!==t}var YA=HA,ZA=9007199254740991;function QA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ZA}var WA=QA,JX=Object.prototype,KA="[object Arguments]";function JA(e){return qa(e)&&di(e)==KA}var sd=JA,Kd=Object.prototype,XA=Kd.hasOwnProperty,eS=Kd.propertyIsEnumerable,XX=sd(function(){return arguments}())?sd:function(e){return qa(e)&&XA.call(e,"callee")&&!eS.call(e,"callee")},Jd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ud=Jd&&typeof module=="object"&&module&&!module.nodeType&&module,tS=ud&&ud.exports===Jd,cd=tS?re.Buffer:void 0,eee=cd?cd.isBuffer:void 0,rS="[object Arguments]",iS="[object Array]",nS="[object Boolean]",oS="[object Date]",aS="[object Error]",lS="[object Function]",sS="[object Map]",uS="[object Number]",cS="[object Object]",dS="[object RegExp]",pS="[object Set]",gS="[object String]",fS="[object WeakMap]",yS="[object ArrayBuffer]",mS="[object DataView]",bS="[object Float32Array]",hS="[object Float64Array]",vS="[object Int8Array]",wS="[object Int16Array]",kS="[object Int32Array]",xS="[object Uint8Array]",IS="[object Uint8ClampedArray]",CS="[object Uint16Array]",AS="[object Uint32Array]",z={};z[bS]=z[hS]=z[vS]=z[wS]=z[kS]=z[xS]=z[IS]=z[CS]=z[AS]=!0;z[rS]=z[iS]=z[yS]=z[nS]=z[mS]=z[oS]=z[aS]=z[lS]=z[sS]=z[uS]=z[cS]=z[dS]=z[pS]=z[gS]=z[fS]=!1;function SS(e){return qa(e)&&WA(e.length)&&!!z[di(e)]}var MS=SS;function jS(e){return function(t){return e(t)}}var $S=jS,Xd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=Xd&&typeof module=="object"&&module&&!module.nodeType&&module,_S=ti&&ti.exports===Xd,Sa=_S&&Zd.process,ES=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),dd=ES,pd=dd&&dd.isTypedArray,tee=pd?$S(pd):MS,LS=Object.prototype,ree=LS.hasOwnProperty;function TS(e,t){return function(r){return e(t(r))}}var OS=TS,iee=OS(Object.keys,Object),NS=Object.prototype,nee=NS.hasOwnProperty,DS=jt(Object,"create"),ni=DS;function PS(){this.__data__=ni?ni(null):{},this.size=0}var zS=PS;function US(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RS=US,FS="__lodash_hash_undefined__",VS=Object.prototype,BS=VS.hasOwnProperty;function qS(e){var t=this.__data__;if(ni){var r=t[e];return r===FS?void 0:r}return BS.call(t,e)?t[e]:void 0}var GS=qS,HS=Object.prototype,YS=HS.hasOwnProperty;function ZS(e){var t=this.__data__;return ni?t[e]!==void 0:YS.call(t,e)}var QS=ZS,WS="__lodash_hash_undefined__";function KS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?WS:t,this}var JS=KS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=zS;$t.prototype.delete=RS;$t.prototype.get=GS;$t.prototype.has=QS;$t.prototype.set=JS;var gd=$t;function XS(){this.__data__=[],this.size=0}var eM=XS;function tM(e,t){for(var r=e.length;r--;)if(YA(e[r][0],t))return r;return-1}var Qn=tM,rM=Array.prototype,iM=rM.splice;function nM(e){var t=this.__data__,r=Qn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iM.call(t,r,1),--this.size,!0}var oM=nM;function aM(e){var t=this.__data__,r=Qn(t,e);return r<0?void 0:t[r][1]}var lM=aM;function sM(e){return Qn(this.__data__,e)>-1}var uM=sM;function cM(e,t){var r=this.__data__,i=Qn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dM=cM;function _t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}_t.prototype.clear=eM;_t.prototype.delete=oM;_t.prototype.get=lM;_t.prototype.has=uM;_t.prototype.set=dM;var Wn=_t,pM=jt(re,"Map"),oi=pM;function gM(){this.size=0,this.__data__={hash:new gd,map:new(oi||Wn),string:new gd}}var fM=gM;function yM(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mM=yM;function bM(e,t){var r=e.__data__;return mM(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Kn=bM;function hM(e){var t=Kn(this,e).delete(e);return this.size-=t?1:0,t}var vM=hM;function wM(e){return Kn(this,e).get(e)}var kM=wM;function xM(e){return Kn(this,e).has(e)}var IM=xM;function CM(e,t){var r=Kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AM=CM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=fM;Et.prototype.delete=vM;Et.prototype.get=kM;Et.prototype.has=IM;Et.prototype.set=AM;var ep=Et;function SM(){this.__data__=new Wn,this.size=0}var MM=SM;function jM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $M=jM;function _M(e){return this.__data__.get(e)}var EM=_M;function LM(e){return this.__data__.has(e)}var TM=LM,OM=200;function NM(e,t){var r=this.__data__;if(r instanceof Wn){var i=r.__data__;if(!oi||i.length<OM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ep(i)}return r.set(e,t),this.size=r.size,this}var DM=NM;function pi(e){var t=this.__data__=new Wn(e);this.size=t.size}pi.prototype.clear=MM;pi.prototype.delete=$M;pi.prototype.get=EM;pi.prototype.has=TM;pi.prototype.set=DM;var PM=Object.prototype,oee=PM.propertyIsEnumerable,zM=jt(re,"DataView"),Da=zM,UM=jt(re,"Promise"),Pa=UM,RM=jt(re,"Set"),za=RM,fd="[object Map]",FM="[object Object]",yd="[object Promise]",md="[object Set]",bd="[object WeakMap]",hd="[object DataView]",VM=De(Da),BM=De(oi),qM=De(Pa),GM=De(za),HM=De(Na),wt=di;(Da&&wt(new Da(new ArrayBuffer(1)))!=hd||oi&&wt(new oi)!=fd||Pa&&wt(Pa.resolve())!=yd||za&&wt(new za)!=md||Na&&wt(new Na)!=bd)&&(wt=function(e){var t=di(e),r=t==FM?e.constructor:void 0,i=r?De(r):"";if(i)switch(i){case VM:return hd;case BM:return fd;case qM:return yd;case GM:return md;case HM:return bd}return t});var aee=re.Uint8Array,YM="__lodash_hash_undefined__";function ZM(e){return this.__data__.set(e,YM),this}var QM=ZM;function WM(e){return this.__data__.has(e)}var KM=WM;function Ua(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ep;++t<r;)this.add(e[t])}Ua.prototype.add=Ua.prototype.push=QM;Ua.prototype.has=KM;var vd=It?It.prototype:void 0,lee=vd?vd.valueOf:void 0,JM=Object.prototype,see=JM.hasOwnProperty,XM=Object.prototype,uee=XM.hasOwnProperty,cee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ej(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function tp(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ej(i,t)}function tj(e){return e==null?[]:Array.isArray(e)?e:[e]}var wd=tj;function rj(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function ij(e){return typeof e?.translate=="function"}function nj(e,t,r){return e&&rj(e)&&ij(e.i18n)?e.i18n.translate(t):r}var Xr="@imgly/plugin-ai-video-generation-web";var Jn="createVideo",kd=`ly.img.${Jn}`,oj=`ly.img.plugin-ai-video-generation-web.quickAction.${Jn}`,xd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Jn}`;function aj(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 lj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${xd}`]:"Create Video from Reference...",[`${xd}.description`]:"Create a video from the selected image"}}),{id:kd,type:"quick",kind:"image",label:`${oj}`,enable:ZI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${kd}.button`,{label:aj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",isDisabled:!TI(e,n),onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await tp(a,r,{throwErrorIfSvg:!0});e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",n),OI(e,n,o),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),sj=lj,Xn="animateBetweenImages",Id=`ly.img.${Xn}`,uj=`ly.img.plugin-ai-video-generation-web.quickAction.${Xn}`,Cd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${Xn}`;function cj(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${Xn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dj=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${Cd}`]:"Animate Between Images...",[`${Cd}.description`]:"Create a video transitioning between two images"}}),{id:Id,type:"quick",kind:"image",label:`${uj}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${Id}.button`,{label:cj(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>tp(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),pj=dj,be="ly.img.ai.video-generation";function gj(e){return{async initialize({cesdk:t}){if(t==null)return;qI(t,Xr,"1.83.0-rc.1"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${Xr}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.plugin-ai-video-generation-web.defaults.fromText.label":"Text to Video","ly.img.plugin-ai-video-generation-web.defaults.fromImage.label":"Image to Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),fj(e);let i=Gn.get().register({type:"plugin",sceneMode:"Video",id:Xr,pluginId:Xr,label:nj(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(wd(n).map(l=>l({cesdk:t}))),s=await Promise.all(wd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await iA("video",{fromText:o,fromImage:s},{cesdk:t},e);Gn.get().register(sj({cesdk:t})),Gn.get().register(pj({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),HI({cesdk:t,panelId:be})):i()}}}function fj(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var yj=gj,mj=e=>({name:Xr,version:"1.83.0-rc.1",...yj(e)}),rp=mj;function bj(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var xe=bj,hj=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Ot(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Ot(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Ot(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Ot(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Ot(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Ot(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Ot(n,t,a)}return e}var vj=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},wj=typeof global=="object"&&global&&global.Object===Object&&global,Fp=wj,kj=typeof self=="object"&&self&&self.Object===Object&&self,xj=Fp||kj||Function("return this")(),ie=xj,Ij=ie.Symbol,Nt=Ij,Vp=Object.prototype,Cj=Vp.hasOwnProperty,Aj=Vp.toString,gi=Nt?Nt.toStringTag:void 0;function Sj(e){var t=Cj.call(e,gi),r=e[gi];try{e[gi]=void 0;var i=!0}catch{}var n=Aj.call(e);return i&&(t?e[gi]=r:delete e[gi]),n}var Mj=Sj,jj=Object.prototype,$j=jj.toString;function _j(e){return $j.call(e)}var Ej=_j,Lj="[object Null]",Tj="[object Undefined]",ip=Nt?Nt.toStringTag:void 0;function Oj(e){return e==null?e===void 0?Tj:Lj:ip&&ip in Object(e)?Mj(e):Ej(e)}var Ii=Oj;function Nj(e){return e!=null&&typeof e=="object"}var dl=Nj,mee=Array.isArray;function Dj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bp=Dj,Pj="[object AsyncFunction]",zj="[object Function]",Uj="[object GeneratorFunction]",Rj="[object Proxy]";function Fj(e){if(!Bp(e))return!1;var t=Ii(e);return t==zj||t==Uj||t==Pj||t==Rj}var Vj=Fj,Bj=ie["__core-js_shared__"],Ga=Bj,np=function(){var e=/[^.]+$/.exec(Ga&&Ga.keys&&Ga.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qj(e){return!!np&&np in e}var Gj=qj,Hj=Function.prototype,Yj=Hj.toString;function Zj(e){if(e!=null){try{return Yj.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=Zj,Qj=/[\\^$.*+?()[\]{}|]/g,Wj=/^\[object .+?Constructor\]$/,Kj=Function.prototype,Jj=Object.prototype,Xj=Kj.toString,e$=Jj.hasOwnProperty,t$=RegExp("^"+Xj.call(e$).replace(Qj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function r$(e){if(!Bp(e)||Gj(e))return!1;var t=Vj(e)?t$:Wj;return t.test(Ue(e))}var i$=r$;function n$(e,t){return e?.[t]}var o$=n$;function a$(e,t){var r=o$(e,t);return i$(r)?r:void 0}var Pt=a$,l$=Pt(ie,"WeakMap"),Ja=l$;function s$(e,t){return e===t||e!==e&&t!==t}var u$=s$,c$=9007199254740991;function d$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c$}var p$=d$,bee=Object.prototype,g$="[object Arguments]";function f$(e){return dl(e)&&Ii(e)==g$}var op=f$,qp=Object.prototype,y$=qp.hasOwnProperty,m$=qp.propertyIsEnumerable,hee=op(function(){return arguments}())?op:function(e){return dl(e)&&y$.call(e,"callee")&&!m$.call(e,"callee")},Gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=Gp&&typeof module=="object"&&module&&!module.nodeType&&module,b$=ap&&ap.exports===Gp,lp=b$?ie.Buffer:void 0,vee=lp?lp.isBuffer:void 0,h$="[object Arguments]",v$="[object Array]",w$="[object Boolean]",k$="[object Date]",x$="[object Error]",I$="[object Function]",C$="[object Map]",A$="[object Number]",S$="[object Object]",M$="[object RegExp]",j$="[object Set]",$$="[object String]",_$="[object WeakMap]",E$="[object ArrayBuffer]",L$="[object DataView]",T$="[object Float32Array]",O$="[object Float64Array]",N$="[object Int8Array]",D$="[object Int16Array]",P$="[object Int32Array]",z$="[object Uint8Array]",U$="[object Uint8ClampedArray]",R$="[object Uint16Array]",F$="[object Uint32Array]",U={};U[T$]=U[O$]=U[N$]=U[D$]=U[P$]=U[z$]=U[U$]=U[R$]=U[F$]=!0;U[h$]=U[v$]=U[E$]=U[w$]=U[L$]=U[k$]=U[x$]=U[I$]=U[C$]=U[A$]=U[S$]=U[M$]=U[j$]=U[$$]=U[_$]=!1;function V$(e){return dl(e)&&p$(e.length)&&!!U[Ii(e)]}var B$=V$;function q$(e){return function(t){return e(t)}}var G$=q$,Hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bi=Hp&&typeof module=="object"&&module&&!module.nodeType&&module,H$=bi&&bi.exports===Hp,Ha=H$&&Fp.process,Y$=function(){try{var e=bi&&bi.require&&bi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),sp=Y$,up=sp&&sp.isTypedArray,wee=up?G$(up):B$,Z$=Object.prototype,kee=Z$.hasOwnProperty;function Q$(e,t){return function(r){return e(t(r))}}var W$=Q$,xee=W$(Object.keys,Object),K$=Object.prototype,Iee=K$.hasOwnProperty,J$=Pt(Object,"create"),vi=J$;function X$(){this.__data__=vi?vi(null):{},this.size=0}var e_=X$;function t_(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var r_=t_,i_="__lodash_hash_undefined__",n_=Object.prototype,o_=n_.hasOwnProperty;function a_(e){var t=this.__data__;if(vi){var r=t[e];return r===i_?void 0:r}return o_.call(t,e)?t[e]:void 0}var l_=a_,s_=Object.prototype,u_=s_.hasOwnProperty;function c_(e){var t=this.__data__;return vi?t[e]!==void 0:u_.call(t,e)}var d_=c_,p_="__lodash_hash_undefined__";function g_(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vi&&t===void 0?p_:t,this}var f_=g_;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=e_;zt.prototype.delete=r_;zt.prototype.get=l_;zt.prototype.has=d_;zt.prototype.set=f_;var cp=zt;function y_(){this.__data__=[],this.size=0}var m_=y_;function b_(e,t){for(var r=e.length;r--;)if(u$(e[r][0],t))return r;return-1}var eo=b_,h_=Array.prototype,v_=h_.splice;function w_(e){var t=this.__data__,r=eo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():v_.call(t,r,1),--this.size,!0}var k_=w_;function x_(e){var t=this.__data__,r=eo(t,e);return r<0?void 0:t[r][1]}var I_=x_;function C_(e){return eo(this.__data__,e)>-1}var A_=C_;function S_(e,t){var r=this.__data__,i=eo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var M_=S_;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=m_;Ut.prototype.delete=k_;Ut.prototype.get=I_;Ut.prototype.has=A_;Ut.prototype.set=M_;var to=Ut,j_=Pt(ie,"Map"),wi=j_;function $_(){this.size=0,this.__data__={hash:new cp,map:new(wi||to),string:new cp}}var __=$_;function E_(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var L_=E_;function T_(e,t){var r=e.__data__;return L_(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ro=T_;function O_(e){var t=ro(this,e).delete(e);return this.size-=t?1:0,t}var N_=O_;function D_(e){return ro(this,e).get(e)}var P_=D_;function z_(e){return ro(this,e).has(e)}var U_=z_;function R_(e,t){var r=ro(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var F_=R_;function Rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Rt.prototype.clear=__;Rt.prototype.delete=N_;Rt.prototype.get=P_;Rt.prototype.has=U_;Rt.prototype.set=F_;var Yp=Rt;function V_(){this.__data__=new to,this.size=0}var B_=V_;function q_(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var G_=q_;function H_(e){return this.__data__.get(e)}var Y_=H_;function Z_(e){return this.__data__.has(e)}var Q_=Z_,W_=200;function K_(e,t){var r=this.__data__;if(r instanceof to){var i=r.__data__;if(!wi||i.length<W_-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Yp(i)}return r.set(e,t),this.size=r.size,this}var J_=K_;function Ci(e){var t=this.__data__=new to(e);this.size=t.size}Ci.prototype.clear=B_;Ci.prototype.delete=G_;Ci.prototype.get=Y_;Ci.prototype.has=Q_;Ci.prototype.set=J_;var X_=Object.prototype,Cee=X_.propertyIsEnumerable,eE=Pt(ie,"DataView"),Xa=eE,tE=Pt(ie,"Promise"),el=tE,rE=Pt(ie,"Set"),tl=rE,dp="[object Map]",iE="[object Object]",pp="[object Promise]",gp="[object Set]",fp="[object WeakMap]",yp="[object DataView]",nE=Ue(Xa),oE=Ue(wi),aE=Ue(el),lE=Ue(tl),sE=Ue(Ja),Lt=Ii;(Xa&&Lt(new Xa(new ArrayBuffer(1)))!=yp||wi&&Lt(new wi)!=dp||el&&Lt(el.resolve())!=pp||tl&&Lt(new tl)!=gp||Ja&&Lt(new Ja)!=fp)&&(Lt=function(e){var t=Ii(e),r=t==iE?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case nE:return yp;case oE:return dp;case aE:return pp;case lE:return gp;case sE:return fp}return t});var Aee=ie.Uint8Array,uE="__lodash_hash_undefined__";function cE(e){return this.__data__.set(e,uE),this}var dE=cE;function pE(e){return this.__data__.has(e)}var gE=pE;function rl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Yp;++t<r;)this.add(e[t])}rl.prototype.add=rl.prototype.push=dE;rl.prototype.has=gE;var mp=Nt?Nt.prototype:void 0,See=mp?mp.valueOf:void 0,fE=Object.prototype,Mee=fE.hasOwnProperty,yE=Object.prototype,jee=yE.hasOwnProperty,$ee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Zp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function mE(e,t){let r=await Zp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function bE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Zp(i,t)}function hE(e){return e!==void 0}var vE=hE;function Ai(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Si(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function pl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Qp=class Wp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Wp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},wE=class Kp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Kp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function kE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function xE({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var IE=xE,Ya="ly.img.ai.temp";async function CE(e,t){return e.engine.asset.findAllSources().includes(Ya)||e.engine.asset.addLocalSource(Ya),e.engine.asset.apply(Ya,t)}function AE(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Jp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function SE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function ME(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gl(e){return e instanceof Error&&e.name==="AbortError"}function jE(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function $E(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
243
243
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
244
244
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
245
245
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function _E(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var bp=_E;function EE(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),LE(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:AE(e)}))}function LE(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var hp=EE,TE="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fl=TE;function OE(e,t,r){switch(t){case"image":return NE(e,r[t]);case"video":return DE(e,r[t]);case"sticker":return PE(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function NE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function DE(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function PE(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var zE=OE;async function UE(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return RE(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return FE(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return VE(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return BE(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function RE(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function FE(e,t,r){let i=t.width,n=t.height,a=await SE(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function VE(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function BE(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Xp=UE;function qE(e){switch(e.userFlow){case"placeholder":return HE(e);case"generation-only":return GE(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function GE(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Jp(),c=await Xp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function HE(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Jp(),c=zE(s,a,o);if(i=await CE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Xp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var YE=qE;function yl(e){return`${e}.generating`}function ZE(e){return`${e}.abort`}function QE(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(ZE(d),()=>{}),y=c.global(yl(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await YE({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){hp(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;WE(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gl(b))return;hp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function WE(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var eg=QE;function il(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function KE({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return eg(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var JE=KE;function tg(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function mi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=tg(e,t.$ref),n={...mi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=mi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>mi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=mi(e,t[n],r));return i}return t}function XE(e){return mi(e,{...e})}function eL(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function tL(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return rL(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function rL(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=iL(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function iL(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var rg=tL;function ig(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function ng(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?nL(e,c,r,i,n,a,o,s):og(e,c,r,i,n,a,o,s);case"boolean":return ag(e,c,r,i,n,a,o,s);case"number":case"integer":return lg(e,c,r,i,n,a,o,s);case"object":return nl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return oL(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function nl(e,t,r,i,n,a,o,s){let c=rg(t.schema??{},i).reduce((l,u)=>{let d=ng(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function og(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=xe(r.id,o,d,"placeholder"),f=Ai(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=Si(d,h,f,t.schema.default,""),v=l(p,m),k=aL(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function nL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),{labels:y,icons:f}=ig(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:xe(r.id,o,d,x),icon:f[x]})),m=Ai(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=Si(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ag(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=Ai(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!Si(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function lg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=Ai(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=Si(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function oL(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=ig(t.schema),I=Ai(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:og,boolean:ag,integer:lg,object:nl},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:xe(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>nl(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=Si(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function aL(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var lL=ng,sL={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function vp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||vp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||vp(g);n[a(l.id,g)]=y}})}});let c={...sL,...n};Object.keys(c).length>0&&pl(r.cesdk,{en:c})}function kp(e){return typeof e.document=="function"?e.document():e.document}function xp(e,t,r){let i=XE(e),n=tg(i,t.inputReference);if(!eL(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=rg(a,t);return{inputSchema:a,properties:o}}function Ip(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=lL(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];eg(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function uL(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=kp(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=xp(c,s,a.debug);return wp(y,i,r,i.kind),Ip(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(kp(s)).then(g=>{let{inputSchema:y,properties:f}=xp(g,s,a.debug);wp(f,i,r,i.kind),u=Ip(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var cL=uL;async function dL(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return JE(e,t);case"schema":return cL(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var pL=dL;function gL(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new hj(o,r)),o}return i}var fL=gL;function yL(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var mL=yL,Za="@imgly/plugin-ai-generation",bL=`
@@ -315,7 +315,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
315
315
  </symbol>
316
316
  </svg>
317
317
  `,hL=bL;function vL(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await sg(2e3),await wL(t,e,r)):i(t,r)}async function wL(e,t,r){switch(t.kind){case"image":return kL(e,t,r);case"video":return xL(e,t,r);case"text":return IL(e,t,r);case"audio":return AL(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function kL(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await bE(s,r),l=await mE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
318
- `,"+")}`}}async function xL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function IL(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=fi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=fi(n,o)}else"customPrompt"in e?a=fi(n,"custom"):a=fi(n,"improved");else a=fi(n,"generated");return CL(a,r.abortSignal)}async function*CL(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await sg(100)}return{kind:"text",text:e}}function fi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function AL(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:SL(220,i),duration:i,thumbnailUrl:void 0}}function SL(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return ML(i,44100)}function ML(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function sg(e){return new Promise(t=>{setTimeout(t,e)})}var jL=vL,$L="USER_CANCEL";function _L(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=kE([...e.provider.output.middleware??[],...r?.middlewares??[],IE({enable:r?.debug}),jL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ME(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$L?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var EL=_L;async function LL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=fL(a),s=mL(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=EL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await pL(a,c);jE(r.cesdk,"@imgly/plugin-ai-generation",hL);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return wE.get().register(u),u}var Qa=LL;function TL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new vj(n,r,i);return r.engine.asset.addSource(a),a.id}var OL=TL;function ol(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NL(e,t,r,i){let{cesdk:n}=r;pl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Qa(e,u,r,i)));o.push(...l),a=PL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>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=DL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(vE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function DL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:ol(e,`${A}.label`),icon:f.value!==A&&zL(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:il(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function zL(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var Cp=NL,Lee=5*60*1e3,UL=typeof global=="object"&&global&&global.Object===Object&&global,ug=UL,RL=typeof self=="object"&&self&&self.Object===Object&&self,FL=ug||RL||Function("return this")(),ne=FL,VL=ne.Symbol,Dt=VL,cg=Object.prototype,BL=cg.hasOwnProperty,qL=cg.toString,yi=Dt?Dt.toStringTag:void 0;function GL(e){var t=BL.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=qL.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var HL=GL,YL=Object.prototype,ZL=YL.toString;function QL(e){return ZL.call(e)}var WL=QL,KL="[object Null]",JL="[object Undefined]",Ap=Dt?Dt.toStringTag:void 0;function XL(e){return e==null?e===void 0?JL:KL:Ap&&Ap in Object(e)?HL(e):WL(e)}var Mi=XL;function eT(e){return e!=null&&typeof e=="object"}var ml=eT,Tee=Array.isArray;function tT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=tT,rT="[object AsyncFunction]",iT="[object Function]",nT="[object GeneratorFunction]",oT="[object Proxy]";function aT(e){if(!dg(e))return!1;var t=Mi(e);return t==iT||t==nT||t==rT||t==oT}var lT=aT,sT=ne["__core-js_shared__"],Wa=sT,Sp=function(){var e=/[^.]+$/.exec(Wa&&Wa.keys&&Wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uT(e){return!!Sp&&Sp in e}var cT=uT,dT=Function.prototype,pT=dT.toString;function gT(e){if(e!=null){try{return pT.call(e)}catch{}try{return e+""}catch{}}return""}var Re=gT,fT=/[\\^$.*+?()[\]{}|]/g,yT=/^\[object .+?Constructor\]$/,mT=Function.prototype,bT=Object.prototype,hT=mT.toString,vT=bT.hasOwnProperty,wT=RegExp("^"+hT.call(vT).replace(fT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kT(e){if(!dg(e)||cT(e))return!1;var t=lT(e)?wT:yT;return t.test(Re(e))}var xT=kT;function IT(e,t){return e?.[t]}var CT=IT;function AT(e,t){var r=CT(e,t);return xT(r)?r:void 0}var Ft=AT,ST=Ft(ne,"WeakMap"),al=ST;function MT(e,t){return e===t||e!==e&&t!==t}var jT=MT,$T=9007199254740991;function _T(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$T}var ET=_T,Oee=Object.prototype,LT="[object Arguments]";function TT(e){return ml(e)&&Mi(e)==LT}var Mp=TT,pg=Object.prototype,OT=pg.hasOwnProperty,NT=pg.propertyIsEnumerable,Nee=Mp(function(){return arguments}())?Mp:function(e){return ml(e)&&OT.call(e,"callee")&&!NT.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,DT=jp&&jp.exports===gg,$p=DT?ne.Buffer:void 0,Dee=$p?$p.isBuffer:void 0,PT="[object Arguments]",zT="[object Array]",UT="[object Boolean]",RT="[object Date]",FT="[object Error]",VT="[object Function]",BT="[object Map]",qT="[object Number]",GT="[object Object]",HT="[object RegExp]",YT="[object Set]",ZT="[object String]",QT="[object WeakMap]",WT="[object ArrayBuffer]",KT="[object DataView]",JT="[object Float32Array]",XT="[object Float64Array]",eO="[object Int8Array]",tO="[object Int16Array]",rO="[object Int32Array]",iO="[object Uint8Array]",nO="[object Uint8ClampedArray]",oO="[object Uint16Array]",aO="[object Uint32Array]",R={};R[JT]=R[XT]=R[eO]=R[tO]=R[rO]=R[iO]=R[nO]=R[oO]=R[aO]=!0;R[PT]=R[zT]=R[WT]=R[UT]=R[KT]=R[RT]=R[FT]=R[VT]=R[BT]=R[qT]=R[GT]=R[HT]=R[YT]=R[ZT]=R[QT]=!1;function lO(e){return ml(e)&&ET(e.length)&&!!R[Mi(e)]}var sO=lO;function uO(e){return function(t){return e(t)}}var cO=uO,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hi=fg&&typeof module=="object"&&module&&!module.nodeType&&module,dO=hi&&hi.exports===fg,Ka=dO&&ug.process,pO=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||Ka&&Ka.binding&&Ka.binding("util")}catch{}}(),_p=pO,Ep=_p&&_p.isTypedArray,Pee=Ep?cO(Ep):sO,gO=Object.prototype,zee=gO.hasOwnProperty;function fO(e,t){return function(r){return e(t(r))}}var yO=fO,Uee=yO(Object.keys,Object),mO=Object.prototype,Ree=mO.hasOwnProperty,bO=Ft(Object,"create"),ki=bO;function hO(){this.__data__=ki?ki(null):{},this.size=0}var vO=hO;function wO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kO=wO,xO="__lodash_hash_undefined__",IO=Object.prototype,CO=IO.hasOwnProperty;function AO(e){var t=this.__data__;if(ki){var r=t[e];return r===xO?void 0:r}return CO.call(t,e)?t[e]:void 0}var SO=AO,MO=Object.prototype,jO=MO.hasOwnProperty;function $O(e){var t=this.__data__;return ki?t[e]!==void 0:jO.call(t,e)}var _O=$O,EO="__lodash_hash_undefined__";function LO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?EO:t,this}var TO=LO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=vO;Vt.prototype.delete=kO;Vt.prototype.get=SO;Vt.prototype.has=_O;Vt.prototype.set=TO;var Lp=Vt;function OO(){this.__data__=[],this.size=0}var NO=OO;function DO(e,t){for(var r=e.length;r--;)if(jT(e[r][0],t))return r;return-1}var io=DO,PO=Array.prototype,zO=PO.splice;function UO(e){var t=this.__data__,r=io(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zO.call(t,r,1),--this.size,!0}var RO=UO;function FO(e){var t=this.__data__,r=io(t,e);return r<0?void 0:t[r][1]}var VO=FO;function BO(e){return io(this.__data__,e)>-1}var qO=BO;function GO(e,t){var r=this.__data__,i=io(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HO=GO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=NO;Bt.prototype.delete=RO;Bt.prototype.get=VO;Bt.prototype.has=qO;Bt.prototype.set=HO;var no=Bt,YO=Ft(ne,"Map"),xi=YO;function ZO(){this.size=0,this.__data__={hash:new Lp,map:new(xi||no),string:new Lp}}var QO=ZO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KO=WO;function JO(e,t){var r=e.__data__;return KO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var oo=JO;function XO(e){var t=oo(this,e).delete(e);return this.size-=t?1:0,t}var eN=XO;function tN(e){return oo(this,e).get(e)}var rN=tN;function iN(e){return oo(this,e).has(e)}var nN=iN;function oN(e,t){var r=oo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var aN=oN;function qt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qt.prototype.clear=QO;qt.prototype.delete=eN;qt.prototype.get=rN;qt.prototype.has=nN;qt.prototype.set=aN;var yg=qt;function lN(){this.__data__=new no,this.size=0}var sN=lN;function uN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cN=uN;function dN(e){return this.__data__.get(e)}var pN=dN;function gN(e){return this.__data__.has(e)}var fN=gN,yN=200;function mN(e,t){var r=this.__data__;if(r instanceof no){var i=r.__data__;if(!xi||i.length<yN-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yg(i)}return r.set(e,t),this.size=r.size,this}var bN=mN;function ji(e){var t=this.__data__=new no(e);this.size=t.size}ji.prototype.clear=sN;ji.prototype.delete=cN;ji.prototype.get=pN;ji.prototype.has=fN;ji.prototype.set=bN;var hN=Object.prototype,Fee=hN.propertyIsEnumerable,vN=Ft(ne,"DataView"),ll=vN,wN=Ft(ne,"Promise"),sl=wN,kN=Ft(ne,"Set"),ul=kN,Tp="[object Map]",xN="[object Object]",Op="[object Promise]",Np="[object Set]",Dp="[object WeakMap]",Pp="[object DataView]",IN=Re(ll),CN=Re(xi),AN=Re(sl),SN=Re(ul),MN=Re(al),Tt=Mi;(ll&&Tt(new ll(new ArrayBuffer(1)))!=Pp||xi&&Tt(new xi)!=Tp||sl&&Tt(sl.resolve())!=Op||ul&&Tt(new ul)!=Np||al&&Tt(new al)!=Dp)&&(Tt=function(e){var t=Mi(e),r=t==xN?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case IN:return Pp;case CN:return Tp;case AN:return Op;case SN:return Np;case MN:return Dp}return t});var Vee=ne.Uint8Array,jN="__lodash_hash_undefined__";function $N(e){return this.__data__.set(e,jN),this}var _N=$N;function EN(e){return this.__data__.has(e)}var LN=EN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=_N;cl.prototype.has=LN;var zp=Dt?Dt.prototype:void 0,Bee=zp?zp.valueOf:void 0,TN=Object.prototype,qee=TN.hasOwnProperty,ON=Object.prototype,Gee=ON.hasOwnProperty,Hee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Zee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function NN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Up=NN;function DN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function PN(e){return typeof e?.translate=="function"}function Rp(e,t,r){return e&&DN(e)&&PN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",Pe="ly.img.ai.audio-generation.speech",ze="ly.img.ai.audio-generation.sound";function zN(e){return{async initialize({cesdk:t}){if(t==null)return;$E(t,we,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${Pe}`]:"AI Voice",[`panel.${ze}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),UN(e);let n=Qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Rp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:ze},execute:()=>{t.ui.isPanelOpen(ze)?t.ui.closePanel(ze):t.ui.openPanel(ze)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Rp(t,i,"AI Voice"),labelKey:i,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Up(s).map(f=>f({cesdk:t}))),u=await Promise.all(Up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Cp("audio",l,{cesdk:t},e),y=await Cp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(ze,y.panel.builderRenderFunction),bp({cesdk:t,panelId:ze})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,g.panel.builderRenderFunction),bp({cesdk:t,panelId:Pe})):o()}}}function UN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var RN=zN,FN=e=>({name:we,version:"1.83.0-rc.0",...RN(e)}),mg=FN;var VN="@imgly/plugin-ai-text-generation",BN=`
318
+ `,"+")}`}}async function xL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function IL(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=fi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=fi(n,o)}else"customPrompt"in e?a=fi(n,"custom"):a=fi(n,"improved");else a=fi(n,"generated");return CL(a,r.abortSignal)}async function*CL(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await sg(100)}return{kind:"text",text:e}}function fi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function AL(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:SL(220,i),duration:i,thumbnailUrl:void 0}}function SL(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return ML(i,44100)}function ML(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,h)=>{for(let m=0;m<h.length;m++)u.setUint8(f+m,h.charCodeAt(m))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let h=Math.max(-1,Math.min(1,e[f])),m=Math.round(h*32767);u.setInt16(p,m,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function sg(e){return new Promise(t=>{setTimeout(t,e)})}var jL=vL,$L="USER_CANCEL";function _L(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=kE([...e.provider.output.middleware??[],...r?.middlewares??[],IE({enable:r?.debug}),jL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,error:o,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:ME(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===$L?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),error:o,middlewareOptions:a}}}}var EL=_L;async function LL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Qp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=fL(a),s=mL(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=EL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await pL(a,c);jE(r.cesdk,"@imgly/plugin-ai-generation",hL);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return wE.get().register(u),u}var Qa=LL;function TL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new vj(n,r,i);return r.engine.asset.addSource(a),a.id}var OL=TL;function ol(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-${e}-generation-web.defaults.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NL(e,t,r,i){let{cesdk:n}=r;pl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry","common.ai-generation.failed":"We couldn't generate the asset. Please try again.","ly.img.ai.error.insufficientCredits":"You've run out of AI credits. Generation is unavailable until more credits are available.","ly.img.ai.error.unauthorized":"AI generation isn't authorized. Please sign in again or contact support.","ly.img.ai.error.notAvailable":"This AI model isn't available on your current plan.","ly.img.ai.error.invalidRequest":"This request couldn't be processed. Please adjust your input and try again.","ly.img.ai.error.serviceUnavailable":"The AI service is temporarily unavailable. Please try again shortly.","ly.img.ai.error.network":"We couldn't reach the AI service. Please check your connection and try again."}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Qa(e,u,r,i)));o.push(...l),a=PL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>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=DL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(vE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function DL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),h=[];f.value==="fromText"?h.push(...r):f.value==="fromImage"?h.push(...i):h.push(...r,...i);let m=r.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),v=i.map(({provider:C,panel:A})=>({id:C.id,label:il(C),builderRenderFunction:A?.builderRenderFunction})),k=o.experimental.global(`${t}.selectedProvider.fromText`,m[0]?.id),I=o.experimental.global(`${t}.selectedProvider.fromImage`,v[0]?.id),b=m.find(C=>C.id===k.value)??m[0],x=v.find(C=>C.id===I.value)??v[0],M=f.value==="fromText"?k:f.value==="fromImage"?I:void 0,S=f.value==="fromText"?b:f.value==="fromImage"?x:void 0,E=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(E,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let _=d&&g&&r.length>0&&i.length>0,w=a&&_,j=h.length>1&&$;if((w||j)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(w){let C=[{id:"fromText",isEnabled:d,providers:r},{id:"fromImage",isEnabled:g,providers:i}].filter(({isEnabled:A,providers:L})=>A&&L.length>0).map(({id:A,providers:L})=>({id:A,label:ol(e,`${A}.label`),icon:f.value!==A&&zL(L,o)?"@imgly/LoadingSpinner":void 0}));s.Tabs(`${t}.fromType.tabs`,{tabs:C,value:f.value??C[0].id,setValue:A=>{f.setValue(A)}})}if(j){let C=f.value==="fromText"?m:f.value==="fromImage"?v:[...m,...v];M!=null&&S!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:C,value:S,setValue:A=>{M.setValue(A.id)}})}}}),h.length>1)S?.builderRenderFunction?.(o);else{let C=h[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:il(p),builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ol(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function zL(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var Cp=NL,Lee=5*60*1e3,UL=typeof global=="object"&&global&&global.Object===Object&&global,ug=UL,RL=typeof self=="object"&&self&&self.Object===Object&&self,FL=ug||RL||Function("return this")(),ne=FL,VL=ne.Symbol,Dt=VL,cg=Object.prototype,BL=cg.hasOwnProperty,qL=cg.toString,yi=Dt?Dt.toStringTag:void 0;function GL(e){var t=BL.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=qL.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var HL=GL,YL=Object.prototype,ZL=YL.toString;function QL(e){return ZL.call(e)}var WL=QL,KL="[object Null]",JL="[object Undefined]",Ap=Dt?Dt.toStringTag:void 0;function XL(e){return e==null?e===void 0?JL:KL:Ap&&Ap in Object(e)?HL(e):WL(e)}var Mi=XL;function eT(e){return e!=null&&typeof e=="object"}var ml=eT,Tee=Array.isArray;function tT(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var dg=tT,rT="[object AsyncFunction]",iT="[object Function]",nT="[object GeneratorFunction]",oT="[object Proxy]";function aT(e){if(!dg(e))return!1;var t=Mi(e);return t==iT||t==nT||t==rT||t==oT}var lT=aT,sT=ne["__core-js_shared__"],Wa=sT,Sp=function(){var e=/[^.]+$/.exec(Wa&&Wa.keys&&Wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function uT(e){return!!Sp&&Sp in e}var cT=uT,dT=Function.prototype,pT=dT.toString;function gT(e){if(e!=null){try{return pT.call(e)}catch{}try{return e+""}catch{}}return""}var Re=gT,fT=/[\\^$.*+?()[\]{}|]/g,yT=/^\[object .+?Constructor\]$/,mT=Function.prototype,bT=Object.prototype,hT=mT.toString,vT=bT.hasOwnProperty,wT=RegExp("^"+hT.call(vT).replace(fT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kT(e){if(!dg(e)||cT(e))return!1;var t=lT(e)?wT:yT;return t.test(Re(e))}var xT=kT;function IT(e,t){return e?.[t]}var CT=IT;function AT(e,t){var r=CT(e,t);return xT(r)?r:void 0}var Ft=AT,ST=Ft(ne,"WeakMap"),al=ST;function MT(e,t){return e===t||e!==e&&t!==t}var jT=MT,$T=9007199254740991;function _T(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=$T}var ET=_T,Oee=Object.prototype,LT="[object Arguments]";function TT(e){return ml(e)&&Mi(e)==LT}var Mp=TT,pg=Object.prototype,OT=pg.hasOwnProperty,NT=pg.propertyIsEnumerable,Nee=Mp(function(){return arguments}())?Mp:function(e){return ml(e)&&OT.call(e,"callee")&&!NT.call(e,"callee")},gg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=gg&&typeof module=="object"&&module&&!module.nodeType&&module,DT=jp&&jp.exports===gg,$p=DT?ne.Buffer:void 0,Dee=$p?$p.isBuffer:void 0,PT="[object Arguments]",zT="[object Array]",UT="[object Boolean]",RT="[object Date]",FT="[object Error]",VT="[object Function]",BT="[object Map]",qT="[object Number]",GT="[object Object]",HT="[object RegExp]",YT="[object Set]",ZT="[object String]",QT="[object WeakMap]",WT="[object ArrayBuffer]",KT="[object DataView]",JT="[object Float32Array]",XT="[object Float64Array]",eO="[object Int8Array]",tO="[object Int16Array]",rO="[object Int32Array]",iO="[object Uint8Array]",nO="[object Uint8ClampedArray]",oO="[object Uint16Array]",aO="[object Uint32Array]",R={};R[JT]=R[XT]=R[eO]=R[tO]=R[rO]=R[iO]=R[nO]=R[oO]=R[aO]=!0;R[PT]=R[zT]=R[WT]=R[UT]=R[KT]=R[RT]=R[FT]=R[VT]=R[BT]=R[qT]=R[GT]=R[HT]=R[YT]=R[ZT]=R[QT]=!1;function lO(e){return ml(e)&&ET(e.length)&&!!R[Mi(e)]}var sO=lO;function uO(e){return function(t){return e(t)}}var cO=uO,fg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hi=fg&&typeof module=="object"&&module&&!module.nodeType&&module,dO=hi&&hi.exports===fg,Ka=dO&&ug.process,pO=function(){try{var e=hi&&hi.require&&hi.require("util").types;return e||Ka&&Ka.binding&&Ka.binding("util")}catch{}}(),_p=pO,Ep=_p&&_p.isTypedArray,Pee=Ep?cO(Ep):sO,gO=Object.prototype,zee=gO.hasOwnProperty;function fO(e,t){return function(r){return e(t(r))}}var yO=fO,Uee=yO(Object.keys,Object),mO=Object.prototype,Ree=mO.hasOwnProperty,bO=Ft(Object,"create"),ki=bO;function hO(){this.__data__=ki?ki(null):{},this.size=0}var vO=hO;function wO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kO=wO,xO="__lodash_hash_undefined__",IO=Object.prototype,CO=IO.hasOwnProperty;function AO(e){var t=this.__data__;if(ki){var r=t[e];return r===xO?void 0:r}return CO.call(t,e)?t[e]:void 0}var SO=AO,MO=Object.prototype,jO=MO.hasOwnProperty;function $O(e){var t=this.__data__;return ki?t[e]!==void 0:jO.call(t,e)}var _O=$O,EO="__lodash_hash_undefined__";function LO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?EO:t,this}var TO=LO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=vO;Vt.prototype.delete=kO;Vt.prototype.get=SO;Vt.prototype.has=_O;Vt.prototype.set=TO;var Lp=Vt;function OO(){this.__data__=[],this.size=0}var NO=OO;function DO(e,t){for(var r=e.length;r--;)if(jT(e[r][0],t))return r;return-1}var io=DO,PO=Array.prototype,zO=PO.splice;function UO(e){var t=this.__data__,r=io(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():zO.call(t,r,1),--this.size,!0}var RO=UO;function FO(e){var t=this.__data__,r=io(t,e);return r<0?void 0:t[r][1]}var VO=FO;function BO(e){return io(this.__data__,e)>-1}var qO=BO;function GO(e,t){var r=this.__data__,i=io(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var HO=GO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=NO;Bt.prototype.delete=RO;Bt.prototype.get=VO;Bt.prototype.has=qO;Bt.prototype.set=HO;var no=Bt,YO=Ft(ne,"Map"),xi=YO;function ZO(){this.size=0,this.__data__={hash:new Lp,map:new(xi||no),string:new Lp}}var QO=ZO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KO=WO;function JO(e,t){var r=e.__data__;return KO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var oo=JO;function XO(e){var t=oo(this,e).delete(e);return this.size-=t?1:0,t}var eN=XO;function tN(e){return oo(this,e).get(e)}var rN=tN;function iN(e){return oo(this,e).has(e)}var nN=iN;function oN(e,t){var r=oo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var aN=oN;function qt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}qt.prototype.clear=QO;qt.prototype.delete=eN;qt.prototype.get=rN;qt.prototype.has=nN;qt.prototype.set=aN;var yg=qt;function lN(){this.__data__=new no,this.size=0}var sN=lN;function uN(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cN=uN;function dN(e){return this.__data__.get(e)}var pN=dN;function gN(e){return this.__data__.has(e)}var fN=gN,yN=200;function mN(e,t){var r=this.__data__;if(r instanceof no){var i=r.__data__;if(!xi||i.length<yN-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new yg(i)}return r.set(e,t),this.size=r.size,this}var bN=mN;function ji(e){var t=this.__data__=new no(e);this.size=t.size}ji.prototype.clear=sN;ji.prototype.delete=cN;ji.prototype.get=pN;ji.prototype.has=fN;ji.prototype.set=bN;var hN=Object.prototype,Fee=hN.propertyIsEnumerable,vN=Ft(ne,"DataView"),ll=vN,wN=Ft(ne,"Promise"),sl=wN,kN=Ft(ne,"Set"),ul=kN,Tp="[object Map]",xN="[object Object]",Op="[object Promise]",Np="[object Set]",Dp="[object WeakMap]",Pp="[object DataView]",IN=Re(ll),CN=Re(xi),AN=Re(sl),SN=Re(ul),MN=Re(al),Tt=Mi;(ll&&Tt(new ll(new ArrayBuffer(1)))!=Pp||xi&&Tt(new xi)!=Tp||sl&&Tt(sl.resolve())!=Op||ul&&Tt(new ul)!=Np||al&&Tt(new al)!=Dp)&&(Tt=function(e){var t=Mi(e),r=t==xN?e.constructor:void 0,i=r?Re(r):"";if(i)switch(i){case IN:return Pp;case CN:return Tp;case AN:return Op;case SN:return Np;case MN:return Dp}return t});var Vee=ne.Uint8Array,jN="__lodash_hash_undefined__";function $N(e){return this.__data__.set(e,jN),this}var _N=$N;function EN(e){return this.__data__.has(e)}var LN=EN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new yg;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=_N;cl.prototype.has=LN;var zp=Dt?Dt.prototype:void 0,Bee=zp?zp.valueOf:void 0,TN=Object.prototype,qee=TN.hasOwnProperty,ON=Object.prototype,Gee=ON.hasOwnProperty,Hee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Zee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function NN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Up=NN;function DN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function PN(e){return typeof e?.translate=="function"}function Rp(e,t,r){return e&&DN(e)&&PN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",Pe="ly.img.ai.audio-generation.speech",ze="ly.img.ai.audio-generation.sound";function zN(e){return{async initialize({cesdk:t}){if(t==null)return;$E(t,we,"1.83.0-rc.1"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${Pe}`]:"AI Voice",[`panel.${ze}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),UN(e);let n=Qp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Rp(t,r,"Generate Sound"),labelKey:r,meta:{panelId:ze},execute:()=>{t.ui.isPanelOpen(ze)?t.ui.closePanel(ze):t.ui.openPanel(ze)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Rp(t,i,"AI Voice"),labelKey:i,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Up(s).map(f=>f({cesdk:t}))),u=await Promise.all(Up(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await Cp("audio",l,{cesdk:t},e),y=await Cp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(ze,y.panel.builderRenderFunction),bp({cesdk:t,panelId:ze})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,g.panel.builderRenderFunction),bp({cesdk:t,panelId:Pe})):o()}}}function UN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var RN=zN,FN=e=>({name:we,version:"1.83.0-rc.1",...RN(e)}),mg=FN;var VN="@imgly/plugin-ai-text-generation",BN=`
319
319
  <svg>
320
320
  <symbol
321
321
  fill="none"
@@ -638,7 +638,7 @@ ${t}
638
638
  </change_text_to>
639
639
 
640
640
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
641
- `}var wq=vq,ko="changeTextTo",Ie=`ly.img.${ko}`,n1=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,o1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var kq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${o1}`]:"Change Text to...",[`${o1}.prompt`]:"Change Text to...",[`${n1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${n1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.PromptInput(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:wq(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),xq=kq,R1="@imgly/plugin-ai-text-generation-web",Iq=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function Cq(e){return{async initialize({cesdk:t}){if(t==null)return;tU(t,R1,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(VN,qN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),Aq(e);let r=Rl.get();r.register(zB({cesdk:t})),r.register(GB({cesdk:t})),r.register(JB({cesdk:t})),r.register(oq({cesdk:t})),r.register(dq({cesdk:t})),r.register(hq({cesdk:t})),r.register(xq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(EB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await uR("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await TR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Iq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:co}))}}}function Aq(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var Sq=Cq,Mq=e=>({name:R1,version:"1.83.0-rc.0",...Sq(e)}),F1=Mq;function jq(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var je=jq,$q=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ar(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ar(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ar(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ar(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ar(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ar(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ar(n,t,a)}return e}var _q=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Eq=typeof global=="object"&&global&&global.Object===Object&&global,If=Eq,Lq=typeof self=="object"&&self&&self.Object===Object&&self,Tq=If||Lq||Function("return this")(),le=Tq,Oq=le.Symbol,lr=Oq,Cf=Object.prototype,Nq=Cf.hasOwnProperty,Dq=Cf.toString,Zi=lr?lr.toStringTag:void 0;function Pq(e){var t=Nq.call(e,Zi),r=e[Zi];try{e[Zi]=void 0;var i=!0}catch{}var n=Dq.call(e);return i&&(t?e[Zi]=r:delete e[Zi]),n}var zq=Pq,Uq=Object.prototype,Rq=Uq.toString;function Fq(e){return Rq.call(e)}var Vq=Fq,Bq="[object Null]",qq="[object Undefined]",V1=lr?lr.toStringTag:void 0;function Gq(e){return e==null?e===void 0?qq:Bq:V1&&V1 in Object(e)?zq(e):Vq(e)}var an=Gq;function Hq(e){return e!=null&&typeof e=="object"}var ds=Hq,Nte=Array.isArray;function Yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Af=Yq,Zq="[object AsyncFunction]",Qq="[object Function]",Wq="[object GeneratorFunction]",Kq="[object Proxy]";function Jq(e){if(!Af(e))return!1;var t=an(e);return t==Qq||t==Wq||t==Zq||t==Kq}var Xq=Jq,eG=le["__core-js_shared__"],Gl=eG,B1=function(){var e=/[^.]+$/.exec(Gl&&Gl.keys&&Gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tG(e){return!!B1&&B1 in e}var rG=tG,iG=Function.prototype,nG=iG.toString;function oG(e){if(e!=null){try{return nG.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oG,aG=/[\\^$.*+?()[\]{}|]/g,lG=/^\[object .+?Constructor\]$/,sG=Function.prototype,uG=Object.prototype,cG=sG.toString,dG=uG.hasOwnProperty,pG=RegExp("^"+cG.call(dG).replace(aG,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gG(e){if(!Af(e)||rG(e))return!1;var t=Xq(e)?pG:lG;return t.test(Ge(e))}var fG=gG;function yG(e,t){return e?.[t]}var mG=yG;function bG(e,t){var r=mG(e,t);return fG(r)?r:void 0}var ur=bG,hG=ur(le,"WeakMap"),Jl=hG;function vG(e,t){return e===t||e!==e&&t!==t}var wG=vG,kG=9007199254740991;function xG(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kG}var IG=xG,Dte=Object.prototype,CG="[object Arguments]";function AG(e){return ds(e)&&an(e)==CG}var q1=AG,Sf=Object.prototype,SG=Sf.hasOwnProperty,MG=Sf.propertyIsEnumerable,Pte=q1(function(){return arguments}())?q1:function(e){return ds(e)&&SG.call(e,"callee")&&!MG.call(e,"callee")},Mf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G1=Mf&&typeof module=="object"&&module&&!module.nodeType&&module,jG=G1&&G1.exports===Mf,H1=jG?le.Buffer:void 0,zte=H1?H1.isBuffer:void 0,$G="[object Arguments]",_G="[object Array]",EG="[object Boolean]",LG="[object Date]",TG="[object Error]",OG="[object Function]",NG="[object Map]",DG="[object Number]",PG="[object Object]",zG="[object RegExp]",UG="[object Set]",RG="[object String]",FG="[object WeakMap]",VG="[object ArrayBuffer]",BG="[object DataView]",qG="[object Float32Array]",GG="[object Float64Array]",HG="[object Int8Array]",YG="[object Int16Array]",ZG="[object Int32Array]",QG="[object Uint8Array]",WG="[object Uint8ClampedArray]",KG="[object Uint16Array]",JG="[object Uint32Array]",B={};B[qG]=B[GG]=B[HG]=B[YG]=B[ZG]=B[QG]=B[WG]=B[KG]=B[JG]=!0;B[$G]=B[_G]=B[VG]=B[EG]=B[BG]=B[LG]=B[TG]=B[OG]=B[NG]=B[DG]=B[PG]=B[zG]=B[UG]=B[RG]=B[FG]=!1;function XG(e){return ds(e)&&IG(e.length)&&!!B[an(e)]}var eH=XG;function tH(e){return function(t){return e(t)}}var rH=tH,jf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=jf&&typeof module=="object"&&module&&!module.nodeType&&module,iH=Xi&&Xi.exports===jf,Hl=iH&&If.process,nH=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Hl&&Hl.binding&&Hl.binding("util")}catch{}}(),Y1=nH,Z1=Y1&&Y1.isTypedArray,Ute=Z1?rH(Z1):eH,oH=Object.prototype,Rte=oH.hasOwnProperty;function aH(e,t){return function(r){return e(t(r))}}var lH=aH,Fte=lH(Object.keys,Object),sH=Object.prototype,Vte=sH.hasOwnProperty,uH=ur(Object,"create"),tn=uH;function cH(){this.__data__=tn?tn(null):{},this.size=0}var dH=cH;function pH(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gH=pH,fH="__lodash_hash_undefined__",yH=Object.prototype,mH=yH.hasOwnProperty;function bH(e){var t=this.__data__;if(tn){var r=t[e];return r===fH?void 0:r}return mH.call(t,e)?t[e]:void 0}var hH=bH,vH=Object.prototype,wH=vH.hasOwnProperty;function kH(e){var t=this.__data__;return tn?t[e]!==void 0:wH.call(t,e)}var xH=kH,IH="__lodash_hash_undefined__";function CH(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?IH:t,this}var AH=CH;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=dH;cr.prototype.delete=gH;cr.prototype.get=hH;cr.prototype.has=xH;cr.prototype.set=AH;var Q1=cr;function SH(){this.__data__=[],this.size=0}var MH=SH;function jH(e,t){for(var r=e.length;r--;)if(wG(e[r][0],t))return r;return-1}var xo=jH,$H=Array.prototype,_H=$H.splice;function EH(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_H.call(t,r,1),--this.size,!0}var LH=EH;function TH(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var OH=TH;function NH(e){return xo(this.__data__,e)>-1}var DH=NH;function PH(e,t){var r=this.__data__,i=xo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zH=PH;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=MH;dr.prototype.delete=LH;dr.prototype.get=OH;dr.prototype.has=DH;dr.prototype.set=zH;var Io=dr,UH=ur(le,"Map"),rn=UH;function RH(){this.size=0,this.__data__={hash:new Q1,map:new(rn||Io),string:new Q1}}var FH=RH;function VH(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BH=VH;function qH(e,t){var r=e.__data__;return BH(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Co=qH;function GH(e){var t=Co(this,e).delete(e);return this.size-=t?1:0,t}var HH=GH;function YH(e){return Co(this,e).get(e)}var ZH=YH;function QH(e){return Co(this,e).has(e)}var WH=QH;function KH(e,t){var r=Co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JH=KH;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=FH;pr.prototype.delete=HH;pr.prototype.get=ZH;pr.prototype.has=WH;pr.prototype.set=JH;var $f=pr;function XH(){this.__data__=new Io,this.size=0}var eY=XH;function tY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rY=tY;function iY(e){return this.__data__.get(e)}var nY=iY;function oY(e){return this.__data__.has(e)}var aY=oY,lY=200;function sY(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!rn||i.length<lY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $f(i)}return r.set(e,t),this.size=r.size,this}var uY=sY;function ln(e){var t=this.__data__=new Io(e);this.size=t.size}ln.prototype.clear=eY;ln.prototype.delete=rY;ln.prototype.get=nY;ln.prototype.has=aY;ln.prototype.set=uY;var cY=Object.prototype,Bte=cY.propertyIsEnumerable,dY=ur(le,"DataView"),Xl=dY,pY=ur(le,"Promise"),es=pY,gY=ur(le,"Set"),ts=gY,W1="[object Map]",fY="[object Object]",K1="[object Promise]",J1="[object Set]",X1="[object WeakMap]",ef="[object DataView]",yY=Ge(Xl),mY=Ge(rn),bY=Ge(es),hY=Ge(ts),vY=Ge(Jl),nr=an;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=ef||rn&&nr(new rn)!=W1||es&&nr(es.resolve())!=K1||ts&&nr(new ts)!=J1||Jl&&nr(new Jl)!=X1)&&(nr=function(e){var t=an(e),r=t==fY?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yY:return ef;case mY:return W1;case bY:return K1;case hY:return J1;case vY:return X1}return t});var qte=le.Uint8Array,wY="__lodash_hash_undefined__";function kY(e){return this.__data__.set(e,wY),this}var xY=kY;function IY(e){return this.__data__.has(e)}var CY=IY;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $f;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=xY;rs.prototype.has=CY;var tf=lr?lr.prototype:void 0,Gte=tf?tf.valueOf:void 0,AY=Object.prototype,Hte=AY.hasOwnProperty,SY=Object.prototype,Yte=SY.hasOwnProperty,Zte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Qte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Wte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function _f(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MY(e,t){let r=await _f(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return _f(i,t)}function $Y(e){return e!==void 0}var _Y=$Y;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ps(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Ef=class Lf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Lf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},EY=class Tf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function LY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function TY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var OY=TY,Yl="ly.img.ai.temp";async function NY(e,t){return e.engine.asset.findAllSources().includes(Yl)||e.engine.asset.addLocalSource(Yl),e.engine.asset.apply(Yl,t)}function DY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function PY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gs(e){return e instanceof Error&&e.name==="AbortError"}function UY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function RY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
641
+ `}var wq=vq,ko="changeTextTo",Ie=`ly.img.${ko}`,n1=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,o1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var kq=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${o1}`]:"Change Text to...",[`${o1}.prompt`]:"Change Text to...",[`${n1}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${n1}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.PromptInput(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:wq(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),xq=kq,R1="@imgly/plugin-ai-text-generation-web",Iq=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function Cq(e){return{async initialize({cesdk:t}){if(t==null)return;tU(t,R1,"1.83.0-rc.1"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(VN,qN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),Aq(e);let r=Rl.get();r.register(zB({cesdk:t})),r.register(GB({cesdk:t})),r.register(JB({cesdk:t})),r.register(oq({cesdk:t})),r.register(dq({cesdk:t})),r.register(hq({cesdk:t})),r.register(xq({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(EB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await uR("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await TR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Iq});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:co}))}}}function Aq(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var Sq=Cq,Mq=e=>({name:R1,version:"1.83.0-rc.1",...Sq(e)}),F1=Mq;function jq(e,t,r,i){let n=`property.${r}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${t}-generation-web.${e}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${t}-generation-web.${e}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}var je=jq,$q=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;ar(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{ar(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return ar(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),ar(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function ar(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=ar(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=ar(n,t,a)}return e}var _q=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Eq=typeof global=="object"&&global&&global.Object===Object&&global,If=Eq,Lq=typeof self=="object"&&self&&self.Object===Object&&self,Tq=If||Lq||Function("return this")(),le=Tq,Oq=le.Symbol,lr=Oq,Cf=Object.prototype,Nq=Cf.hasOwnProperty,Dq=Cf.toString,Zi=lr?lr.toStringTag:void 0;function Pq(e){var t=Nq.call(e,Zi),r=e[Zi];try{e[Zi]=void 0;var i=!0}catch{}var n=Dq.call(e);return i&&(t?e[Zi]=r:delete e[Zi]),n}var zq=Pq,Uq=Object.prototype,Rq=Uq.toString;function Fq(e){return Rq.call(e)}var Vq=Fq,Bq="[object Null]",qq="[object Undefined]",V1=lr?lr.toStringTag:void 0;function Gq(e){return e==null?e===void 0?qq:Bq:V1&&V1 in Object(e)?zq(e):Vq(e)}var an=Gq;function Hq(e){return e!=null&&typeof e=="object"}var ds=Hq,Nte=Array.isArray;function Yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Af=Yq,Zq="[object AsyncFunction]",Qq="[object Function]",Wq="[object GeneratorFunction]",Kq="[object Proxy]";function Jq(e){if(!Af(e))return!1;var t=an(e);return t==Qq||t==Wq||t==Zq||t==Kq}var Xq=Jq,eG=le["__core-js_shared__"],Gl=eG,B1=function(){var e=/[^.]+$/.exec(Gl&&Gl.keys&&Gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tG(e){return!!B1&&B1 in e}var rG=tG,iG=Function.prototype,nG=iG.toString;function oG(e){if(e!=null){try{return nG.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=oG,aG=/[\\^$.*+?()[\]{}|]/g,lG=/^\[object .+?Constructor\]$/,sG=Function.prototype,uG=Object.prototype,cG=sG.toString,dG=uG.hasOwnProperty,pG=RegExp("^"+cG.call(dG).replace(aG,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gG(e){if(!Af(e)||rG(e))return!1;var t=Xq(e)?pG:lG;return t.test(Ge(e))}var fG=gG;function yG(e,t){return e?.[t]}var mG=yG;function bG(e,t){var r=mG(e,t);return fG(r)?r:void 0}var ur=bG,hG=ur(le,"WeakMap"),Jl=hG;function vG(e,t){return e===t||e!==e&&t!==t}var wG=vG,kG=9007199254740991;function xG(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kG}var IG=xG,Dte=Object.prototype,CG="[object Arguments]";function AG(e){return ds(e)&&an(e)==CG}var q1=AG,Sf=Object.prototype,SG=Sf.hasOwnProperty,MG=Sf.propertyIsEnumerable,Pte=q1(function(){return arguments}())?q1:function(e){return ds(e)&&SG.call(e,"callee")&&!MG.call(e,"callee")},Mf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G1=Mf&&typeof module=="object"&&module&&!module.nodeType&&module,jG=G1&&G1.exports===Mf,H1=jG?le.Buffer:void 0,zte=H1?H1.isBuffer:void 0,$G="[object Arguments]",_G="[object Array]",EG="[object Boolean]",LG="[object Date]",TG="[object Error]",OG="[object Function]",NG="[object Map]",DG="[object Number]",PG="[object Object]",zG="[object RegExp]",UG="[object Set]",RG="[object String]",FG="[object WeakMap]",VG="[object ArrayBuffer]",BG="[object DataView]",qG="[object Float32Array]",GG="[object Float64Array]",HG="[object Int8Array]",YG="[object Int16Array]",ZG="[object Int32Array]",QG="[object Uint8Array]",WG="[object Uint8ClampedArray]",KG="[object Uint16Array]",JG="[object Uint32Array]",B={};B[qG]=B[GG]=B[HG]=B[YG]=B[ZG]=B[QG]=B[WG]=B[KG]=B[JG]=!0;B[$G]=B[_G]=B[VG]=B[EG]=B[BG]=B[LG]=B[TG]=B[OG]=B[NG]=B[DG]=B[PG]=B[zG]=B[UG]=B[RG]=B[FG]=!1;function XG(e){return ds(e)&&IG(e.length)&&!!B[an(e)]}var eH=XG;function tH(e){return function(t){return e(t)}}var rH=tH,jf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xi=jf&&typeof module=="object"&&module&&!module.nodeType&&module,iH=Xi&&Xi.exports===jf,Hl=iH&&If.process,nH=function(){try{var e=Xi&&Xi.require&&Xi.require("util").types;return e||Hl&&Hl.binding&&Hl.binding("util")}catch{}}(),Y1=nH,Z1=Y1&&Y1.isTypedArray,Ute=Z1?rH(Z1):eH,oH=Object.prototype,Rte=oH.hasOwnProperty;function aH(e,t){return function(r){return e(t(r))}}var lH=aH,Fte=lH(Object.keys,Object),sH=Object.prototype,Vte=sH.hasOwnProperty,uH=ur(Object,"create"),tn=uH;function cH(){this.__data__=tn?tn(null):{},this.size=0}var dH=cH;function pH(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gH=pH,fH="__lodash_hash_undefined__",yH=Object.prototype,mH=yH.hasOwnProperty;function bH(e){var t=this.__data__;if(tn){var r=t[e];return r===fH?void 0:r}return mH.call(t,e)?t[e]:void 0}var hH=bH,vH=Object.prototype,wH=vH.hasOwnProperty;function kH(e){var t=this.__data__;return tn?t[e]!==void 0:wH.call(t,e)}var xH=kH,IH="__lodash_hash_undefined__";function CH(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tn&&t===void 0?IH:t,this}var AH=CH;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=dH;cr.prototype.delete=gH;cr.prototype.get=hH;cr.prototype.has=xH;cr.prototype.set=AH;var Q1=cr;function SH(){this.__data__=[],this.size=0}var MH=SH;function jH(e,t){for(var r=e.length;r--;)if(wG(e[r][0],t))return r;return-1}var xo=jH,$H=Array.prototype,_H=$H.splice;function EH(e){var t=this.__data__,r=xo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_H.call(t,r,1),--this.size,!0}var LH=EH;function TH(e){var t=this.__data__,r=xo(t,e);return r<0?void 0:t[r][1]}var OH=TH;function NH(e){return xo(this.__data__,e)>-1}var DH=NH;function PH(e,t){var r=this.__data__,i=xo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zH=PH;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=MH;dr.prototype.delete=LH;dr.prototype.get=OH;dr.prototype.has=DH;dr.prototype.set=zH;var Io=dr,UH=ur(le,"Map"),rn=UH;function RH(){this.size=0,this.__data__={hash:new Q1,map:new(rn||Io),string:new Q1}}var FH=RH;function VH(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var BH=VH;function qH(e,t){var r=e.__data__;return BH(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Co=qH;function GH(e){var t=Co(this,e).delete(e);return this.size-=t?1:0,t}var HH=GH;function YH(e){return Co(this,e).get(e)}var ZH=YH;function QH(e){return Co(this,e).has(e)}var WH=QH;function KH(e,t){var r=Co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var JH=KH;function pr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pr.prototype.clear=FH;pr.prototype.delete=HH;pr.prototype.get=ZH;pr.prototype.has=WH;pr.prototype.set=JH;var $f=pr;function XH(){this.__data__=new Io,this.size=0}var eY=XH;function tY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var rY=tY;function iY(e){return this.__data__.get(e)}var nY=iY;function oY(e){return this.__data__.has(e)}var aY=oY,lY=200;function sY(e,t){var r=this.__data__;if(r instanceof Io){var i=r.__data__;if(!rn||i.length<lY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new $f(i)}return r.set(e,t),this.size=r.size,this}var uY=sY;function ln(e){var t=this.__data__=new Io(e);this.size=t.size}ln.prototype.clear=eY;ln.prototype.delete=rY;ln.prototype.get=nY;ln.prototype.has=aY;ln.prototype.set=uY;var cY=Object.prototype,Bte=cY.propertyIsEnumerable,dY=ur(le,"DataView"),Xl=dY,pY=ur(le,"Promise"),es=pY,gY=ur(le,"Set"),ts=gY,W1="[object Map]",fY="[object Object]",K1="[object Promise]",J1="[object Set]",X1="[object WeakMap]",ef="[object DataView]",yY=Ge(Xl),mY=Ge(rn),bY=Ge(es),hY=Ge(ts),vY=Ge(Jl),nr=an;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=ef||rn&&nr(new rn)!=W1||es&&nr(es.resolve())!=K1||ts&&nr(new ts)!=J1||Jl&&nr(new Jl)!=X1)&&(nr=function(e){var t=an(e),r=t==fY?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case yY:return ef;case mY:return W1;case bY:return K1;case hY:return J1;case vY:return X1}return t});var qte=le.Uint8Array,wY="__lodash_hash_undefined__";function kY(e){return this.__data__.set(e,wY),this}var xY=kY;function IY(e){return this.__data__.has(e)}var CY=IY;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $f;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=xY;rs.prototype.has=CY;var tf=lr?lr.prototype:void 0,Gte=tf?tf.valueOf:void 0,AY=Object.prototype,Hte=AY.hasOwnProperty,SY=Object.prototype,Yte=SY.hasOwnProperty,Zte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Qte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Wte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function _f(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function MY(e,t){let r=await _f(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function jY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return _f(i,t)}function $Y(e){return e!==void 0}var _Y=$Y;function sn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function un(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}function ps(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Ef=class Lf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Lf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},EY=class Tf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Tf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function LY(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,h)=>s(l+1,f,h),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function TY({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var OY=TY,Yl="ly.img.ai.temp";async function NY(e,t){return e.engine.asset.findAllSources().includes(Yl)||e.engine.asset.addLocalSource(Yl),e.engine.asset.apply(Yl,t)}function DY(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Of(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function PY(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function zY(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gs(e){return e instanceof Error&&e.name==="AbortError"}function UY(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function RY(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
642
642
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
643
643
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
644
644
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function FY(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var VY=FY;function BY(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),qY(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:DY(e)}))}function qY(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a,duration:i.duration}),!0}var rf=BY,GY="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fs=GY;function HY(e,t,r){switch(t){case"image":return YY(e,r[t]);case"video":return ZY(e,r[t]);case"sticker":return QY(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function YY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ZY(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fs,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function QY(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fs,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var WY=HY;async function KY(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return JY(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return XY(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return eZ(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return tZ(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function JY(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function XY(e,t,r){let i=t.width,n=t.height,a=await PY(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function eZ(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function tZ(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Nf=KY;function rZ(e){switch(e.userFlow){case"placeholder":return nZ(e);case"generation-only":return iZ(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function iZ(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Of(),c=await Nf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n),error:n}}}}function nZ(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Of(),c=WY(s,a,o);if(i=await NY(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"||l.middlewareOptions?.defaultPrevented()?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Nf(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a),error:a}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var oZ=rZ;function ys(e){return`${e}.generating`}function aZ(e){return`${e}.abort`}function lZ(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(aZ(d),()=>{}),y=c.global(ys(d),!1),f,h=y.value&&p,m=()=>{h&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},v;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let I=i();v=a.requiredInputs.some(b=>{let x=I.input[b];return!x||Array.isArray(x)&&x.length===0})}let k=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:v,suffix:h?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let I=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),k.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{m(),l.ui.closeDialog(b),k.setValue(void 0)}}});k.setValue(I)}}:void 0,onClick:async()=>{f=new AbortController;let I=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await oZ({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:I,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){rf(b.error??b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let x=t.output.notification;sZ(l,x,()=>({input:i().input,output:b.output}))}}catch(b){if(gs(b))return;rf(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),k.value!=null&&(l.ui.closeDialog(k.value),k.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function sZ(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Df=lZ;function is(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function uZ({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ys(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Df(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var cZ=uZ;function Pf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Ki(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Pf(e,t.$ref),n={...Ki(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Ki(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Ki(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Ki(e,t[n],r));return i}return t}function dZ(e){return Ki(e,{...e})}function pZ(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function gZ(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return fZ(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function fZ(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=yZ(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function yZ(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var zf=gZ;function Uf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Rf(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a,provider:r,kind:o};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?mZ(e,c,r,i,n,a,o,s):Ff(e,c,r,i,n,a,o,s);case"boolean":return Vf(e,c,r,i,n,a,o,s);case"number":case"integer":return Bf(e,c,r,i,n,a,o,s);case"object":return ns(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return bZ(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ns(e,t,r,i,n,a,o,s){let c=zf(t.schema??{},i).reduce((l,u)=>{let d=Rf(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ff(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=je(r.id,o,d,"placeholder"),f=sn(u,n.cesdk),h=s?.properties?.[d]??a.properties?.[d],m=un(d,h,f,t.schema.default,""),v=l(p,m),k=hZ(t.schema)?.component==="TextArea",I={inputLabel:g,...v};return k?c.PromptInput(p,{...I,...y.length>0&&{placeholder:y}}):c.TextInput(p,I),()=>({id:t.id,type:"string",value:v.value})}function mZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),{labels:y,icons:f}=Uf(t.schema),h=(t.schema.enum??[]).map(x=>({id:x,label:je(r.id,o,d,x),icon:f[x]})),m=sn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=un(d,v,m,t.schema.default,h[0]?.id),I=k!=null?h.find(x=>x.id===k)??h[0]:h[0],b=l(p,I);return c.Select(p,{inputLabel:g,values:h,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Vf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=sn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],h=!!un(d,f,y,t.schema.default,!1),m=l(p,h);return c.Checkbox(p,{inputLabel:g,...m}),()=>({id:t.id,type:"boolean",value:m.value})}function Bf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.minimum,f=t.schema.maximum,h=sn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=t.schema.default;v==null&&(y!=null?v=y:f!=null?v=f:v=0);let k=un(d,m,h,v,v),I=l(p,k);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...I})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...I});return()=>({id:t.id,type:"integer",value:I.value})}function bZ(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(r.id,o,d),y=t.schema.anyOf??[],f=[],h={},m={},{labels:v,icons:k}=Uf(t.schema),I=sn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],x={string:Ff,boolean:Vf,integer:Bf,object:ns},M=(w,j)=>w.$ref?w.$ref.split("/").pop():j.split(".").pop()??j,S=(w,j)=>({id:w,label:je(r.id,o,d,j),icon:k[j]??k[w]});y.forEach((w,j)=>{let C=`${r.id}.${d}.anyOf[${j}]`;if(w.$ref||w.title){let A=w.$ref?w.$ref.split("/").pop():w.title;h[C]=()=>ns(e,{id:C,schema:{...w,title:v[A]||A}},r,i,n,a,o,s),f.push(S(C,A))}else if(w.type==="string"&&w.enum)w.enum.forEach(A=>{f.push(S(A,A))});else if(w.type&&x[w.type]){let A=x[w.type];h[C]=()=>A(e,{id:C,schema:{...w,title:w.title}},r,i,n,a,o,s);let L=M(w,C);f.push(w.type==="string"&&!w.enum?{id:C,label:w.title||L,icon:w.title&&k[w.title]||k[L]}:S(C,L))}});let E=un(d,b,I,t.schema.default,null),$=E!=null?f.find(w=>w.id===E)??f[0]:f[0],_=l(p,$);if(c.Select(p,{inputLabel:g,values:f,..._}),_.value.id in h){let w=h[_.value.id]();m[_.value.id]=w}return()=>{let w=m[_.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:_.value.id}}}function hZ(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var vZ=Rf,wZ={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function nf(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function of(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||nf(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||nf(g);n[a(l.id,g)]=y}})}});let c={...wZ,...n};Object.keys(c).length>0&&ps(r.cesdk,{en:c})}function af(e){return typeof e.document=="function"?e.document():e.document}function lf(e,t,r){let i=dZ(e),n=Pf(i,t.inputReference);if(!pZ(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=zf(a,t);return{inputSchema:a,properties:o}}function sf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d={...l,properties:t},p=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(m=>{let v=vZ(d,m,n,r,i,a,n.kind,o);v!=null&&(Array.isArray(v)?p.push(...v):p.push(v))})}});let g=p.map(m=>m()),y=m=>m.type==="object"?Object.entries(m.value).reduce((v,[k,I])=>(v[k]=y(I),v),{}):m.value,f=g.reduce((m,v)=>(m[v.id]=y(v),m),{}),h=[...new Set([...e.required??[],...g.filter(m=>m.required).map(m=>m.id)])];Df(l,n,s,()=>({input:f}),()=>r.getBlockInput(f),{...i,requiredInputs:h,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function kZ(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=af(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=lf(c,s,a.debug);return of(y,i,r,i.kind),sf(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(af(s)).then(g=>{let{inputSchema:y,properties:f}=lf(g,s,a.debug);of(f,i,r,i.kind),u=sf(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{p()}})}});return}y.Spinner(`${o}.schema.loading`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label"})}}var xZ=kZ;async function IZ(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return cZ(e,t);case"schema":return xZ(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var CZ=IZ;function AZ(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new $q(o,r)),o}return i}var SZ=AZ;function MZ(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var jZ=MZ,Zl="@imgly/plugin-ai-generation",$Z=`
@@ -728,7 +728,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
728
728
 
729
729
  </symbol>
730
730
  </svg>
731
- `,eQ=XZ,tQ=typeof global=="object"&&global&&global.Object===Object&&global,Gf=tQ,rQ=typeof self=="object"&&self&&self.Object===Object&&self,iQ=Gf||rQ||Function("return this")(),se=iQ,nQ=se.Symbol,sr=nQ,Hf=Object.prototype,oQ=Hf.hasOwnProperty,aQ=Hf.toString,Wi=sr?sr.toStringTag:void 0;function lQ(e){var t=oQ.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=aQ.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var sQ=lQ,uQ=Object.prototype,cQ=uQ.toString;function dQ(e){return cQ.call(e)}var pQ=dQ,gQ="[object Null]",fQ="[object Undefined]",uf=sr?sr.toStringTag:void 0;function yQ(e){return e==null?e===void 0?fQ:gQ:uf&&uf in Object(e)?sQ(e):pQ(e)}var cn=yQ;function mQ(e){return e!=null&&typeof e=="object"}var ms=mQ,Jte=Array.isArray;function bQ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=bQ,hQ="[object AsyncFunction]",vQ="[object Function]",wQ="[object GeneratorFunction]",kQ="[object Proxy]";function xQ(e){if(!Yf(e))return!1;var t=cn(e);return t==vQ||t==wQ||t==hQ||t==kQ}var IQ=xQ,CQ=se["__core-js_shared__"],Wl=CQ,cf=function(){var e=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AQ(e){return!!cf&&cf in e}var SQ=AQ,MQ=Function.prototype,jQ=MQ.toString;function $Q(e){if(e!=null){try{return jQ.call(e)}catch{}try{return e+""}catch{}}return""}var He=$Q,_Q=/[\\^$.*+?()[\]{}|]/g,EQ=/^\[object .+?Constructor\]$/,LQ=Function.prototype,TQ=Object.prototype,OQ=LQ.toString,NQ=TQ.hasOwnProperty,DQ=RegExp("^"+OQ.call(NQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PQ(e){if(!Yf(e)||SQ(e))return!1;var t=IQ(e)?DQ:EQ;return t.test(He(e))}var zQ=PQ;function UQ(e,t){return e?.[t]}var RQ=UQ;function FQ(e,t){var r=RQ(e,t);return zQ(r)?r:void 0}var gr=FQ,VQ=gr(se,"WeakMap"),as=VQ;function BQ(e,t){return e===t||e!==e&&t!==t}var qQ=BQ,GQ=9007199254740991;function HQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=GQ}var YQ=HQ,Xte=Object.prototype,ZQ="[object Arguments]";function QQ(e){return ms(e)&&cn(e)==ZQ}var df=QQ,Zf=Object.prototype,WQ=Zf.hasOwnProperty,KQ=Zf.propertyIsEnumerable,ere=df(function(){return arguments}())?df:function(e){return ms(e)&&WQ.call(e,"callee")&&!KQ.call(e,"callee")},Qf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pf=Qf&&typeof module=="object"&&module&&!module.nodeType&&module,JQ=pf&&pf.exports===Qf,gf=JQ?se.Buffer:void 0,tre=gf?gf.isBuffer:void 0,XQ="[object Arguments]",eW="[object Array]",tW="[object Boolean]",rW="[object Date]",iW="[object Error]",nW="[object Function]",oW="[object Map]",aW="[object Number]",lW="[object Object]",sW="[object RegExp]",uW="[object Set]",cW="[object String]",dW="[object WeakMap]",pW="[object ArrayBuffer]",gW="[object DataView]",fW="[object Float32Array]",yW="[object Float64Array]",mW="[object Int8Array]",bW="[object Int16Array]",hW="[object Int32Array]",vW="[object Uint8Array]",wW="[object Uint8ClampedArray]",kW="[object Uint16Array]",xW="[object Uint32Array]",q={};q[fW]=q[yW]=q[mW]=q[bW]=q[hW]=q[vW]=q[wW]=q[kW]=q[xW]=!0;q[XQ]=q[eW]=q[pW]=q[tW]=q[gW]=q[rW]=q[iW]=q[nW]=q[oW]=q[aW]=q[lW]=q[sW]=q[uW]=q[cW]=q[dW]=!1;function IW(e){return ms(e)&&YQ(e.length)&&!!q[cn(e)]}var CW=IW;function AW(e){return function(t){return e(t)}}var SW=AW,Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,MW=en&&en.exports===Wf,Kl=MW&&Gf.process,jW=function(){try{var e=en&&en.require&&en.require("util").types;return e||Kl&&Kl.binding&&Kl.binding("util")}catch{}}(),ff=jW,yf=ff&&ff.isTypedArray,rre=yf?SW(yf):CW,$W=Object.prototype,ire=$W.hasOwnProperty;function _W(e,t){return function(r){return e(t(r))}}var EW=_W,nre=EW(Object.keys,Object),LW=Object.prototype,ore=LW.hasOwnProperty,TW=gr(Object,"create"),nn=TW;function OW(){this.__data__=nn?nn(null):{},this.size=0}var NW=OW;function DW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var PW=DW,zW="__lodash_hash_undefined__",UW=Object.prototype,RW=UW.hasOwnProperty;function FW(e){var t=this.__data__;if(nn){var r=t[e];return r===zW?void 0:r}return RW.call(t,e)?t[e]:void 0}var VW=FW,BW=Object.prototype,qW=BW.hasOwnProperty;function GW(e){var t=this.__data__;return nn?t[e]!==void 0:qW.call(t,e)}var HW=GW,YW="__lodash_hash_undefined__";function ZW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?YW:t,this}var QW=ZW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=NW;fr.prototype.delete=PW;fr.prototype.get=VW;fr.prototype.has=HW;fr.prototype.set=QW;var mf=fr;function WW(){this.__data__=[],this.size=0}var KW=WW;function JW(e,t){for(var r=e.length;r--;)if(qQ(e[r][0],t))return r;return-1}var Ao=JW,XW=Array.prototype,eK=XW.splice;function tK(e){var t=this.__data__,r=Ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eK.call(t,r,1),--this.size,!0}var rK=tK;function iK(e){var t=this.__data__,r=Ao(t,e);return r<0?void 0:t[r][1]}var nK=iK;function oK(e){return Ao(this.__data__,e)>-1}var aK=oK;function lK(e,t){var r=this.__data__,i=Ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sK=lK;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=KW;yr.prototype.delete=rK;yr.prototype.get=nK;yr.prototype.has=aK;yr.prototype.set=sK;var So=yr,uK=gr(se,"Map"),on=uK;function cK(){this.size=0,this.__data__={hash:new mf,map:new(on||So),string:new mf}}var dK=cK;function pK(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gK=pK;function fK(e,t){var r=e.__data__;return gK(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=fK;function yK(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var mK=yK;function bK(e){return Mo(this,e).get(e)}var hK=bK;function vK(e){return Mo(this,e).has(e)}var wK=vK;function kK(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xK=kK;function mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mr.prototype.clear=dK;mr.prototype.delete=mK;mr.prototype.get=hK;mr.prototype.has=wK;mr.prototype.set=xK;var Kf=mr;function IK(){this.__data__=new So,this.size=0}var CK=IK;function AK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SK=AK;function MK(e){return this.__data__.get(e)}var jK=MK;function $K(e){return this.__data__.has(e)}var _K=$K,EK=200;function LK(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!on||i.length<EK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kf(i)}return r.set(e,t),this.size=r.size,this}var TK=LK;function dn(e){var t=this.__data__=new So(e);this.size=t.size}dn.prototype.clear=CK;dn.prototype.delete=SK;dn.prototype.get=jK;dn.prototype.has=_K;dn.prototype.set=TK;var OK=Object.prototype,are=OK.propertyIsEnumerable,NK=gr(se,"DataView"),ls=NK,DK=gr(se,"Promise"),ss=DK,PK=gr(se,"Set"),us=PK,bf="[object Map]",zK="[object Object]",hf="[object Promise]",vf="[object Set]",wf="[object WeakMap]",kf="[object DataView]",UK=He(ls),RK=He(on),FK=He(ss),VK=He(us),BK=He(as),or=cn;(ls&&or(new ls(new ArrayBuffer(1)))!=kf||on&&or(new on)!=bf||ss&&or(ss.resolve())!=hf||us&&or(new us)!=vf||as&&or(new as)!=wf)&&(or=function(e){var t=cn(e),r=t==zK?e.constructor:void 0,i=r?He(r):"";if(i)switch(i){case UK:return kf;case RK:return bf;case FK:return hf;case VK:return vf;case BK:return wf}return t});var lre=se.Uint8Array,qK="__lodash_hash_undefined__";function GK(e){return this.__data__.set(e,qK),this}var HK=GK;function YK(e){return this.__data__.has(e)}var ZK=YK;function cs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kf;++t<r;)this.add(e[t])}cs.prototype.add=cs.prototype.push=HK;cs.prototype.has=ZK;var xf=sr?sr.prototype:void 0,sre=xf?xf.valueOf:void 0,QK=Object.prototype,ure=QK.hasOwnProperty,WK=Object.prototype,cre=WK.hasOwnProperty,dre=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pre=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gre=new RegExp(/[A-Fa-f0-9]{2}/,"g");function KK(e){return e==null?[]:Array.isArray(e)?e:[e]}var JK=KK;function XK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function eJ(e){return typeof e?.translate=="function"}function tJ(e,t,r){return e&&XK(e)&&eJ(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function rJ(e){return{async initialize({cesdk:t}){if(t==null)return;RY(t,Ji,"1.83.0-rc.0"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Ef.get(),i=`${Ji}.action.label`;t.ui.addIconSet(JZ,eQ),ps(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:tJ(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(JK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await KZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),VY({cesdk:t,panelId:Se})):n()}}}var iJ=rJ,nJ=e=>({name:Ji,version:"1.83.0-rc.0",...iJ(e)}),Jf=nJ;var bs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let b=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return b&&b.includes(k)||x.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let b=I.tags?.[n]||[];return k.some(x=>b.includes(x))})}a&&p.sort((k,I)=>{let b=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return b&&!x?-1:!b&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let b=k.meta?.[d],x=I.meta?.[d];return b===void 0?1:x===void 0?-1:typeof b=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(b):b.localeCompare(x):typeof b=="number"&&typeof x=="number"?u==="Descending"?x-b:b-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,m=p.slice(y,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:m,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=oJ(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Xf(e,t,r=[]){return new bs(e,t,r)}function oJ(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=uu("apps"),aJ=512,lJ=128,ey=e=>({async initialize({cesdk:t}){if(t==null)return;cu(t,pn,"1.83.0-rc.0");let{providers:r}=e;await t.addPlugin(F1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Uc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(rp({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Jf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),pJ(t),sJ(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function sJ(e,t){dJ(e);let r=uJ(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function uJ(e,t){let r=vn.get(),i=Xf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?cJ(t.baseURL,o):void 0,width:aJ,height:lJ}}).filter(Us)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function cJ(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function dJ(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let m=e.ui.getAssetLibraryEntry(h);if(m==null)return!1;if(u==null)return!0;let v=m.sceneMode;return typeof v=="string"?m.sceneMode===u||m.sceneMode==="All":typeof v=="function"?(typeof m.sourceIds=="function"?m.sourceIds({cesdk:e,engine:r}):m.sourceIds).some(I=>{let b=v(e.version.startsWith("1.51.")?I:{sourceId:I});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function pJ(e){lu(e,du)}var gJ=e=>({name:pn,version:"1.83.0-rc.0",...ey(e)}),Lre=gJ;export{Lre as default};
731
+ `,eQ=XZ,tQ=typeof global=="object"&&global&&global.Object===Object&&global,Gf=tQ,rQ=typeof self=="object"&&self&&self.Object===Object&&self,iQ=Gf||rQ||Function("return this")(),se=iQ,nQ=se.Symbol,sr=nQ,Hf=Object.prototype,oQ=Hf.hasOwnProperty,aQ=Hf.toString,Wi=sr?sr.toStringTag:void 0;function lQ(e){var t=oQ.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=aQ.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var sQ=lQ,uQ=Object.prototype,cQ=uQ.toString;function dQ(e){return cQ.call(e)}var pQ=dQ,gQ="[object Null]",fQ="[object Undefined]",uf=sr?sr.toStringTag:void 0;function yQ(e){return e==null?e===void 0?fQ:gQ:uf&&uf in Object(e)?sQ(e):pQ(e)}var cn=yQ;function mQ(e){return e!=null&&typeof e=="object"}var ms=mQ,Jte=Array.isArray;function bQ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Yf=bQ,hQ="[object AsyncFunction]",vQ="[object Function]",wQ="[object GeneratorFunction]",kQ="[object Proxy]";function xQ(e){if(!Yf(e))return!1;var t=cn(e);return t==vQ||t==wQ||t==hQ||t==kQ}var IQ=xQ,CQ=se["__core-js_shared__"],Wl=CQ,cf=function(){var e=/[^.]+$/.exec(Wl&&Wl.keys&&Wl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function AQ(e){return!!cf&&cf in e}var SQ=AQ,MQ=Function.prototype,jQ=MQ.toString;function $Q(e){if(e!=null){try{return jQ.call(e)}catch{}try{return e+""}catch{}}return""}var He=$Q,_Q=/[\\^$.*+?()[\]{}|]/g,EQ=/^\[object .+?Constructor\]$/,LQ=Function.prototype,TQ=Object.prototype,OQ=LQ.toString,NQ=TQ.hasOwnProperty,DQ=RegExp("^"+OQ.call(NQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PQ(e){if(!Yf(e)||SQ(e))return!1;var t=IQ(e)?DQ:EQ;return t.test(He(e))}var zQ=PQ;function UQ(e,t){return e?.[t]}var RQ=UQ;function FQ(e,t){var r=RQ(e,t);return zQ(r)?r:void 0}var gr=FQ,VQ=gr(se,"WeakMap"),as=VQ;function BQ(e,t){return e===t||e!==e&&t!==t}var qQ=BQ,GQ=9007199254740991;function HQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=GQ}var YQ=HQ,Xte=Object.prototype,ZQ="[object Arguments]";function QQ(e){return ms(e)&&cn(e)==ZQ}var df=QQ,Zf=Object.prototype,WQ=Zf.hasOwnProperty,KQ=Zf.propertyIsEnumerable,ere=df(function(){return arguments}())?df:function(e){return ms(e)&&WQ.call(e,"callee")&&!KQ.call(e,"callee")},Qf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pf=Qf&&typeof module=="object"&&module&&!module.nodeType&&module,JQ=pf&&pf.exports===Qf,gf=JQ?se.Buffer:void 0,tre=gf?gf.isBuffer:void 0,XQ="[object Arguments]",eW="[object Array]",tW="[object Boolean]",rW="[object Date]",iW="[object Error]",nW="[object Function]",oW="[object Map]",aW="[object Number]",lW="[object Object]",sW="[object RegExp]",uW="[object Set]",cW="[object String]",dW="[object WeakMap]",pW="[object ArrayBuffer]",gW="[object DataView]",fW="[object Float32Array]",yW="[object Float64Array]",mW="[object Int8Array]",bW="[object Int16Array]",hW="[object Int32Array]",vW="[object Uint8Array]",wW="[object Uint8ClampedArray]",kW="[object Uint16Array]",xW="[object Uint32Array]",q={};q[fW]=q[yW]=q[mW]=q[bW]=q[hW]=q[vW]=q[wW]=q[kW]=q[xW]=!0;q[XQ]=q[eW]=q[pW]=q[tW]=q[gW]=q[rW]=q[iW]=q[nW]=q[oW]=q[aW]=q[lW]=q[sW]=q[uW]=q[cW]=q[dW]=!1;function IW(e){return ms(e)&&YQ(e.length)&&!!q[cn(e)]}var CW=IW;function AW(e){return function(t){return e(t)}}var SW=AW,Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,en=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,MW=en&&en.exports===Wf,Kl=MW&&Gf.process,jW=function(){try{var e=en&&en.require&&en.require("util").types;return e||Kl&&Kl.binding&&Kl.binding("util")}catch{}}(),ff=jW,yf=ff&&ff.isTypedArray,rre=yf?SW(yf):CW,$W=Object.prototype,ire=$W.hasOwnProperty;function _W(e,t){return function(r){return e(t(r))}}var EW=_W,nre=EW(Object.keys,Object),LW=Object.prototype,ore=LW.hasOwnProperty,TW=gr(Object,"create"),nn=TW;function OW(){this.__data__=nn?nn(null):{},this.size=0}var NW=OW;function DW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var PW=DW,zW="__lodash_hash_undefined__",UW=Object.prototype,RW=UW.hasOwnProperty;function FW(e){var t=this.__data__;if(nn){var r=t[e];return r===zW?void 0:r}return RW.call(t,e)?t[e]:void 0}var VW=FW,BW=Object.prototype,qW=BW.hasOwnProperty;function GW(e){var t=this.__data__;return nn?t[e]!==void 0:qW.call(t,e)}var HW=GW,YW="__lodash_hash_undefined__";function ZW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nn&&t===void 0?YW:t,this}var QW=ZW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=NW;fr.prototype.delete=PW;fr.prototype.get=VW;fr.prototype.has=HW;fr.prototype.set=QW;var mf=fr;function WW(){this.__data__=[],this.size=0}var KW=WW;function JW(e,t){for(var r=e.length;r--;)if(qQ(e[r][0],t))return r;return-1}var Ao=JW,XW=Array.prototype,eK=XW.splice;function tK(e){var t=this.__data__,r=Ao(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():eK.call(t,r,1),--this.size,!0}var rK=tK;function iK(e){var t=this.__data__,r=Ao(t,e);return r<0?void 0:t[r][1]}var nK=iK;function oK(e){return Ao(this.__data__,e)>-1}var aK=oK;function lK(e,t){var r=this.__data__,i=Ao(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var sK=lK;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=KW;yr.prototype.delete=rK;yr.prototype.get=nK;yr.prototype.has=aK;yr.prototype.set=sK;var So=yr,uK=gr(se,"Map"),on=uK;function cK(){this.size=0,this.__data__={hash:new mf,map:new(on||So),string:new mf}}var dK=cK;function pK(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gK=pK;function fK(e,t){var r=e.__data__;return gK(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Mo=fK;function yK(e){var t=Mo(this,e).delete(e);return this.size-=t?1:0,t}var mK=yK;function bK(e){return Mo(this,e).get(e)}var hK=bK;function vK(e){return Mo(this,e).has(e)}var wK=vK;function kK(e,t){var r=Mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var xK=kK;function mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mr.prototype.clear=dK;mr.prototype.delete=mK;mr.prototype.get=hK;mr.prototype.has=wK;mr.prototype.set=xK;var Kf=mr;function IK(){this.__data__=new So,this.size=0}var CK=IK;function AK(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var SK=AK;function MK(e){return this.__data__.get(e)}var jK=MK;function $K(e){return this.__data__.has(e)}var _K=$K,EK=200;function LK(e,t){var r=this.__data__;if(r instanceof So){var i=r.__data__;if(!on||i.length<EK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Kf(i)}return r.set(e,t),this.size=r.size,this}var TK=LK;function dn(e){var t=this.__data__=new So(e);this.size=t.size}dn.prototype.clear=CK;dn.prototype.delete=SK;dn.prototype.get=jK;dn.prototype.has=_K;dn.prototype.set=TK;var OK=Object.prototype,are=OK.propertyIsEnumerable,NK=gr(se,"DataView"),ls=NK,DK=gr(se,"Promise"),ss=DK,PK=gr(se,"Set"),us=PK,bf="[object Map]",zK="[object Object]",hf="[object Promise]",vf="[object Set]",wf="[object WeakMap]",kf="[object DataView]",UK=He(ls),RK=He(on),FK=He(ss),VK=He(us),BK=He(as),or=cn;(ls&&or(new ls(new ArrayBuffer(1)))!=kf||on&&or(new on)!=bf||ss&&or(ss.resolve())!=hf||us&&or(new us)!=vf||as&&or(new as)!=wf)&&(or=function(e){var t=cn(e),r=t==zK?e.constructor:void 0,i=r?He(r):"";if(i)switch(i){case UK:return kf;case RK:return bf;case FK:return hf;case VK:return vf;case BK:return wf}return t});var lre=se.Uint8Array,qK="__lodash_hash_undefined__";function GK(e){return this.__data__.set(e,qK),this}var HK=GK;function YK(e){return this.__data__.has(e)}var ZK=YK;function cs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Kf;++t<r;)this.add(e[t])}cs.prototype.add=cs.prototype.push=HK;cs.prototype.has=ZK;var xf=sr?sr.prototype:void 0,sre=xf?xf.valueOf:void 0,QK=Object.prototype,ure=QK.hasOwnProperty,WK=Object.prototype,cre=WK.hasOwnProperty,dre=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pre=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gre=new RegExp(/[A-Fa-f0-9]{2}/,"g");function KK(e){return e==null?[]:Array.isArray(e)?e:[e]}var JK=KK;function XK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function eJ(e){return typeof e?.translate=="function"}function tJ(e,t,r){return e&&XK(e)&&eJ(e.i18n)?e.i18n.translate(t):r}var Ji="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function rJ(e){return{async initialize({cesdk:t}){if(t==null)return;RY(t,Ji,"1.83.0-rc.1"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Ef.get(),i=`${Ji}.action.label`;t.ui.addIconSet(JZ,eQ),ps(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Ji,pluginId:Ji,label:tJ(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(JK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await KZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),VY({cesdk:t,panelId:Se})):n()}}}var iJ=rJ,nJ=e=>({name:Ji,version:"1.83.0-rc.1",...iJ(e)}),Jf=nJ;var bs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(k=>k.groups&&c.some(I=>k.groups?.includes(I)))),l&&l.length>0&&(p=p.filter(k=>!k.groups||!l.some(I=>k.groups?.includes(I)))),o){let k=o.toLowerCase();p=p.filter(I=>{let b=I.label?.[n]?.toLowerCase(),x=I.tags?.[n]||[];return b&&b.includes(k)||x.some(M=>M.toLowerCase().includes(k))})}if(s&&s.length>0){let k=Array.isArray(s)?s:[s];p=p.filter(I=>{let b=I.tags?.[n]||[];return k.some(x=>b.includes(x))})}a&&p.sort((k,I)=>{let b=this.activeAssetIds.has(k.id),x=this.activeAssetIds.has(I.id);return b&&!x?-1:!b&&x?1:0}),d&&d!=="id"?p.sort((k,I)=>{let b=k.meta?.[d],x=I.meta?.[d];return b===void 0?1:x===void 0?-1:typeof b=="string"&&typeof x=="string"?u==="Descending"?x.localeCompare(b):b.localeCompare(x):typeof b=="number"&&typeof x=="number"?u==="Descending"?x-b:b-x:0}):d==="id"&&p.sort((k,I)=>u==="Descending"?I.id.localeCompare(k.id):k.id.localeCompare(I.id));let g=p.length,y=r*i,f=y+i,m=p.slice(y,f).map(k=>({id:k.id,groups:k.groups,meta:k.meta,payload:k.payload,locale:n,label:k.label?.[n],tags:k.tags?.[n],active:this.activeAssetIds.has(k.id)})),v=f<g?r+1:void 0;return{assets:m,currentPage:r,nextPage:v,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=oJ(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Xf(e,t,r=[]){return new bs(e,t,r)}function oJ(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var pn="ly.img.ai.apps";var Y=uu("apps"),aJ=512,lJ=128,ey=e=>({async initialize({cesdk:t}){if(t==null)return;cu(t,pn,"1.83.0-rc.1");let{providers:r}=e;await t.addPlugin(F1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Uc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(rp({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(mg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Jf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),pJ(t),sJ(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function sJ(e,t){dJ(e);let r=uJ(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{vn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?vn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function uJ(e,t){let r=vn.get(),i=Xf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?cJ(t.baseURL,o):void 0,width:aJ,height:lJ}}).filter(Us)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function cJ(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function dJ(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(h=>typeof h!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(h=>{let m=e.ui.getAssetLibraryEntry(h);if(m==null)return!1;if(u==null)return!0;let v=m.sceneMode;return typeof v=="string"?m.sceneMode===u||m.sceneMode==="All":typeof v=="function"?(typeof m.sourceIds=="function"?m.sourceIds({cesdk:e,engine:r}):m.sourceIds).some(I=>{let b=v(e.version.startsWith("1.51.")?I:{sourceId:I});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(h=>{(h===Y||h.startsWith("ly.img.ai."))&&e.ui.closePanel(h)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function pJ(e){lu(e,du)}var gJ=e=>({name:pn,version:"1.83.0-rc.1",...ey(e)}),Lre=gJ;export{Lre as default};
732
732
  /*! Bundled license information:
733
733
 
734
734
  lodash-es/lodash.js: