@imgly/plugin-ai-apps-web 1.72.0 → 1.72.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -141,7 +141,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
141
141
 
142
142
  </symbol>
143
143
  </svg>
144
- `,L3=_3,T3=typeof global=="object"&&global&&global.Object===Object&&global,kc=T3,O3=typeof self=="object"&&self&&self.Object===Object&&self,N3=kc||O3||Function("return this")(),ee=N3,D3=ee.Symbol,st=D3,xc=Object.prototype,P3=xc.hasOwnProperty,z3=xc.toString,Er=st?st.toStringTag:void 0;function U3(e){var t=P3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=z3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var R3=U3,F3=Object.prototype,V3=F3.toString;function B3(e){return V3.call(e)}var q3=B3,G3="[object Null]",Y3="[object Undefined]",Su=st?st.toStringTag:void 0;function H3(e){return e==null?e===void 0?Y3:G3:Su&&Su in Object(e)?R3(e):q3(e)}var Hr=H3;function Z3(e){return e!=null&&typeof e=="object"}var va=Z3,TJ=Array.isArray;function Q3(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ic=Q3,W3="[object AsyncFunction]",K3="[object Function]",J3="[object GeneratorFunction]",X3="[object Proxy]";function e7(e){if(!Ic(e))return!1;var t=Hr(e);return t==K3||t==J3||t==W3||t==X3}var t7=e7,r7=ee["__core-js_shared__"],Jo=r7,Mu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function i7(e){return!!Mu&&Mu in e}var n7=i7,o7=Function.prototype,a7=o7.toString;function l7(e){if(e!=null){try{return a7.call(e)}catch{}try{return e+""}catch{}}return""}var Te=l7,s7=/[\\^$.*+?()[\]{}|]/g,u7=/^\[object .+?Constructor\]$/,c7=Function.prototype,d7=Object.prototype,p7=c7.toString,g7=d7.hasOwnProperty,f7=RegExp("^"+p7.call(g7).replace(s7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function y7(e){if(!Ic(e)||n7(e))return!1;var t=t7(e)?f7:u7;return t.test(Te(e))}var m7=y7;function b7(e,t){return e?.[t]}var h7=b7;function v7(e,t){var r=h7(e,t);return m7(r)?r:void 0}var gt=v7,w7=gt(ee,"WeakMap"),ua=w7;function k7(e,t){return e===t||e!==e&&t!==t}var x7=k7,I7=9007199254740991;function C7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=I7}var A7=C7,OJ=Object.prototype,S7="[object Arguments]";function M7(e){return va(e)&&Hr(e)==S7}var ju=M7,Cc=Object.prototype,j7=Cc.hasOwnProperty,$7=Cc.propertyIsEnumerable,NJ=ju(function(){return arguments}())?ju:function(e){return va(e)&&j7.call(e,"callee")&&!$7.call(e,"callee")},Ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$u=Ac&&typeof module=="object"&&module&&!module.nodeType&&module,E7=$u&&$u.exports===Ac,Eu=E7?ee.Buffer:void 0,DJ=Eu?Eu.isBuffer:void 0,_7="[object Arguments]",L7="[object Array]",T7="[object Boolean]",O7="[object Date]",N7="[object Error]",D7="[object Function]",P7="[object Map]",z7="[object Number]",U7="[object Object]",R7="[object RegExp]",F7="[object Set]",V7="[object String]",B7="[object WeakMap]",q7="[object ArrayBuffer]",G7="[object DataView]",Y7="[object Float32Array]",H7="[object Float64Array]",Z7="[object Int8Array]",Q7="[object Int16Array]",W7="[object Int32Array]",K7="[object Uint8Array]",J7="[object Uint8ClampedArray]",X7="[object Uint16Array]",e8="[object Uint32Array]",N={};N[Y7]=N[H7]=N[Z7]=N[Q7]=N[W7]=N[K7]=N[J7]=N[X7]=N[e8]=!0;N[_7]=N[L7]=N[q7]=N[T7]=N[G7]=N[O7]=N[N7]=N[D7]=N[P7]=N[z7]=N[U7]=N[R7]=N[F7]=N[V7]=N[B7]=!1;function t8(e){return va(e)&&A7(e.length)&&!!N[Hr(e)]}var r8=t8;function i8(e){return function(t){return e(t)}}var n8=i8,Sc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Sc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=Pr&&Pr.exports===Sc,Xo=o8&&kc.process,a8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),_u=a8,Lu=_u&&_u.isTypedArray,PJ=Lu?n8(Lu):r8,l8=Object.prototype,zJ=l8.hasOwnProperty;function s8(e,t){return function(r){return e(t(r))}}var u8=s8,UJ=u8(Object.keys,Object),c8=Object.prototype,RJ=c8.hasOwnProperty,d8=gt(Object,"create"),Rr=d8;function p8(){this.__data__=Rr?Rr(null):{},this.size=0}var g8=p8;function f8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var y8=f8,m8="__lodash_hash_undefined__",b8=Object.prototype,h8=b8.hasOwnProperty;function v8(e){var t=this.__data__;if(Rr){var r=t[e];return r===m8?void 0:r}return h8.call(t,e)?t[e]:void 0}var w8=v8,k8=Object.prototype,x8=k8.hasOwnProperty;function I8(e){var t=this.__data__;return Rr?t[e]!==void 0:x8.call(t,e)}var C8=I8,A8="__lodash_hash_undefined__";function S8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?A8:t,this}var M8=S8;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=g8;ft.prototype.delete=y8;ft.prototype.get=w8;ft.prototype.has=C8;ft.prototype.set=M8;var Tu=ft;function j8(){this.__data__=[],this.size=0}var $8=j8;function E8(e,t){for(var r=e.length;r--;)if(x7(e[r][0],t))return r;return-1}var Dn=E8,_8=Array.prototype,L8=_8.splice;function T8(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():L8.call(t,r,1),--this.size,!0}var O8=T8;function N8(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var D8=N8;function P8(e){return Dn(this.__data__,e)>-1}var z8=P8;function U8(e,t){var r=this.__data__,i=Dn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var R8=U8;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=$8;yt.prototype.delete=O8;yt.prototype.get=D8;yt.prototype.has=z8;yt.prototype.set=R8;var Pn=yt,F8=gt(ee,"Map"),Fr=F8;function V8(){this.size=0,this.__data__={hash:new Tu,map:new(Fr||Pn),string:new Tu}}var B8=V8;function q8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var G8=q8;function Y8(e,t){var r=e.__data__;return G8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=Y8;function H8(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var Z8=H8;function Q8(e){return zn(this,e).get(e)}var W8=Q8;function K8(e){return zn(this,e).has(e)}var J8=K8;function X8(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var e6=X8;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=B8;mt.prototype.delete=Z8;mt.prototype.get=W8;mt.prototype.has=J8;mt.prototype.set=e6;var Mc=mt;function t6(){this.__data__=new Pn,this.size=0}var r6=t6;function i6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var n6=i6;function o6(e){return this.__data__.get(e)}var a6=o6;function l6(e){return this.__data__.has(e)}var s6=l6,u6=200;function c6(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<u6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mc(i)}return r.set(e,t),this.size=r.size,this}var d6=c6;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=r6;Zr.prototype.delete=n6;Zr.prototype.get=a6;Zr.prototype.has=s6;Zr.prototype.set=d6;var p6=Object.prototype,FJ=p6.propertyIsEnumerable,g6=gt(ee,"DataView"),ca=g6,f6=gt(ee,"Promise"),da=f6,y6=gt(ee,"Set"),pa=y6,Ou="[object Map]",m6="[object Object]",Nu="[object Promise]",Du="[object Set]",Pu="[object WeakMap]",zu="[object DataView]",b6=Te(ca),h6=Te(Fr),v6=Te(da),w6=Te(pa),k6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=zu||Fr&&ot(new Fr)!=Ou||da&&ot(da.resolve())!=Nu||pa&&ot(new pa)!=Du||ua&&ot(new ua)!=Pu)&&(ot=function(e){var t=Hr(e),r=t==m6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case b6:return zu;case h6:return Ou;case v6:return Nu;case w6:return Du;case k6:return Pu}return t});var VJ=ee.Uint8Array,x6="__lodash_hash_undefined__";function I6(e){return this.__data__.set(e,x6),this}var C6=I6;function A6(e){return this.__data__.has(e)}var S6=A6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=C6;ga.prototype.has=S6;var Uu=st?st.prototype:void 0,BJ=Uu?Uu.valueOf:void 0,M6=Object.prototype,qJ=M6.hasOwnProperty,j6=Object.prototype,GJ=j6.hasOwnProperty,YJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $6(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 bt(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 $6(i,t)}function E6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Ru=E6;function _6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function L6(e){return typeof e?.translate=="function"}function T6(e,t,r){return e&&_6(e)&&L6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",O6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Un="editImage",ue=`ly.img.${Un}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,In=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Cn(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 N6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${In}`]:"Edit Image...",[`${In}.description`]:"Change image based on description",[`${In}.prompt`]:"Edit Image...",[`${Fu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Fu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Cn(l,"prompt"),placeholder:Cn(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:Cn(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 bt(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:Cn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),D6=N6,Rn="swapBackground",ce=`ly.img.${Rn}`,Vu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Sn(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 P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${An}`]:"Swap Background...",[`${An}.description`]:"Change the background of the image",[`${An}.prompt`]:"Swap Background...",[`${Vu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Vu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(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:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(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:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),z6=P6,Fn="styleTransfer",_r=`ly.img.${Fn}`,U6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Bu(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 R6=[{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."}],F6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${U6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Bu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{R6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Bu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(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"})}}})})}})}})}})}}),V6=F6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,B6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function qu(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 q6=[{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."}],G6=({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:Lr,type:"quick",kind:"image",label:`${B6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:qu(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:()=>{q6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(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"})}}})})}})}})}})}}),Y6=G6,Bn="createVariant",de=`ly.img.${Bn}`,Gu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var H6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Mn}`]:"Create Variant...",[`${Mn}.description`]:"Create a variation of the image",[`${Mn}.prompt`]:"Create Variant...",[`${Gu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Mn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Gu}`,enable:t=>{if(!Yr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),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 v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),Z6=H6,qn="combineImages",pe=`ly.img.${qn}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,ea=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function $n(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 Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ea}.apply`]:"Combine",[`${ea}`]:"Combine Images...",[`${ea}.prompt`]:"Image Combination Instructions",[`${Yu}.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:`${Yu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:$n(l,"prompt"),placeholder:$n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:$n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:$n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),W6=Q6,Gn="remixPage",Hu=`ly.img.${Gn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,J6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function X6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ew=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${J6}`]:"Turn Page into Image"}}),{id:Hu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${K6}`,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(`${Hu}.button`,{label:X6(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(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),tw=ew,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var rw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ta}`]:"Remix Page...",[`${ta}.prompt`]:"Remix Page Prompt",[`${Zu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Zu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(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:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),v=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"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:En(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),iw=rw,fe="ly.img.ai.image-generation";function nw(e){return{async initialize({cesdk:t}){if(t==null)return;W9(t,Nr,"1.72.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(E3,L3),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:T6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});ow(e),r.register(D6({cesdk:t})),r.register(z6({cesdk:t})),r.register(V6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(Z6({cesdk:t})),r.register(W6({cesdk:t})),r.register(tw({cesdk:t})),r.register(iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Ru(a).map(d=>d({cesdk:t}))),c=await Promise.all(Ru(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await a3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await $3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:O6});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:Nn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),J9({cesdk:t,panelId:fe})):n()}}}function ow(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 aw=nw,lw=e=>({name:Nr,version:"1.72.0",...aw(e)}),jc=lw;var sw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var uw=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")}},cw=typeof global=="object"&&global&&global.Object===Object&&global,yd=cw,dw=typeof self=="object"&&self&&self.Object===Object&&self,pw=yd||dw||Function("return this")(),te=pw,gw=te.Symbol,kt=gw,md=Object.prototype,fw=md.hasOwnProperty,yw=md.toString,Qr=kt?kt.toStringTag:void 0;function mw(e){var t=fw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=yw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var bw=mw,hw=Object.prototype,vw=hw.toString;function ww(e){return vw.call(e)}var kw=ww,xw="[object Null]",Iw="[object Undefined]",$c=kt?kt.toStringTag:void 0;function Cw(e){return e==null?e===void 0?Iw:xw:$c&&$c in Object(e)?bw(e):kw(e)}var li=Cw;function Aw(e){return e!=null&&typeof e=="object"}var za=Aw,XJ=Array.isArray;function Sw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bd=Sw,Mw="[object AsyncFunction]",jw="[object Function]",$w="[object GeneratorFunction]",Ew="[object Proxy]";function _w(e){if(!bd(e))return!1;var t=li(e);return t==jw||t==$w||t==Mw||t==Ew}var Lw=_w,Tw=te["__core-js_shared__"],wa=Tw,Ec=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ow(e){return!!Ec&&Ec in e}var Nw=Ow,Dw=Function.prototype,Pw=Dw.toString;function zw(e){if(e!=null){try{return Pw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=zw,Uw=/[\\^$.*+?()[\]{}|]/g,Rw=/^\[object .+?Constructor\]$/,Fw=Function.prototype,Vw=Object.prototype,Bw=Fw.toString,qw=Vw.hasOwnProperty,Gw=RegExp("^"+Bw.call(qw).replace(Uw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yw(e){if(!bd(e)||Nw(e))return!1;var t=Lw(e)?Gw:Rw;return t.test(Oe(e))}var Hw=Yw;function Zw(e,t){return e?.[t]}var Qw=Zw;function Ww(e,t){var r=Qw(e,t);return Hw(r)?r:void 0}var It=Ww,Kw=It(te,"WeakMap"),Ma=Kw;function Jw(e,t){return e===t||e!==e&&t!==t}var Xw=Jw,ek=9007199254740991;function tk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ek}var rk=tk,eX=Object.prototype,ik="[object Arguments]";function nk(e){return za(e)&&li(e)==ik}var _c=nk,hd=Object.prototype,ok=hd.hasOwnProperty,ak=hd.propertyIsEnumerable,tX=_c(function(){return arguments}())?_c:function(e){return za(e)&&ok.call(e,"callee")&&!ak.call(e,"callee")},vd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lc=vd&&typeof module=="object"&&module&&!module.nodeType&&module,lk=Lc&&Lc.exports===vd,Tc=lk?te.Buffer:void 0,rX=Tc?Tc.isBuffer:void 0,sk="[object Arguments]",uk="[object Array]",ck="[object Boolean]",dk="[object Date]",pk="[object Error]",gk="[object Function]",fk="[object Map]",yk="[object Number]",mk="[object Object]",bk="[object RegExp]",hk="[object Set]",vk="[object String]",wk="[object WeakMap]",kk="[object ArrayBuffer]",xk="[object DataView]",Ik="[object Float32Array]",Ck="[object Float64Array]",Ak="[object Int8Array]",Sk="[object Int16Array]",Mk="[object Int32Array]",jk="[object Uint8Array]",$k="[object Uint8ClampedArray]",Ek="[object Uint16Array]",_k="[object Uint32Array]",D={};D[Ik]=D[Ck]=D[Ak]=D[Sk]=D[Mk]=D[jk]=D[$k]=D[Ek]=D[_k]=!0;D[sk]=D[uk]=D[kk]=D[ck]=D[xk]=D[dk]=D[pk]=D[gk]=D[fk]=D[yk]=D[mk]=D[bk]=D[hk]=D[vk]=D[wk]=!1;function Lk(e){return za(e)&&rk(e.length)&&!!D[li(e)]}var Tk=Lk;function Ok(e){return function(t){return e(t)}}var Nk=Ok,wd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=wd&&typeof module=="object"&&module&&!module.nodeType&&module,Dk=ti&&ti.exports===wd,ka=Dk&&yd.process,Pk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Oc=Pk,Nc=Oc&&Oc.isTypedArray,iX=Nc?Nk(Nc):Tk,zk=Object.prototype,nX=zk.hasOwnProperty;function Uk(e,t){return function(r){return e(t(r))}}var Rk=Uk,oX=Rk(Object.keys,Object),Fk=Object.prototype,aX=Fk.hasOwnProperty,Vk=It(Object,"create"),ii=Vk;function Bk(){this.__data__=ii?ii(null):{},this.size=0}var qk=Bk;function Gk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Yk=Gk,Hk="__lodash_hash_undefined__",Zk=Object.prototype,Qk=Zk.hasOwnProperty;function Wk(e){var t=this.__data__;if(ii){var r=t[e];return r===Hk?void 0:r}return Qk.call(t,e)?t[e]:void 0}var Kk=Wk,Jk=Object.prototype,Xk=Jk.hasOwnProperty;function ex(e){var t=this.__data__;return ii?t[e]!==void 0:Xk.call(t,e)}var tx=ex,rx="__lodash_hash_undefined__";function ix(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?rx:t,this}var nx=ix;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=qk;Ct.prototype.delete=Yk;Ct.prototype.get=Kk;Ct.prototype.has=tx;Ct.prototype.set=nx;var Dc=Ct;function ox(){this.__data__=[],this.size=0}var ax=ox;function lx(e,t){for(var r=e.length;r--;)if(Xw(e[r][0],t))return r;return-1}var Zn=lx,sx=Array.prototype,ux=sx.splice;function cx(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ux.call(t,r,1),--this.size,!0}var dx=cx;function px(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var gx=px;function fx(e){return Zn(this.__data__,e)>-1}var yx=fx;function mx(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var bx=mx;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=ax;At.prototype.delete=dx;At.prototype.get=gx;At.prototype.has=yx;At.prototype.set=bx;var Qn=At,hx=It(te,"Map"),ni=hx;function vx(){this.size=0,this.__data__={hash:new Dc,map:new(ni||Qn),string:new Dc}}var wx=vx;function kx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xx=kx;function Ix(e,t){var r=e.__data__;return xx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=Ix;function Cx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var Ax=Cx;function Sx(e){return Wn(this,e).get(e)}var Mx=Sx;function jx(e){return Wn(this,e).has(e)}var $x=jx;function Ex(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _x=Ex;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=wx;St.prototype.delete=Ax;St.prototype.get=Mx;St.prototype.has=$x;St.prototype.set=_x;var kd=St;function Lx(){this.__data__=new Qn,this.size=0}var Tx=Lx;function Ox(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Nx=Ox;function Dx(e){return this.__data__.get(e)}var Px=Dx;function zx(e){return this.__data__.has(e)}var Ux=zx,Rx=200;function Fx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<Rx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new kd(i)}return r.set(e,t),this.size=r.size,this}var Vx=Fx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=Tx;si.prototype.delete=Nx;si.prototype.get=Px;si.prototype.has=Ux;si.prototype.set=Vx;var Bx=Object.prototype,lX=Bx.propertyIsEnumerable,qx=It(te,"DataView"),ja=qx,Gx=It(te,"Promise"),$a=Gx,Yx=It(te,"Set"),Ea=Yx,Pc="[object Map]",Hx="[object Object]",zc="[object Promise]",Uc="[object Set]",Rc="[object WeakMap]",Fc="[object DataView]",Zx=Oe(ja),Qx=Oe(ni),Wx=Oe($a),Kx=Oe(Ea),Jx=Oe(Ma),ht=li;(ja&&ht(new ja(new ArrayBuffer(1)))!=Fc||ni&&ht(new ni)!=Pc||$a&&ht($a.resolve())!=zc||Ea&&ht(new Ea)!=Uc||Ma&&ht(new Ma)!=Rc)&&(ht=function(e){var t=li(e),r=t==Hx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Zx:return Fc;case Qx:return Pc;case Wx:return zc;case Kx:return Uc;case Jx:return Rc}return t});var sX=te.Uint8Array,Xx="__lodash_hash_undefined__";function eI(e){return this.__data__.set(e,Xx),this}var tI=eI;function rI(e){return this.__data__.has(e)}var iI=rI;function _a(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new kd;++t<r;)this.add(e[t])}_a.prototype.add=_a.prototype.push=tI;_a.prototype.has=iI;var Vc=kt?kt.prototype:void 0,uX=Vc?Vc.valueOf:void 0,nI=Object.prototype,cX=nI.hasOwnProperty,oI=Object.prototype,dX=oI.hasOwnProperty,pX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),gX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),fX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function xd(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 aI(e,t){let r=await xd(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 lI(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 xd(i,t)}function sI(e){return e!==void 0}var uI=sI;function ui(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 ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function di(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Hn=class Id{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 Id),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))}},cI=class Cd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cd),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,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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 gI=pI,xa="ly.img.ai.temp";async function fI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function yI(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 Ad(){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 mI(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 bI(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 Ua(e){return e instanceof Error&&e.name==="AbortError"}function hI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function vI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
144
+ `,L3=_3,T3=typeof global=="object"&&global&&global.Object===Object&&global,kc=T3,O3=typeof self=="object"&&self&&self.Object===Object&&self,N3=kc||O3||Function("return this")(),ee=N3,D3=ee.Symbol,st=D3,xc=Object.prototype,P3=xc.hasOwnProperty,z3=xc.toString,Er=st?st.toStringTag:void 0;function U3(e){var t=P3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=z3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var R3=U3,F3=Object.prototype,V3=F3.toString;function B3(e){return V3.call(e)}var q3=B3,G3="[object Null]",Y3="[object Undefined]",Su=st?st.toStringTag:void 0;function H3(e){return e==null?e===void 0?Y3:G3:Su&&Su in Object(e)?R3(e):q3(e)}var Hr=H3;function Z3(e){return e!=null&&typeof e=="object"}var va=Z3,TJ=Array.isArray;function Q3(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ic=Q3,W3="[object AsyncFunction]",K3="[object Function]",J3="[object GeneratorFunction]",X3="[object Proxy]";function e7(e){if(!Ic(e))return!1;var t=Hr(e);return t==K3||t==J3||t==W3||t==X3}var t7=e7,r7=ee["__core-js_shared__"],Jo=r7,Mu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function i7(e){return!!Mu&&Mu in e}var n7=i7,o7=Function.prototype,a7=o7.toString;function l7(e){if(e!=null){try{return a7.call(e)}catch{}try{return e+""}catch{}}return""}var Te=l7,s7=/[\\^$.*+?()[\]{}|]/g,u7=/^\[object .+?Constructor\]$/,c7=Function.prototype,d7=Object.prototype,p7=c7.toString,g7=d7.hasOwnProperty,f7=RegExp("^"+p7.call(g7).replace(s7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function y7(e){if(!Ic(e)||n7(e))return!1;var t=t7(e)?f7:u7;return t.test(Te(e))}var m7=y7;function b7(e,t){return e?.[t]}var h7=b7;function v7(e,t){var r=h7(e,t);return m7(r)?r:void 0}var gt=v7,w7=gt(ee,"WeakMap"),ua=w7;function k7(e,t){return e===t||e!==e&&t!==t}var x7=k7,I7=9007199254740991;function C7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=I7}var A7=C7,OJ=Object.prototype,S7="[object Arguments]";function M7(e){return va(e)&&Hr(e)==S7}var ju=M7,Cc=Object.prototype,j7=Cc.hasOwnProperty,$7=Cc.propertyIsEnumerable,NJ=ju(function(){return arguments}())?ju:function(e){return va(e)&&j7.call(e,"callee")&&!$7.call(e,"callee")},Ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$u=Ac&&typeof module=="object"&&module&&!module.nodeType&&module,E7=$u&&$u.exports===Ac,Eu=E7?ee.Buffer:void 0,DJ=Eu?Eu.isBuffer:void 0,_7="[object Arguments]",L7="[object Array]",T7="[object Boolean]",O7="[object Date]",N7="[object Error]",D7="[object Function]",P7="[object Map]",z7="[object Number]",U7="[object Object]",R7="[object RegExp]",F7="[object Set]",V7="[object String]",B7="[object WeakMap]",q7="[object ArrayBuffer]",G7="[object DataView]",Y7="[object Float32Array]",H7="[object Float64Array]",Z7="[object Int8Array]",Q7="[object Int16Array]",W7="[object Int32Array]",K7="[object Uint8Array]",J7="[object Uint8ClampedArray]",X7="[object Uint16Array]",e8="[object Uint32Array]",N={};N[Y7]=N[H7]=N[Z7]=N[Q7]=N[W7]=N[K7]=N[J7]=N[X7]=N[e8]=!0;N[_7]=N[L7]=N[q7]=N[T7]=N[G7]=N[O7]=N[N7]=N[D7]=N[P7]=N[z7]=N[U7]=N[R7]=N[F7]=N[V7]=N[B7]=!1;function t8(e){return va(e)&&A7(e.length)&&!!N[Hr(e)]}var r8=t8;function i8(e){return function(t){return e(t)}}var n8=i8,Sc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Sc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=Pr&&Pr.exports===Sc,Xo=o8&&kc.process,a8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),_u=a8,Lu=_u&&_u.isTypedArray,PJ=Lu?n8(Lu):r8,l8=Object.prototype,zJ=l8.hasOwnProperty;function s8(e,t){return function(r){return e(t(r))}}var u8=s8,UJ=u8(Object.keys,Object),c8=Object.prototype,RJ=c8.hasOwnProperty,d8=gt(Object,"create"),Rr=d8;function p8(){this.__data__=Rr?Rr(null):{},this.size=0}var g8=p8;function f8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var y8=f8,m8="__lodash_hash_undefined__",b8=Object.prototype,h8=b8.hasOwnProperty;function v8(e){var t=this.__data__;if(Rr){var r=t[e];return r===m8?void 0:r}return h8.call(t,e)?t[e]:void 0}var w8=v8,k8=Object.prototype,x8=k8.hasOwnProperty;function I8(e){var t=this.__data__;return Rr?t[e]!==void 0:x8.call(t,e)}var C8=I8,A8="__lodash_hash_undefined__";function S8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?A8:t,this}var M8=S8;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=g8;ft.prototype.delete=y8;ft.prototype.get=w8;ft.prototype.has=C8;ft.prototype.set=M8;var Tu=ft;function j8(){this.__data__=[],this.size=0}var $8=j8;function E8(e,t){for(var r=e.length;r--;)if(x7(e[r][0],t))return r;return-1}var Dn=E8,_8=Array.prototype,L8=_8.splice;function T8(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():L8.call(t,r,1),--this.size,!0}var O8=T8;function N8(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var D8=N8;function P8(e){return Dn(this.__data__,e)>-1}var z8=P8;function U8(e,t){var r=this.__data__,i=Dn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var R8=U8;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=$8;yt.prototype.delete=O8;yt.prototype.get=D8;yt.prototype.has=z8;yt.prototype.set=R8;var Pn=yt,F8=gt(ee,"Map"),Fr=F8;function V8(){this.size=0,this.__data__={hash:new Tu,map:new(Fr||Pn),string:new Tu}}var B8=V8;function q8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var G8=q8;function Y8(e,t){var r=e.__data__;return G8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=Y8;function H8(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var Z8=H8;function Q8(e){return zn(this,e).get(e)}var W8=Q8;function K8(e){return zn(this,e).has(e)}var J8=K8;function X8(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var e6=X8;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=B8;mt.prototype.delete=Z8;mt.prototype.get=W8;mt.prototype.has=J8;mt.prototype.set=e6;var Mc=mt;function t6(){this.__data__=new Pn,this.size=0}var r6=t6;function i6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var n6=i6;function o6(e){return this.__data__.get(e)}var a6=o6;function l6(e){return this.__data__.has(e)}var s6=l6,u6=200;function c6(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<u6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mc(i)}return r.set(e,t),this.size=r.size,this}var d6=c6;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=r6;Zr.prototype.delete=n6;Zr.prototype.get=a6;Zr.prototype.has=s6;Zr.prototype.set=d6;var p6=Object.prototype,FJ=p6.propertyIsEnumerable,g6=gt(ee,"DataView"),ca=g6,f6=gt(ee,"Promise"),da=f6,y6=gt(ee,"Set"),pa=y6,Ou="[object Map]",m6="[object Object]",Nu="[object Promise]",Du="[object Set]",Pu="[object WeakMap]",zu="[object DataView]",b6=Te(ca),h6=Te(Fr),v6=Te(da),w6=Te(pa),k6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=zu||Fr&&ot(new Fr)!=Ou||da&&ot(da.resolve())!=Nu||pa&&ot(new pa)!=Du||ua&&ot(new ua)!=Pu)&&(ot=function(e){var t=Hr(e),r=t==m6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case b6:return zu;case h6:return Ou;case v6:return Nu;case w6:return Du;case k6:return Pu}return t});var VJ=ee.Uint8Array,x6="__lodash_hash_undefined__";function I6(e){return this.__data__.set(e,x6),this}var C6=I6;function A6(e){return this.__data__.has(e)}var S6=A6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=C6;ga.prototype.has=S6;var Uu=st?st.prototype:void 0,BJ=Uu?Uu.valueOf:void 0,M6=Object.prototype,qJ=M6.hasOwnProperty,j6=Object.prototype,GJ=j6.hasOwnProperty,YJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $6(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 bt(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 $6(i,t)}function E6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Ru=E6;function _6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function L6(e){return typeof e?.translate=="function"}function T6(e,t,r){return e&&_6(e)&&L6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",O6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Un="editImage",ue=`ly.img.${Un}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,In=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Cn(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 N6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${In}`]:"Edit Image...",[`${In}.description`]:"Change image based on description",[`${In}.prompt`]:"Edit Image...",[`${Fu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Fu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Cn(l,"prompt"),placeholder:Cn(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:Cn(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 bt(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:Cn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),D6=N6,Rn="swapBackground",ce=`ly.img.${Rn}`,Vu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Sn(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 P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${An}`]:"Swap Background...",[`${An}.description`]:"Change the background of the image",[`${An}.prompt`]:"Swap Background...",[`${Vu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Vu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(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:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(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:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),z6=P6,Fn="styleTransfer",_r=`ly.img.${Fn}`,U6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Bu(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 R6=[{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."}],F6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${U6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Bu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{R6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Bu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(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"})}}})})}})}})}})}}),V6=F6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,B6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function qu(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 q6=[{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."}],G6=({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:Lr,type:"quick",kind:"image",label:`${B6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:qu(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:()=>{q6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(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"})}}})})}})}})}})}}),Y6=G6,Bn="createVariant",de=`ly.img.${Bn}`,Gu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var H6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Mn}`]:"Create Variant...",[`${Mn}.description`]:"Create a variation of the image",[`${Mn}.prompt`]:"Create Variant...",[`${Gu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Mn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Gu}`,enable:t=>{if(!Yr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),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 v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),Z6=H6,qn="combineImages",pe=`ly.img.${qn}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,ea=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function $n(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 Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ea}.apply`]:"Combine",[`${ea}`]:"Combine Images...",[`${ea}.prompt`]:"Image Combination Instructions",[`${Yu}.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:`${Yu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:$n(l,"prompt"),placeholder:$n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:$n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:$n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),W6=Q6,Gn="remixPage",Hu=`ly.img.${Gn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,J6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function X6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ew=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${J6}`]:"Turn Page into Image"}}),{id:Hu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${K6}`,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(`${Hu}.button`,{label:X6(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(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),tw=ew,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var rw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ta}`]:"Remix Page...",[`${ta}.prompt`]:"Remix Page Prompt",[`${Zu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Zu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(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:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),v=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"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:En(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),iw=rw,fe="ly.img.ai.image-generation";function nw(e){return{async initialize({cesdk:t}){if(t==null)return;W9(t,Nr,"1.72.1-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(E3,L3),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:T6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});ow(e),r.register(D6({cesdk:t})),r.register(z6({cesdk:t})),r.register(V6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(Z6({cesdk:t})),r.register(W6({cesdk:t})),r.register(tw({cesdk:t})),r.register(iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Ru(a).map(d=>d({cesdk:t}))),c=await Promise.all(Ru(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await a3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await $3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:O6});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:Nn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),J9({cesdk:t,panelId:fe})):n()}}}function ow(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 aw=nw,lw=e=>({name:Nr,version:"1.72.1-rc.0",...aw(e)}),jc=lw;var sw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var uw=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")}},cw=typeof global=="object"&&global&&global.Object===Object&&global,yd=cw,dw=typeof self=="object"&&self&&self.Object===Object&&self,pw=yd||dw||Function("return this")(),te=pw,gw=te.Symbol,kt=gw,md=Object.prototype,fw=md.hasOwnProperty,yw=md.toString,Qr=kt?kt.toStringTag:void 0;function mw(e){var t=fw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=yw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var bw=mw,hw=Object.prototype,vw=hw.toString;function ww(e){return vw.call(e)}var kw=ww,xw="[object Null]",Iw="[object Undefined]",$c=kt?kt.toStringTag:void 0;function Cw(e){return e==null?e===void 0?Iw:xw:$c&&$c in Object(e)?bw(e):kw(e)}var li=Cw;function Aw(e){return e!=null&&typeof e=="object"}var za=Aw,XJ=Array.isArray;function Sw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bd=Sw,Mw="[object AsyncFunction]",jw="[object Function]",$w="[object GeneratorFunction]",Ew="[object Proxy]";function _w(e){if(!bd(e))return!1;var t=li(e);return t==jw||t==$w||t==Mw||t==Ew}var Lw=_w,Tw=te["__core-js_shared__"],wa=Tw,Ec=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ow(e){return!!Ec&&Ec in e}var Nw=Ow,Dw=Function.prototype,Pw=Dw.toString;function zw(e){if(e!=null){try{return Pw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=zw,Uw=/[\\^$.*+?()[\]{}|]/g,Rw=/^\[object .+?Constructor\]$/,Fw=Function.prototype,Vw=Object.prototype,Bw=Fw.toString,qw=Vw.hasOwnProperty,Gw=RegExp("^"+Bw.call(qw).replace(Uw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yw(e){if(!bd(e)||Nw(e))return!1;var t=Lw(e)?Gw:Rw;return t.test(Oe(e))}var Hw=Yw;function Zw(e,t){return e?.[t]}var Qw=Zw;function Ww(e,t){var r=Qw(e,t);return Hw(r)?r:void 0}var It=Ww,Kw=It(te,"WeakMap"),Ma=Kw;function Jw(e,t){return e===t||e!==e&&t!==t}var Xw=Jw,ek=9007199254740991;function tk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ek}var rk=tk,eX=Object.prototype,ik="[object Arguments]";function nk(e){return za(e)&&li(e)==ik}var _c=nk,hd=Object.prototype,ok=hd.hasOwnProperty,ak=hd.propertyIsEnumerable,tX=_c(function(){return arguments}())?_c:function(e){return za(e)&&ok.call(e,"callee")&&!ak.call(e,"callee")},vd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lc=vd&&typeof module=="object"&&module&&!module.nodeType&&module,lk=Lc&&Lc.exports===vd,Tc=lk?te.Buffer:void 0,rX=Tc?Tc.isBuffer:void 0,sk="[object Arguments]",uk="[object Array]",ck="[object Boolean]",dk="[object Date]",pk="[object Error]",gk="[object Function]",fk="[object Map]",yk="[object Number]",mk="[object Object]",bk="[object RegExp]",hk="[object Set]",vk="[object String]",wk="[object WeakMap]",kk="[object ArrayBuffer]",xk="[object DataView]",Ik="[object Float32Array]",Ck="[object Float64Array]",Ak="[object Int8Array]",Sk="[object Int16Array]",Mk="[object Int32Array]",jk="[object Uint8Array]",$k="[object Uint8ClampedArray]",Ek="[object Uint16Array]",_k="[object Uint32Array]",D={};D[Ik]=D[Ck]=D[Ak]=D[Sk]=D[Mk]=D[jk]=D[$k]=D[Ek]=D[_k]=!0;D[sk]=D[uk]=D[kk]=D[ck]=D[xk]=D[dk]=D[pk]=D[gk]=D[fk]=D[yk]=D[mk]=D[bk]=D[hk]=D[vk]=D[wk]=!1;function Lk(e){return za(e)&&rk(e.length)&&!!D[li(e)]}var Tk=Lk;function Ok(e){return function(t){return e(t)}}var Nk=Ok,wd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=wd&&typeof module=="object"&&module&&!module.nodeType&&module,Dk=ti&&ti.exports===wd,ka=Dk&&yd.process,Pk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Oc=Pk,Nc=Oc&&Oc.isTypedArray,iX=Nc?Nk(Nc):Tk,zk=Object.prototype,nX=zk.hasOwnProperty;function Uk(e,t){return function(r){return e(t(r))}}var Rk=Uk,oX=Rk(Object.keys,Object),Fk=Object.prototype,aX=Fk.hasOwnProperty,Vk=It(Object,"create"),ii=Vk;function Bk(){this.__data__=ii?ii(null):{},this.size=0}var qk=Bk;function Gk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Yk=Gk,Hk="__lodash_hash_undefined__",Zk=Object.prototype,Qk=Zk.hasOwnProperty;function Wk(e){var t=this.__data__;if(ii){var r=t[e];return r===Hk?void 0:r}return Qk.call(t,e)?t[e]:void 0}var Kk=Wk,Jk=Object.prototype,Xk=Jk.hasOwnProperty;function ex(e){var t=this.__data__;return ii?t[e]!==void 0:Xk.call(t,e)}var tx=ex,rx="__lodash_hash_undefined__";function ix(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?rx:t,this}var nx=ix;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=qk;Ct.prototype.delete=Yk;Ct.prototype.get=Kk;Ct.prototype.has=tx;Ct.prototype.set=nx;var Dc=Ct;function ox(){this.__data__=[],this.size=0}var ax=ox;function lx(e,t){for(var r=e.length;r--;)if(Xw(e[r][0],t))return r;return-1}var Zn=lx,sx=Array.prototype,ux=sx.splice;function cx(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ux.call(t,r,1),--this.size,!0}var dx=cx;function px(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var gx=px;function fx(e){return Zn(this.__data__,e)>-1}var yx=fx;function mx(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var bx=mx;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=ax;At.prototype.delete=dx;At.prototype.get=gx;At.prototype.has=yx;At.prototype.set=bx;var Qn=At,hx=It(te,"Map"),ni=hx;function vx(){this.size=0,this.__data__={hash:new Dc,map:new(ni||Qn),string:new Dc}}var wx=vx;function kx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xx=kx;function Ix(e,t){var r=e.__data__;return xx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=Ix;function Cx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var Ax=Cx;function Sx(e){return Wn(this,e).get(e)}var Mx=Sx;function jx(e){return Wn(this,e).has(e)}var $x=jx;function Ex(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _x=Ex;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=wx;St.prototype.delete=Ax;St.prototype.get=Mx;St.prototype.has=$x;St.prototype.set=_x;var kd=St;function Lx(){this.__data__=new Qn,this.size=0}var Tx=Lx;function Ox(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Nx=Ox;function Dx(e){return this.__data__.get(e)}var Px=Dx;function zx(e){return this.__data__.has(e)}var Ux=zx,Rx=200;function Fx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<Rx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new kd(i)}return r.set(e,t),this.size=r.size,this}var Vx=Fx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=Tx;si.prototype.delete=Nx;si.prototype.get=Px;si.prototype.has=Ux;si.prototype.set=Vx;var Bx=Object.prototype,lX=Bx.propertyIsEnumerable,qx=It(te,"DataView"),ja=qx,Gx=It(te,"Promise"),$a=Gx,Yx=It(te,"Set"),Ea=Yx,Pc="[object Map]",Hx="[object Object]",zc="[object Promise]",Uc="[object Set]",Rc="[object WeakMap]",Fc="[object DataView]",Zx=Oe(ja),Qx=Oe(ni),Wx=Oe($a),Kx=Oe(Ea),Jx=Oe(Ma),ht=li;(ja&&ht(new ja(new ArrayBuffer(1)))!=Fc||ni&&ht(new ni)!=Pc||$a&&ht($a.resolve())!=zc||Ea&&ht(new Ea)!=Uc||Ma&&ht(new Ma)!=Rc)&&(ht=function(e){var t=li(e),r=t==Hx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Zx:return Fc;case Qx:return Pc;case Wx:return zc;case Kx:return Uc;case Jx:return Rc}return t});var sX=te.Uint8Array,Xx="__lodash_hash_undefined__";function eI(e){return this.__data__.set(e,Xx),this}var tI=eI;function rI(e){return this.__data__.has(e)}var iI=rI;function _a(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new kd;++t<r;)this.add(e[t])}_a.prototype.add=_a.prototype.push=tI;_a.prototype.has=iI;var Vc=kt?kt.prototype:void 0,uX=Vc?Vc.valueOf:void 0,nI=Object.prototype,cX=nI.hasOwnProperty,oI=Object.prototype,dX=oI.hasOwnProperty,pX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),gX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),fX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function xd(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 aI(e,t){let r=await xd(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 lI(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 xd(i,t)}function sI(e){return e!==void 0}var uI=sI;function ui(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 ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function di(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Hn=class Id{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 Id),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))}},cI=class Cd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cd),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,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function 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 gI=pI,xa="ly.img.ai.temp";async function fI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function yI(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 Ad(){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 mI(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 bI(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 Ua(e){return e instanceof Error&&e.name==="AbortError"}function hI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function vI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
145
145
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
146
146
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
147
147
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function wI(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 kI=wI;function xI(){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 II=xI;function CI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),AI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:yI(e)}))}function AI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Bc=CI,SI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ra=SI;function MI(e,t,r){switch(t){case"image":return jI(e,r[t]);case"video":return $I(e,r[t]);case"sticker":return EI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function jI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function $I(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ra,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function EI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var _I=MI;async function LI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return TI(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 OI(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 NI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return DI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TI(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 OI(e,t,r){let i=t.width,n=t.height,a=await mI(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 NI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function DI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Sd=LI;function PI(e){switch(e.userFlow){case"placeholder":return UI(e);case"generation-only":return zI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function zI(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=Ad(),c=await Sd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function UI(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=Ad(),c=_I(s,a,o);if(i=await fI(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 l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Sd(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)&&(Ua(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var RI=PI;function Fa(e){return`${e}.generating`}function FI(e){return`${e}.abort`}function VI(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(FI(d),()=>{}),y=c.global(Fa(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await RI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Bc(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;BI(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Ua(b))return;Bc(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function BI(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 Md=VI;async function qI({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(Fa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Md(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var GI=qI;function jd(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=jd(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 YI(e){return Jr(e,{...e})}function HI(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 ZI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return QI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function QI(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=WI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function WI(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 $d=ZI;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Ed(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 _d(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?KI(e,c,r,i,n,a,o,s):Ld(e,c,r,i,n,a,o,s);case"boolean":return Td(e,c,r,i,n,a,o,s);case"number":case"integer":return Od(e,c,r,i,n,a,o,s);case"object":return La(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return JI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function La(e,t,r,i,n,a,o,s){let c=$d(t.schema??{},i).reduce((l,u)=>{let d=_d(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 Ld(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=ci(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=di(d,m,f,t.schema.default,""),k=l(p,v),w=XI(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function KI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:y,icons:f}=Ed(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),v=ci(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=di(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Td(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!di(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Od(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=di(d,v,m,k,k),x=l(p,w);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,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function JI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Ed(t.schema),x=ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Ld,boolean:Td,integer:Od,object:La},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:ve(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>La(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=di(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function XI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var eC=_d,tC={"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 qc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Gc(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]||qc(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]||qc(g);n[a(l.id,g)]=y}})}});let c={...tC,...n};Object.keys(c).length>0&&ui(r.cesdk,{en:c})}function Yc(e){return typeof e.document=="function"?e.document():e.document}function Hc(e,t,r){let i=YI(e),n=jd(i,t.inputReference);if(!HI(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=$d(a,t);return{inputSchema:a,properties:o}}function Zc(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=eC(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Md(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function rC(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=Yc(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Hc(c,s,a.debug);return Gc(y,i,r,i.kind),Zc(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(Yc(s)).then(g=>{let{inputSchema:y,properties:f}=Hc(g,s,a.debug);Gc(f,i,r,i.kind),u=Zc(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.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var iC=rC;async function nC(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return GI(e,t);case"schema":return iC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var oC=nC;function aC(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 sw(o,r)),o}return i}var lC=aC;function sC(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 uC=sC,Ia="@imgly/plugin-ai-generation",cC=`
@@ -206,7 +206,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
206
206
  </symbol>
207
207
  </svg>
208
208
  `,dC=cC;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 Nd(2e3),await gC(t,e,r)):i(t,r)}async function gC(e,t,r){switch(t.kind){case"image":return fC(e,t,r);case"video":return yC(e,t,r);case"text":return mC(e,t,r);case"audio":return hC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function fC(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 lI(s,r),l=await aI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function yC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function mC(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 bC(a,r.abortSignal)}async function*bC(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 Nd(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 hC(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:vC(220,i),duration:i,thumbnailUrl:void 0}}function vC(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 wC(i,44100)}function wC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!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 Nd(e){return new Promise(t=>{setTimeout(t,e)})}var kC=pC,xC="USER_CANCEL";function IC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=dI([...e.provider.output.middleware??[],...r?.middlewares??[],gI({enable:r?.debug}),kC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:bI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ua(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===xC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var CC=IC;async function AC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=lC(a),s=uC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=CC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await oC(a,c);hI(r.cesdk,"@imgly/plugin-ai-generation",dC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return cI.get().register(u),u}var Ca=AC;function SC(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 uw(n,r,i);return r.engine.asset.addSource(a),a.id}var MC=SC;function Xr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function jC(e,t,r,i){let{cesdk:n}=r;ui(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});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=EC({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=$C({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=MC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(uI)}),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 $C({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Xr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Xr(e,"fromText.label"),icon:f.value!=="fromText"&&Qc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Xr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Qc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function EC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Qc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var _C=jC,LC=typeof global=="object"&&global&&global.Object===Object&&global,Dd=LC,TC=typeof self=="object"&&self&&self.Object===Object&&self,OC=Dd||TC||Function("return this")(),re=OC,NC=re.Symbol,xt=NC,Pd=Object.prototype,DC=Pd.hasOwnProperty,PC=Pd.toString,Kr=xt?xt.toStringTag:void 0;function zC(e){var t=DC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=PC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var UC=zC,RC=Object.prototype,FC=RC.toString;function VC(e){return FC.call(e)}var BC=VC,qC="[object Null]",GC="[object Undefined]",Wc=xt?xt.toStringTag:void 0;function YC(e){return e==null?e===void 0?GC:qC:Wc&&Wc in Object(e)?UC(e):BC(e)}var pi=YC;function HC(e){return e!=null&&typeof e=="object"}var Va=HC,yX=Array.isArray;function ZC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zd=ZC,QC="[object AsyncFunction]",WC="[object Function]",KC="[object GeneratorFunction]",JC="[object Proxy]";function XC(e){if(!zd(e))return!1;var t=pi(e);return t==WC||t==KC||t==QC||t==JC}var eA=XC,tA=re["__core-js_shared__"],Aa=tA,Kc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rA(e){return!!Kc&&Kc in e}var iA=rA,nA=Function.prototype,oA=nA.toString;function aA(e){if(e!=null){try{return oA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=aA,lA=/[\\^$.*+?()[\]{}|]/g,sA=/^\[object .+?Constructor\]$/,uA=Function.prototype,cA=Object.prototype,dA=uA.toString,pA=cA.hasOwnProperty,gA=RegExp("^"+dA.call(pA).replace(lA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fA(e){if(!zd(e)||iA(e))return!1;var t=eA(e)?gA:sA;return t.test(Ne(e))}var yA=fA;function mA(e,t){return e?.[t]}var bA=mA;function hA(e,t){var r=bA(e,t);return yA(r)?r:void 0}var Mt=hA,vA=Mt(re,"WeakMap"),Ta=vA;function wA(e,t){return e===t||e!==e&&t!==t}var kA=wA,xA=9007199254740991;function IA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xA}var CA=IA,mX=Object.prototype,AA="[object Arguments]";function SA(e){return Va(e)&&pi(e)==AA}var Jc=SA,Ud=Object.prototype,MA=Ud.hasOwnProperty,jA=Ud.propertyIsEnumerable,bX=Jc(function(){return arguments}())?Jc:function(e){return Va(e)&&MA.call(e,"callee")&&!jA.call(e,"callee")},Rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xc=Rd&&typeof module=="object"&&module&&!module.nodeType&&module,$A=Xc&&Xc.exports===Rd,ed=$A?re.Buffer:void 0,hX=ed?ed.isBuffer:void 0,EA="[object Arguments]",_A="[object Array]",LA="[object Boolean]",TA="[object Date]",OA="[object Error]",NA="[object Function]",DA="[object Map]",PA="[object Number]",zA="[object Object]",UA="[object RegExp]",RA="[object Set]",FA="[object String]",VA="[object WeakMap]",BA="[object ArrayBuffer]",qA="[object DataView]",GA="[object Float32Array]",YA="[object Float64Array]",HA="[object Int8Array]",ZA="[object Int16Array]",QA="[object Int32Array]",WA="[object Uint8Array]",KA="[object Uint8ClampedArray]",JA="[object Uint16Array]",XA="[object Uint32Array]",P={};P[GA]=P[YA]=P[HA]=P[ZA]=P[QA]=P[WA]=P[KA]=P[JA]=P[XA]=!0;P[EA]=P[_A]=P[BA]=P[LA]=P[qA]=P[TA]=P[OA]=P[NA]=P[DA]=P[PA]=P[zA]=P[UA]=P[RA]=P[FA]=P[VA]=!1;function eS(e){return Va(e)&&CA(e.length)&&!!P[pi(e)]}var tS=eS;function rS(e){return function(t){return e(t)}}var iS=rS,Fd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Fd&&typeof module=="object"&&module&&!module.nodeType&&module,nS=ri&&ri.exports===Fd,Sa=nS&&Dd.process,oS=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),td=oS,rd=td&&td.isTypedArray,vX=rd?iS(rd):tS,aS=Object.prototype,wX=aS.hasOwnProperty;function lS(e,t){return function(r){return e(t(r))}}var sS=lS,kX=sS(Object.keys,Object),uS=Object.prototype,xX=uS.hasOwnProperty,cS=Mt(Object,"create"),oi=cS;function dS(){this.__data__=oi?oi(null):{},this.size=0}var pS=dS;function gS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fS=gS,yS="__lodash_hash_undefined__",mS=Object.prototype,bS=mS.hasOwnProperty;function hS(e){var t=this.__data__;if(oi){var r=t[e];return r===yS?void 0:r}return bS.call(t,e)?t[e]:void 0}var vS=hS,wS=Object.prototype,kS=wS.hasOwnProperty;function xS(e){var t=this.__data__;return oi?t[e]!==void 0:kS.call(t,e)}var IS=xS,CS="__lodash_hash_undefined__";function AS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=oi&&t===void 0?CS:t,this}var SS=AS;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=pS;jt.prototype.delete=fS;jt.prototype.get=vS;jt.prototype.has=IS;jt.prototype.set=SS;var id=jt;function MS(){this.__data__=[],this.size=0}var jS=MS;function $S(e,t){for(var r=e.length;r--;)if(kA(e[r][0],t))return r;return-1}var Kn=$S,ES=Array.prototype,_S=ES.splice;function LS(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_S.call(t,r,1),--this.size,!0}var TS=LS;function OS(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var NS=OS;function DS(e){return Kn(this.__data__,e)>-1}var PS=DS;function zS(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var US=zS;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=jS;$t.prototype.delete=TS;$t.prototype.get=NS;$t.prototype.has=PS;$t.prototype.set=US;var Jn=$t,RS=Mt(re,"Map"),ai=RS;function FS(){this.size=0,this.__data__={hash:new id,map:new(ai||Jn),string:new id}}var VS=FS;function BS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qS=BS;function GS(e,t){var r=e.__data__;return qS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=GS;function YS(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var HS=YS;function ZS(e){return Xn(this,e).get(e)}var QS=ZS;function WS(e){return Xn(this,e).has(e)}var KS=WS;function JS(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var XS=JS;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=VS;Et.prototype.delete=HS;Et.prototype.get=QS;Et.prototype.has=KS;Et.prototype.set=XS;var Vd=Et;function eM(){this.__data__=new Jn,this.size=0}var tM=eM;function rM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var iM=rM;function nM(e){return this.__data__.get(e)}var oM=nM;function aM(e){return this.__data__.has(e)}var lM=aM,sM=200;function uM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!ai||i.length<sM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vd(i)}return r.set(e,t),this.size=r.size,this}var cM=uM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=tM;gi.prototype.delete=iM;gi.prototype.get=oM;gi.prototype.has=lM;gi.prototype.set=cM;var dM=Object.prototype,IX=dM.propertyIsEnumerable,pM=Mt(re,"DataView"),Oa=pM,gM=Mt(re,"Promise"),Na=gM,fM=Mt(re,"Set"),Da=fM,nd="[object Map]",yM="[object Object]",od="[object Promise]",ad="[object Set]",ld="[object WeakMap]",sd="[object DataView]",mM=Ne(Oa),bM=Ne(ai),hM=Ne(Na),vM=Ne(Da),wM=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=sd||ai&&vt(new ai)!=nd||Na&&vt(Na.resolve())!=od||Da&&vt(new Da)!=ad||Ta&&vt(new Ta)!=ld)&&(vt=function(e){var t=pi(e),r=t==yM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case mM:return sd;case bM:return nd;case hM:return od;case vM:return ad;case wM:return ld}return t});var CX=re.Uint8Array,kM="__lodash_hash_undefined__";function xM(e){return this.__data__.set(e,kM),this}var IM=xM;function CM(e){return this.__data__.has(e)}var AM=CM;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vd;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=IM;Pa.prototype.has=AM;var ud=xt?xt.prototype:void 0,AX=ud?ud.valueOf:void 0,SM=Object.prototype,SX=SM.hasOwnProperty,MM=Object.prototype,MX=MM.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$X=new RegExp(/[A-Fa-f0-9]{1}/,"g"),EX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jM(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 Bd(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 jM(i,t)}function $M(e){return e==null?[]:Array.isArray(e)?e:[e]}var cd=$M;function EM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function _M(e){return typeof e?.translate=="function"}function LM(e,t,r){return e&&EM(e)&&_M(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",dd=`ly.img.${eo}`,TM=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,pd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function OM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var NM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${pd}`]:"Create Video...",[`${pd}.description`]:"Create a video from the image"}}),{id:dd,type:"quick",kind:"image",label:`${TM}`,enable:II(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${dd}.button`,{label:OM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Bd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),DM=NM,to="animateBetweenImages",gd=`ly.img.${to}`,PM=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,fd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function zM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var UM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${fd}`]:"Animate Between Images...",[`${fd}.description`]:"Create a video transitioning between two images"}}),{id:gd,type:"quick",kind:"image",label:`${PM}`,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(`${gd}.button`,{label:zM(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=>Bd(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"})}}})}}),RM=UM,be="ly.img.ai.video-generation";function FM(e){return{async initialize({cesdk:t}){if(t==null)return;vI(t,ei,"1.72.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=`${ei}.action.label`;ui(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),VM(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:LM(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(cd(n).map(l=>l({cesdk:t}))),s=await Promise.all(cd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await _C("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(DM({cesdk:t})),Hn.get().register(RM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),kI({cesdk:t,panelId:be})):i()}}}function VM(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 BM=FM,qM=e=>({name:ei,version:"1.72.0",...BM(e)}),qd=qM;var GM=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;Tt(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=()=>{Tt(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 Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(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 Tt(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]=Tt(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]=Tt(n,t,a)}return e}var YM=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")}},HM=typeof global=="object"&&global&&global.Object===Object&&global,Ep=HM,ZM=typeof self=="object"&&self&&self.Object===Object&&self,QM=Ep||ZM||Function("return this")(),ie=QM,WM=ie.Symbol,Ot=WM,_p=Object.prototype,KM=_p.hasOwnProperty,JM=_p.toString,fi=Ot?Ot.toStringTag:void 0;function XM(e){var t=KM.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=JM.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var ej=XM,tj=Object.prototype,rj=tj.toString;function ij(e){return rj.call(e)}var nj=ij,oj="[object Null]",aj="[object Undefined]",Gd=Ot?Ot.toStringTag:void 0;function lj(e){return e==null?e===void 0?aj:oj:Gd&&Gd in Object(e)?ej(e):nj(e)}var Ai=lj;function sj(e){return e!=null&&typeof e=="object"}var ll=sj,OX=Array.isArray;function uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Lp=uj,cj="[object AsyncFunction]",dj="[object Function]",pj="[object GeneratorFunction]",gj="[object Proxy]";function fj(e){if(!Lp(e))return!1;var t=Ai(e);return t==dj||t==pj||t==cj||t==gj}var yj=fj,mj=ie["__core-js_shared__"],Ba=mj,Yd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function bj(e){return!!Yd&&Yd in e}var hj=bj,vj=Function.prototype,wj=vj.toString;function kj(e){if(e!=null){try{return wj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=kj,xj=/[\\^$.*+?()[\]{}|]/g,Ij=/^\[object .+?Constructor\]$/,Cj=Function.prototype,Aj=Object.prototype,Sj=Cj.toString,Mj=Aj.hasOwnProperty,jj=RegExp("^"+Sj.call(Mj).replace(xj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $j(e){if(!Lp(e)||hj(e))return!1;var t=yj(e)?jj:Ij;return t.test(ze(e))}var Ej=$j;function _j(e,t){return e?.[t]}var Lj=_j;function Tj(e,t){var r=Lj(e,t);return Ej(r)?r:void 0}var Dt=Tj,Oj=Dt(ie,"WeakMap"),Wa=Oj;function Nj(e,t){return e===t||e!==e&&t!==t}var Dj=Nj,Pj=9007199254740991;function zj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Pj}var Uj=zj,NX=Object.prototype,Rj="[object Arguments]";function Fj(e){return ll(e)&&Ai(e)==Rj}var Hd=Fj,Tp=Object.prototype,Vj=Tp.hasOwnProperty,Bj=Tp.propertyIsEnumerable,DX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&Vj.call(e,"callee")&&!Bj.call(e,"callee")},Op=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Op&&typeof module=="object"&&module&&!module.nodeType&&module,qj=Zd&&Zd.exports===Op,Qd=qj?ie.Buffer:void 0,PX=Qd?Qd.isBuffer:void 0,Gj="[object Arguments]",Yj="[object Array]",Hj="[object Boolean]",Zj="[object Date]",Qj="[object Error]",Wj="[object Function]",Kj="[object Map]",Jj="[object Number]",Xj="[object Object]",e$="[object RegExp]",t$="[object Set]",r$="[object String]",i$="[object WeakMap]",n$="[object ArrayBuffer]",o$="[object DataView]",a$="[object Float32Array]",l$="[object Float64Array]",s$="[object Int8Array]",u$="[object Int16Array]",c$="[object Int32Array]",d$="[object Uint8Array]",p$="[object Uint8ClampedArray]",g$="[object Uint16Array]",f$="[object Uint32Array]",z={};z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=z[p$]=z[g$]=z[f$]=!0;z[Gj]=z[Yj]=z[n$]=z[Hj]=z[o$]=z[Zj]=z[Qj]=z[Wj]=z[Kj]=z[Jj]=z[Xj]=z[e$]=z[t$]=z[r$]=z[i$]=!1;function y$(e){return ll(e)&&Uj(e.length)&&!!z[Ai(e)]}var m$=y$;function b$(e){return function(t){return e(t)}}var h$=b$,Np=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Np&&typeof module=="object"&&module&&!module.nodeType&&module,v$=vi&&vi.exports===Np,qa=v$&&Ep.process,w$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Wd=w$,Kd=Wd&&Wd.isTypedArray,zX=Kd?h$(Kd):m$,k$=Object.prototype,UX=k$.hasOwnProperty;function x$(e,t){return function(r){return e(t(r))}}var I$=x$,RX=I$(Object.keys,Object),C$=Object.prototype,FX=C$.hasOwnProperty,A$=Dt(Object,"create"),ki=A$;function S$(){this.__data__=ki?ki(null):{},this.size=0}var M$=S$;function j$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $$=j$,E$="__lodash_hash_undefined__",_$=Object.prototype,L$=_$.hasOwnProperty;function T$(e){var t=this.__data__;if(ki){var r=t[e];return r===E$?void 0:r}return L$.call(t,e)?t[e]:void 0}var O$=T$,N$=Object.prototype,D$=N$.hasOwnProperty;function P$(e){var t=this.__data__;return ki?t[e]!==void 0:D$.call(t,e)}var z$=P$,U$="__lodash_hash_undefined__";function R$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?U$:t,this}var F$=R$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=M$;Pt.prototype.delete=$$;Pt.prototype.get=O$;Pt.prototype.has=z$;Pt.prototype.set=F$;var Jd=Pt;function V$(){this.__data__=[],this.size=0}var B$=V$;function q$(e,t){for(var r=e.length;r--;)if(Dj(e[r][0],t))return r;return-1}var ro=q$,G$=Array.prototype,Y$=G$.splice;function H$(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Y$.call(t,r,1),--this.size,!0}var Z$=H$;function Q$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var W$=Q$;function K$(e){return ro(this.__data__,e)>-1}var J$=K$;function X$(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var eE=X$;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=B$;zt.prototype.delete=Z$;zt.prototype.get=W$;zt.prototype.has=J$;zt.prototype.set=eE;var io=zt,tE=Dt(ie,"Map"),xi=tE;function rE(){this.size=0,this.__data__={hash:new Jd,map:new(xi||io),string:new Jd}}var iE=rE;function nE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var oE=nE;function aE(e,t){var r=e.__data__;return oE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=aE;function lE(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var sE=lE;function uE(e){return no(this,e).get(e)}var cE=uE;function dE(e){return no(this,e).has(e)}var pE=dE;function gE(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var fE=gE;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=iE;Ut.prototype.delete=sE;Ut.prototype.get=cE;Ut.prototype.has=pE;Ut.prototype.set=fE;var Dp=Ut;function yE(){this.__data__=new io,this.size=0}var mE=yE;function bE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var hE=bE;function vE(e){return this.__data__.get(e)}var wE=vE;function kE(e){return this.__data__.has(e)}var xE=kE,IE=200;function CE(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<IE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Dp(i)}return r.set(e,t),this.size=r.size,this}var AE=CE;function Si(e){var t=this.__data__=new io(e);this.size=t.size}Si.prototype.clear=mE;Si.prototype.delete=hE;Si.prototype.get=wE;Si.prototype.has=xE;Si.prototype.set=AE;var SE=Object.prototype,VX=SE.propertyIsEnumerable,ME=Dt(ie,"DataView"),Ka=ME,jE=Dt(ie,"Promise"),Ja=jE,$E=Dt(ie,"Set"),Xa=$E,Xd="[object Map]",EE="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",_E=ze(Ka),LE=ze(xi),TE=ze(Ja),OE=ze(Xa),NE=ze(Wa),_t=Ai;(Ka&&_t(new Ka(new ArrayBuffer(1)))!=ip||xi&&_t(new xi)!=Xd||Ja&&_t(Ja.resolve())!=ep||Xa&&_t(new Xa)!=tp||Wa&&_t(new Wa)!=rp)&&(_t=function(e){var t=Ai(e),r=t==EE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case _E:return ip;case LE:return Xd;case TE:return ep;case OE:return tp;case NE:return rp}return t});var BX=ie.Uint8Array,DE="__lodash_hash_undefined__";function PE(e){return this.__data__.set(e,DE),this}var zE=PE;function UE(e){return this.__data__.has(e)}var RE=UE;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Dp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=zE;el.prototype.has=RE;var np=Ot?Ot.prototype:void 0,qX=np?np.valueOf:void 0,FE=Object.prototype,GX=FE.hasOwnProperty,VE=Object.prototype,YX=VE.hasOwnProperty,HX=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 Pp(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 BE(e,t){let r=await Pp(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 qE(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 Pp(i,t)}function GE(e){return e!==void 0}var YE=GE;function sl(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 Mi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ji(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zp=class Up{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 Up),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))}},HE=class Rp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Rp),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 ZE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function QE({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 WE=QE,Ga="ly.img.ai.temp";async function KE(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function JE(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 Fp(){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 XE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function e_(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 ul(e){return e instanceof Error&&e.name==="AbortError"}function t_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function r_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
209
+ `,"+")}`}}async function yC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function mC(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 bC(a,r.abortSignal)}async function*bC(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 Nd(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 hC(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:vC(220,i),duration:i,thumbnailUrl:void 0}}function vC(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 wC(i,44100)}function wC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!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 Nd(e){return new Promise(t=>{setTimeout(t,e)})}var kC=pC,xC="USER_CANCEL";function IC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=dI([...e.provider.output.middleware??[],...r?.middlewares??[],gI({enable:r?.debug}),kC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:bI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ua(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===xC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var CC=IC;async function AC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=lC(a),s=uC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=CC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await oC(a,c);hI(r.cesdk,"@imgly/plugin-ai-generation",dC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return cI.get().register(u),u}var Ca=AC;function SC(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 uw(n,r,i);return r.engine.asset.addSource(a),a.id}var MC=SC;function Xr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function jC(e,t,r,i){let{cesdk:n}=r;ui(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});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=EC({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=$C({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=MC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(uI)}),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 $C({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Xr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Xr(e,"fromText.label"),icon:f.value!=="fromText"&&Qc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Xr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Qc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function EC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Qc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var _C=jC,LC=typeof global=="object"&&global&&global.Object===Object&&global,Dd=LC,TC=typeof self=="object"&&self&&self.Object===Object&&self,OC=Dd||TC||Function("return this")(),re=OC,NC=re.Symbol,xt=NC,Pd=Object.prototype,DC=Pd.hasOwnProperty,PC=Pd.toString,Kr=xt?xt.toStringTag:void 0;function zC(e){var t=DC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=PC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var UC=zC,RC=Object.prototype,FC=RC.toString;function VC(e){return FC.call(e)}var BC=VC,qC="[object Null]",GC="[object Undefined]",Wc=xt?xt.toStringTag:void 0;function YC(e){return e==null?e===void 0?GC:qC:Wc&&Wc in Object(e)?UC(e):BC(e)}var pi=YC;function HC(e){return e!=null&&typeof e=="object"}var Va=HC,yX=Array.isArray;function ZC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zd=ZC,QC="[object AsyncFunction]",WC="[object Function]",KC="[object GeneratorFunction]",JC="[object Proxy]";function XC(e){if(!zd(e))return!1;var t=pi(e);return t==WC||t==KC||t==QC||t==JC}var eA=XC,tA=re["__core-js_shared__"],Aa=tA,Kc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rA(e){return!!Kc&&Kc in e}var iA=rA,nA=Function.prototype,oA=nA.toString;function aA(e){if(e!=null){try{return oA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=aA,lA=/[\\^$.*+?()[\]{}|]/g,sA=/^\[object .+?Constructor\]$/,uA=Function.prototype,cA=Object.prototype,dA=uA.toString,pA=cA.hasOwnProperty,gA=RegExp("^"+dA.call(pA).replace(lA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fA(e){if(!zd(e)||iA(e))return!1;var t=eA(e)?gA:sA;return t.test(Ne(e))}var yA=fA;function mA(e,t){return e?.[t]}var bA=mA;function hA(e,t){var r=bA(e,t);return yA(r)?r:void 0}var Mt=hA,vA=Mt(re,"WeakMap"),Ta=vA;function wA(e,t){return e===t||e!==e&&t!==t}var kA=wA,xA=9007199254740991;function IA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xA}var CA=IA,mX=Object.prototype,AA="[object Arguments]";function SA(e){return Va(e)&&pi(e)==AA}var Jc=SA,Ud=Object.prototype,MA=Ud.hasOwnProperty,jA=Ud.propertyIsEnumerable,bX=Jc(function(){return arguments}())?Jc:function(e){return Va(e)&&MA.call(e,"callee")&&!jA.call(e,"callee")},Rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xc=Rd&&typeof module=="object"&&module&&!module.nodeType&&module,$A=Xc&&Xc.exports===Rd,ed=$A?re.Buffer:void 0,hX=ed?ed.isBuffer:void 0,EA="[object Arguments]",_A="[object Array]",LA="[object Boolean]",TA="[object Date]",OA="[object Error]",NA="[object Function]",DA="[object Map]",PA="[object Number]",zA="[object Object]",UA="[object RegExp]",RA="[object Set]",FA="[object String]",VA="[object WeakMap]",BA="[object ArrayBuffer]",qA="[object DataView]",GA="[object Float32Array]",YA="[object Float64Array]",HA="[object Int8Array]",ZA="[object Int16Array]",QA="[object Int32Array]",WA="[object Uint8Array]",KA="[object Uint8ClampedArray]",JA="[object Uint16Array]",XA="[object Uint32Array]",P={};P[GA]=P[YA]=P[HA]=P[ZA]=P[QA]=P[WA]=P[KA]=P[JA]=P[XA]=!0;P[EA]=P[_A]=P[BA]=P[LA]=P[qA]=P[TA]=P[OA]=P[NA]=P[DA]=P[PA]=P[zA]=P[UA]=P[RA]=P[FA]=P[VA]=!1;function eS(e){return Va(e)&&CA(e.length)&&!!P[pi(e)]}var tS=eS;function rS(e){return function(t){return e(t)}}var iS=rS,Fd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Fd&&typeof module=="object"&&module&&!module.nodeType&&module,nS=ri&&ri.exports===Fd,Sa=nS&&Dd.process,oS=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),td=oS,rd=td&&td.isTypedArray,vX=rd?iS(rd):tS,aS=Object.prototype,wX=aS.hasOwnProperty;function lS(e,t){return function(r){return e(t(r))}}var sS=lS,kX=sS(Object.keys,Object),uS=Object.prototype,xX=uS.hasOwnProperty,cS=Mt(Object,"create"),oi=cS;function dS(){this.__data__=oi?oi(null):{},this.size=0}var pS=dS;function gS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fS=gS,yS="__lodash_hash_undefined__",mS=Object.prototype,bS=mS.hasOwnProperty;function hS(e){var t=this.__data__;if(oi){var r=t[e];return r===yS?void 0:r}return bS.call(t,e)?t[e]:void 0}var vS=hS,wS=Object.prototype,kS=wS.hasOwnProperty;function xS(e){var t=this.__data__;return oi?t[e]!==void 0:kS.call(t,e)}var IS=xS,CS="__lodash_hash_undefined__";function AS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=oi&&t===void 0?CS:t,this}var SS=AS;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=pS;jt.prototype.delete=fS;jt.prototype.get=vS;jt.prototype.has=IS;jt.prototype.set=SS;var id=jt;function MS(){this.__data__=[],this.size=0}var jS=MS;function $S(e,t){for(var r=e.length;r--;)if(kA(e[r][0],t))return r;return-1}var Kn=$S,ES=Array.prototype,_S=ES.splice;function LS(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_S.call(t,r,1),--this.size,!0}var TS=LS;function OS(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var NS=OS;function DS(e){return Kn(this.__data__,e)>-1}var PS=DS;function zS(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var US=zS;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=jS;$t.prototype.delete=TS;$t.prototype.get=NS;$t.prototype.has=PS;$t.prototype.set=US;var Jn=$t,RS=Mt(re,"Map"),ai=RS;function FS(){this.size=0,this.__data__={hash:new id,map:new(ai||Jn),string:new id}}var VS=FS;function BS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qS=BS;function GS(e,t){var r=e.__data__;return qS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=GS;function YS(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var HS=YS;function ZS(e){return Xn(this,e).get(e)}var QS=ZS;function WS(e){return Xn(this,e).has(e)}var KS=WS;function JS(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var XS=JS;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=VS;Et.prototype.delete=HS;Et.prototype.get=QS;Et.prototype.has=KS;Et.prototype.set=XS;var Vd=Et;function eM(){this.__data__=new Jn,this.size=0}var tM=eM;function rM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var iM=rM;function nM(e){return this.__data__.get(e)}var oM=nM;function aM(e){return this.__data__.has(e)}var lM=aM,sM=200;function uM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!ai||i.length<sM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vd(i)}return r.set(e,t),this.size=r.size,this}var cM=uM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=tM;gi.prototype.delete=iM;gi.prototype.get=oM;gi.prototype.has=lM;gi.prototype.set=cM;var dM=Object.prototype,IX=dM.propertyIsEnumerable,pM=Mt(re,"DataView"),Oa=pM,gM=Mt(re,"Promise"),Na=gM,fM=Mt(re,"Set"),Da=fM,nd="[object Map]",yM="[object Object]",od="[object Promise]",ad="[object Set]",ld="[object WeakMap]",sd="[object DataView]",mM=Ne(Oa),bM=Ne(ai),hM=Ne(Na),vM=Ne(Da),wM=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=sd||ai&&vt(new ai)!=nd||Na&&vt(Na.resolve())!=od||Da&&vt(new Da)!=ad||Ta&&vt(new Ta)!=ld)&&(vt=function(e){var t=pi(e),r=t==yM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case mM:return sd;case bM:return nd;case hM:return od;case vM:return ad;case wM:return ld}return t});var CX=re.Uint8Array,kM="__lodash_hash_undefined__";function xM(e){return this.__data__.set(e,kM),this}var IM=xM;function CM(e){return this.__data__.has(e)}var AM=CM;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vd;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=IM;Pa.prototype.has=AM;var ud=xt?xt.prototype:void 0,AX=ud?ud.valueOf:void 0,SM=Object.prototype,SX=SM.hasOwnProperty,MM=Object.prototype,MX=MM.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$X=new RegExp(/[A-Fa-f0-9]{1}/,"g"),EX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jM(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 Bd(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 jM(i,t)}function $M(e){return e==null?[]:Array.isArray(e)?e:[e]}var cd=$M;function EM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function _M(e){return typeof e?.translate=="function"}function LM(e,t,r){return e&&EM(e)&&_M(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",dd=`ly.img.${eo}`,TM=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,pd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function OM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var NM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${pd}`]:"Create Video...",[`${pd}.description`]:"Create a video from the image"}}),{id:dd,type:"quick",kind:"image",label:`${TM}`,enable:II(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${dd}.button`,{label:OM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Bd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),DM=NM,to="animateBetweenImages",gd=`ly.img.${to}`,PM=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,fd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function zM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var UM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${fd}`]:"Animate Between Images...",[`${fd}.description`]:"Create a video transitioning between two images"}}),{id:gd,type:"quick",kind:"image",label:`${PM}`,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(`${gd}.button`,{label:zM(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=>Bd(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"})}}})}}),RM=UM,be="ly.img.ai.video-generation";function FM(e){return{async initialize({cesdk:t}){if(t==null)return;vI(t,ei,"1.72.1-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=`${ei}.action.label`;ui(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),VM(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:LM(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(cd(n).map(l=>l({cesdk:t}))),s=await Promise.all(cd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await _C("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(DM({cesdk:t})),Hn.get().register(RM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),kI({cesdk:t,panelId:be})):i()}}}function VM(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 BM=FM,qM=e=>({name:ei,version:"1.72.1-rc.0",...BM(e)}),qd=qM;var GM=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;Tt(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=()=>{Tt(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 Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(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 Tt(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]=Tt(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]=Tt(n,t,a)}return e}var YM=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")}},HM=typeof global=="object"&&global&&global.Object===Object&&global,Ep=HM,ZM=typeof self=="object"&&self&&self.Object===Object&&self,QM=Ep||ZM||Function("return this")(),ie=QM,WM=ie.Symbol,Ot=WM,_p=Object.prototype,KM=_p.hasOwnProperty,JM=_p.toString,fi=Ot?Ot.toStringTag:void 0;function XM(e){var t=KM.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=JM.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var ej=XM,tj=Object.prototype,rj=tj.toString;function ij(e){return rj.call(e)}var nj=ij,oj="[object Null]",aj="[object Undefined]",Gd=Ot?Ot.toStringTag:void 0;function lj(e){return e==null?e===void 0?aj:oj:Gd&&Gd in Object(e)?ej(e):nj(e)}var Ai=lj;function sj(e){return e!=null&&typeof e=="object"}var ll=sj,OX=Array.isArray;function uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Lp=uj,cj="[object AsyncFunction]",dj="[object Function]",pj="[object GeneratorFunction]",gj="[object Proxy]";function fj(e){if(!Lp(e))return!1;var t=Ai(e);return t==dj||t==pj||t==cj||t==gj}var yj=fj,mj=ie["__core-js_shared__"],Ba=mj,Yd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function bj(e){return!!Yd&&Yd in e}var hj=bj,vj=Function.prototype,wj=vj.toString;function kj(e){if(e!=null){try{return wj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=kj,xj=/[\\^$.*+?()[\]{}|]/g,Ij=/^\[object .+?Constructor\]$/,Cj=Function.prototype,Aj=Object.prototype,Sj=Cj.toString,Mj=Aj.hasOwnProperty,jj=RegExp("^"+Sj.call(Mj).replace(xj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $j(e){if(!Lp(e)||hj(e))return!1;var t=yj(e)?jj:Ij;return t.test(ze(e))}var Ej=$j;function _j(e,t){return e?.[t]}var Lj=_j;function Tj(e,t){var r=Lj(e,t);return Ej(r)?r:void 0}var Dt=Tj,Oj=Dt(ie,"WeakMap"),Wa=Oj;function Nj(e,t){return e===t||e!==e&&t!==t}var Dj=Nj,Pj=9007199254740991;function zj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Pj}var Uj=zj,NX=Object.prototype,Rj="[object Arguments]";function Fj(e){return ll(e)&&Ai(e)==Rj}var Hd=Fj,Tp=Object.prototype,Vj=Tp.hasOwnProperty,Bj=Tp.propertyIsEnumerable,DX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&Vj.call(e,"callee")&&!Bj.call(e,"callee")},Op=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Op&&typeof module=="object"&&module&&!module.nodeType&&module,qj=Zd&&Zd.exports===Op,Qd=qj?ie.Buffer:void 0,PX=Qd?Qd.isBuffer:void 0,Gj="[object Arguments]",Yj="[object Array]",Hj="[object Boolean]",Zj="[object Date]",Qj="[object Error]",Wj="[object Function]",Kj="[object Map]",Jj="[object Number]",Xj="[object Object]",e$="[object RegExp]",t$="[object Set]",r$="[object String]",i$="[object WeakMap]",n$="[object ArrayBuffer]",o$="[object DataView]",a$="[object Float32Array]",l$="[object Float64Array]",s$="[object Int8Array]",u$="[object Int16Array]",c$="[object Int32Array]",d$="[object Uint8Array]",p$="[object Uint8ClampedArray]",g$="[object Uint16Array]",f$="[object Uint32Array]",z={};z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=z[p$]=z[g$]=z[f$]=!0;z[Gj]=z[Yj]=z[n$]=z[Hj]=z[o$]=z[Zj]=z[Qj]=z[Wj]=z[Kj]=z[Jj]=z[Xj]=z[e$]=z[t$]=z[r$]=z[i$]=!1;function y$(e){return ll(e)&&Uj(e.length)&&!!z[Ai(e)]}var m$=y$;function b$(e){return function(t){return e(t)}}var h$=b$,Np=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Np&&typeof module=="object"&&module&&!module.nodeType&&module,v$=vi&&vi.exports===Np,qa=v$&&Ep.process,w$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Wd=w$,Kd=Wd&&Wd.isTypedArray,zX=Kd?h$(Kd):m$,k$=Object.prototype,UX=k$.hasOwnProperty;function x$(e,t){return function(r){return e(t(r))}}var I$=x$,RX=I$(Object.keys,Object),C$=Object.prototype,FX=C$.hasOwnProperty,A$=Dt(Object,"create"),ki=A$;function S$(){this.__data__=ki?ki(null):{},this.size=0}var M$=S$;function j$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $$=j$,E$="__lodash_hash_undefined__",_$=Object.prototype,L$=_$.hasOwnProperty;function T$(e){var t=this.__data__;if(ki){var r=t[e];return r===E$?void 0:r}return L$.call(t,e)?t[e]:void 0}var O$=T$,N$=Object.prototype,D$=N$.hasOwnProperty;function P$(e){var t=this.__data__;return ki?t[e]!==void 0:D$.call(t,e)}var z$=P$,U$="__lodash_hash_undefined__";function R$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?U$:t,this}var F$=R$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=M$;Pt.prototype.delete=$$;Pt.prototype.get=O$;Pt.prototype.has=z$;Pt.prototype.set=F$;var Jd=Pt;function V$(){this.__data__=[],this.size=0}var B$=V$;function q$(e,t){for(var r=e.length;r--;)if(Dj(e[r][0],t))return r;return-1}var ro=q$,G$=Array.prototype,Y$=G$.splice;function H$(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Y$.call(t,r,1),--this.size,!0}var Z$=H$;function Q$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var W$=Q$;function K$(e){return ro(this.__data__,e)>-1}var J$=K$;function X$(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var eE=X$;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=B$;zt.prototype.delete=Z$;zt.prototype.get=W$;zt.prototype.has=J$;zt.prototype.set=eE;var io=zt,tE=Dt(ie,"Map"),xi=tE;function rE(){this.size=0,this.__data__={hash:new Jd,map:new(xi||io),string:new Jd}}var iE=rE;function nE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var oE=nE;function aE(e,t){var r=e.__data__;return oE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=aE;function lE(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var sE=lE;function uE(e){return no(this,e).get(e)}var cE=uE;function dE(e){return no(this,e).has(e)}var pE=dE;function gE(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var fE=gE;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=iE;Ut.prototype.delete=sE;Ut.prototype.get=cE;Ut.prototype.has=pE;Ut.prototype.set=fE;var Dp=Ut;function yE(){this.__data__=new io,this.size=0}var mE=yE;function bE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var hE=bE;function vE(e){return this.__data__.get(e)}var wE=vE;function kE(e){return this.__data__.has(e)}var xE=kE,IE=200;function CE(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<IE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Dp(i)}return r.set(e,t),this.size=r.size,this}var AE=CE;function Si(e){var t=this.__data__=new io(e);this.size=t.size}Si.prototype.clear=mE;Si.prototype.delete=hE;Si.prototype.get=wE;Si.prototype.has=xE;Si.prototype.set=AE;var SE=Object.prototype,VX=SE.propertyIsEnumerable,ME=Dt(ie,"DataView"),Ka=ME,jE=Dt(ie,"Promise"),Ja=jE,$E=Dt(ie,"Set"),Xa=$E,Xd="[object Map]",EE="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",_E=ze(Ka),LE=ze(xi),TE=ze(Ja),OE=ze(Xa),NE=ze(Wa),_t=Ai;(Ka&&_t(new Ka(new ArrayBuffer(1)))!=ip||xi&&_t(new xi)!=Xd||Ja&&_t(Ja.resolve())!=ep||Xa&&_t(new Xa)!=tp||Wa&&_t(new Wa)!=rp)&&(_t=function(e){var t=Ai(e),r=t==EE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case _E:return ip;case LE:return Xd;case TE:return ep;case OE:return tp;case NE:return rp}return t});var BX=ie.Uint8Array,DE="__lodash_hash_undefined__";function PE(e){return this.__data__.set(e,DE),this}var zE=PE;function UE(e){return this.__data__.has(e)}var RE=UE;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Dp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=zE;el.prototype.has=RE;var np=Ot?Ot.prototype:void 0,qX=np?np.valueOf:void 0,FE=Object.prototype,GX=FE.hasOwnProperty,VE=Object.prototype,YX=VE.hasOwnProperty,HX=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 Pp(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 BE(e,t){let r=await Pp(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 qE(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 Pp(i,t)}function GE(e){return e!==void 0}var YE=GE;function sl(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 Mi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ji(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zp=class Up{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 Up),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))}},HE=class Rp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Rp),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 ZE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function QE({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 WE=QE,Ga="ly.img.ai.temp";async function KE(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function JE(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 Fp(){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 XE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function e_(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 ul(e){return e instanceof Error&&e.name==="AbortError"}function t_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function r_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
210
210
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
211
211
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
212
212
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function i_(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 op=i_;function n_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),o_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:JE(e)}))}function o_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var ap=n_,a_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",cl=a_;function l_(e,t,r){switch(t){case"image":return s_(e,r[t]);case"video":return u_(e,r[t]);case"sticker":return c_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function s_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function u_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:cl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function c_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var d_=l_;async function p_(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 g_(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 f_(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 y_(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 m_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function g_(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 f_(e,t,r){let i=t.width,n=t.height,a=await XE(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 y_(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 m_(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 Vp=p_;function b_(e){switch(e.userFlow){case"placeholder":return v_(e);case"generation-only":return h_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function h_(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=Fp(),c=await Vp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function v_(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=Fp(),c=d_(s,a,o);if(i=await KE(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 l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Vp(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)&&(ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var w_=b_;function dl(e){return`${e}.generating`}function k_(e){return`${e}.abort`}function x_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(k_(d),()=>{}),y=c.global(dl(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await w_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ap(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;I_(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ul(b))return;ap(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function I_(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 Bp=x_;async function C_({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(dl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Bp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var A_=C_;function qp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function bi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=qp(e,t.$ref),n={...bi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=bi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>bi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=bi(e,t[n],r));return i}return t}function S_(e){return bi(e,{...e})}function M_(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 j_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return $_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function $_(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=E_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function E_(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 Gp=j_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Yp(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 Hp(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?__(e,c,r,i,n,a,o,s):Zp(e,c,r,i,n,a,o,s);case"boolean":return Qp(e,c,r,i,n,a,o,s);case"number":case"integer":return Wp(e,c,r,i,n,a,o,s);case"object":return tl(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 L_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function tl(e,t,r,i,n,a,o,s){let c=Gp(t.schema??{},i).reduce((l,u)=>{let d=Hp(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 Zp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=Mi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=ji(d,m,f,t.schema.default,""),k=l(p,v),w=T_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function __(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:y,icons:f}=Yp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),v=Mi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=ji(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Qp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=Mi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!ji(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Wp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Mi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=ji(d,v,m,k,k),x=l(p,w);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,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function L_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Yp(t.schema),x=Mi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Zp,boolean:Qp,integer:Wp,object:tl},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:xe(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>tl(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=ji(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function T_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var O_=Hp,N_={"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 lp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function sp(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]||lp(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]||lp(g);n[a(l.id,g)]=y}})}});let c={...N_,...n};Object.keys(c).length>0&&sl(r.cesdk,{en:c})}function up(e){return typeof e.document=="function"?e.document():e.document}function cp(e,t,r){let i=S_(e),n=qp(i,t.inputReference);if(!M_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Gp(a,t);return{inputSchema:a,properties:o}}function dp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=O_(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Bp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function D_(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=up(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=cp(c,s,a.debug);return sp(y,i,r,i.kind),dp(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(up(s)).then(g=>{let{inputSchema:y,properties:f}=cp(g,s,a.debug);sp(f,i,r,i.kind),u=dp(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.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var P_=D_;async function z_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return A_(e,t);case"schema":return P_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var U_=z_;function R_(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 GM(o,r)),o}return i}var F_=R_;function V_(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 B_=V_,Ya="@imgly/plugin-ai-generation",q_=`
@@ -271,7 +271,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
271
271
  </symbol>
272
272
  </svg>
273
273
  `,G_=q_;function Y_(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 Kp(2e3),await H_(t,e,r)):i(t,r)}async function H_(e,t,r){switch(t.kind){case"image":return Z_(e,t,r);case"video":return Q_(e,t,r);case"text":return W_(e,t,r);case"audio":return J_(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Z_(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 qE(s,r),l=await BE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function Q_(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function W_(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=yi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=yi(n,o)}else"customPrompt"in e?a=yi(n,"custom"):a=yi(n,"improved");else a=yi(n,"generated");return K_(a,r.abortSignal)}async function*K_(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 Kp(100)}return{kind:"text",text:e}}function yi(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 J_(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:X_(220,i),duration:i,thumbnailUrl:void 0}}function X_(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 eL(i,44100)}function eL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!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 Kp(e){return new Promise(t=>{setTimeout(t,e)})}var tL=Y_,rL="USER_CANCEL";function iL(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=ZE([...e.provider.output.middleware??[],...r?.middlewares??[],WE({enable:r?.debug}),tL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:e_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===rL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var nL=iL;async function oL(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=zp.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=F_(a),s=B_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=nL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await U_(a,c);t_(r.cesdk,"@imgly/plugin-ai-generation",G_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return HE.get().register(u),u}var Ha=oL;function aL(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 YM(n,r,i);return r.engine.asset.addSource(a),a.id}var lL=aL;function hi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function sL(e,t,r,i){let{cesdk:n}=r;sl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ha(e,u,r,i)));o.push(...l),a=cL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ha(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ha(e,d,r,i)));o.push(...u),a=uL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=lL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(YE)}),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 uL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:hi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:hi(e,"fromText.label"),icon:f.value!=="fromText"&&pp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:hi(e,"fromImage.label"),icon:f.value!=="fromImage"&&pp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function cL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function pp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var gp=sL,dL=typeof global=="object"&&global&&global.Object===Object&&global,Jp=dL,pL=typeof self=="object"&&self&&self.Object===Object&&self,gL=Jp||pL||Function("return this")(),ne=gL,fL=ne.Symbol,Nt=fL,Xp=Object.prototype,yL=Xp.hasOwnProperty,mL=Xp.toString,mi=Nt?Nt.toStringTag:void 0;function bL(e){var t=yL.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=mL.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var hL=bL,vL=Object.prototype,wL=vL.toString;function kL(e){return wL.call(e)}var xL=kL,IL="[object Null]",CL="[object Undefined]",fp=Nt?Nt.toStringTag:void 0;function AL(e){return e==null?e===void 0?CL:IL:fp&&fp in Object(e)?hL(e):xL(e)}var $i=AL;function SL(e){return e!=null&&typeof e=="object"}var pl=SL,WX=Array.isArray;function ML(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var eg=ML,jL="[object AsyncFunction]",$L="[object Function]",EL="[object GeneratorFunction]",_L="[object Proxy]";function LL(e){if(!eg(e))return!1;var t=$i(e);return t==$L||t==EL||t==jL||t==_L}var TL=LL,OL=ne["__core-js_shared__"],Za=OL,yp=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NL(e){return!!yp&&yp in e}var DL=NL,PL=Function.prototype,zL=PL.toString;function UL(e){if(e!=null){try{return zL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=UL,RL=/[\\^$.*+?()[\]{}|]/g,FL=/^\[object .+?Constructor\]$/,VL=Function.prototype,BL=Object.prototype,qL=VL.toString,GL=BL.hasOwnProperty,YL=RegExp("^"+qL.call(GL).replace(RL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function HL(e){if(!eg(e)||DL(e))return!1;var t=TL(e)?YL:FL;return t.test(Ue(e))}var ZL=HL;function QL(e,t){return e?.[t]}var WL=QL;function KL(e,t){var r=WL(e,t);return ZL(r)?r:void 0}var Rt=KL,JL=Rt(ne,"WeakMap"),rl=JL;function XL(e,t){return e===t||e!==e&&t!==t}var eT=XL,tT=9007199254740991;function rT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tT}var iT=rT,KX=Object.prototype,nT="[object Arguments]";function oT(e){return pl(e)&&$i(e)==nT}var mp=oT,tg=Object.prototype,aT=tg.hasOwnProperty,lT=tg.propertyIsEnumerable,JX=mp(function(){return arguments}())?mp:function(e){return pl(e)&&aT.call(e,"callee")&&!lT.call(e,"callee")},rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bp=rg&&typeof module=="object"&&module&&!module.nodeType&&module,sT=bp&&bp.exports===rg,hp=sT?ne.Buffer:void 0,XX=hp?hp.isBuffer:void 0,uT="[object Arguments]",cT="[object Array]",dT="[object Boolean]",pT="[object Date]",gT="[object Error]",fT="[object Function]",yT="[object Map]",mT="[object Number]",bT="[object Object]",hT="[object RegExp]",vT="[object Set]",wT="[object String]",kT="[object WeakMap]",xT="[object ArrayBuffer]",IT="[object DataView]",CT="[object Float32Array]",AT="[object Float64Array]",ST="[object Int8Array]",MT="[object Int16Array]",jT="[object Int32Array]",$T="[object Uint8Array]",ET="[object Uint8ClampedArray]",_T="[object Uint16Array]",LT="[object Uint32Array]",U={};U[CT]=U[AT]=U[ST]=U[MT]=U[jT]=U[$T]=U[ET]=U[_T]=U[LT]=!0;U[uT]=U[cT]=U[xT]=U[dT]=U[IT]=U[pT]=U[gT]=U[fT]=U[yT]=U[mT]=U[bT]=U[hT]=U[vT]=U[wT]=U[kT]=!1;function TT(e){return pl(e)&&iT(e.length)&&!!U[$i(e)]}var OT=TT;function NT(e){return function(t){return e(t)}}var DT=NT,ig=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=ig&&typeof module=="object"&&module&&!module.nodeType&&module,PT=wi&&wi.exports===ig,Qa=PT&&Jp.process,zT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),vp=zT,wp=vp&&vp.isTypedArray,eee=wp?DT(wp):OT,UT=Object.prototype,tee=UT.hasOwnProperty;function RT(e,t){return function(r){return e(t(r))}}var FT=RT,ree=FT(Object.keys,Object),VT=Object.prototype,iee=VT.hasOwnProperty,BT=Rt(Object,"create"),Ii=BT;function qT(){this.__data__=Ii?Ii(null):{},this.size=0}var GT=qT;function YT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HT=YT,ZT="__lodash_hash_undefined__",QT=Object.prototype,WT=QT.hasOwnProperty;function KT(e){var t=this.__data__;if(Ii){var r=t[e];return r===ZT?void 0:r}return WT.call(t,e)?t[e]:void 0}var JT=KT,XT=Object.prototype,eO=XT.hasOwnProperty;function tO(e){var t=this.__data__;return Ii?t[e]!==void 0:eO.call(t,e)}var rO=tO,iO="__lodash_hash_undefined__";function nO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?iO:t,this}var oO=nO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=GT;Ft.prototype.delete=HT;Ft.prototype.get=JT;Ft.prototype.has=rO;Ft.prototype.set=oO;var kp=Ft;function aO(){this.__data__=[],this.size=0}var lO=aO;function sO(e,t){for(var r=e.length;r--;)if(eT(e[r][0],t))return r;return-1}var oo=sO,uO=Array.prototype,cO=uO.splice;function dO(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():cO.call(t,r,1),--this.size,!0}var pO=dO;function gO(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var fO=gO;function yO(e){return oo(this.__data__,e)>-1}var mO=yO;function bO(e,t){var r=this.__data__,i=oo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var hO=bO;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=lO;Vt.prototype.delete=pO;Vt.prototype.get=fO;Vt.prototype.has=mO;Vt.prototype.set=hO;var ao=Vt,vO=Rt(ne,"Map"),Ci=vO;function wO(){this.size=0,this.__data__={hash:new kp,map:new(Ci||ao),string:new kp}}var kO=wO;function xO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var IO=xO;function CO(e,t){var r=e.__data__;return IO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=CO;function AO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var SO=AO;function MO(e){return lo(this,e).get(e)}var jO=MO;function $O(e){return lo(this,e).has(e)}var EO=$O;function _O(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LO=_O;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=kO;Bt.prototype.delete=SO;Bt.prototype.get=jO;Bt.prototype.has=EO;Bt.prototype.set=LO;var ng=Bt;function TO(){this.__data__=new ao,this.size=0}var OO=TO;function NO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var DO=NO;function PO(e){return this.__data__.get(e)}var zO=PO;function UO(e){return this.__data__.has(e)}var RO=UO,FO=200;function VO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<FO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ng(i)}return r.set(e,t),this.size=r.size,this}var BO=VO;function Ei(e){var t=this.__data__=new ao(e);this.size=t.size}Ei.prototype.clear=OO;Ei.prototype.delete=DO;Ei.prototype.get=zO;Ei.prototype.has=RO;Ei.prototype.set=BO;var qO=Object.prototype,nee=qO.propertyIsEnumerable,GO=Rt(ne,"DataView"),il=GO,YO=Rt(ne,"Promise"),nl=YO,HO=Rt(ne,"Set"),ol=HO,xp="[object Map]",ZO="[object Object]",Ip="[object Promise]",Cp="[object Set]",Ap="[object WeakMap]",Sp="[object DataView]",QO=Ue(il),WO=Ue(Ci),KO=Ue(nl),JO=Ue(ol),XO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=Sp||Ci&&Lt(new Ci)!=xp||nl&&Lt(nl.resolve())!=Ip||ol&&Lt(new ol)!=Cp||rl&&Lt(new rl)!=Ap)&&(Lt=function(e){var t=$i(e),r=t==ZO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case QO:return Sp;case WO:return xp;case KO:return Ip;case JO:return Cp;case XO:return Ap}return t});var oee=ne.Uint8Array,eN="__lodash_hash_undefined__";function tN(e){return this.__data__.set(e,eN),this}var rN=tN;function iN(e){return this.__data__.has(e)}var nN=iN;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ng;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=rN;al.prototype.has=nN;var Mp=Nt?Nt.prototype:void 0,aee=Mp?Mp.valueOf:void 0,oN=Object.prototype,lee=oN.hasOwnProperty,aN=Object.prototype,see=aN.hasOwnProperty,uee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),cee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),dee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lN(e){return e==null?[]:Array.isArray(e)?e:[e]}var jp=lN;function sN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function uN(e){return typeof e?.translate=="function"}function $p(e,t,r){return e&&sN(e)&&uN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function cN(e){return{async initialize({cesdk:t}){if(t==null)return;r_(t,we,"1.72.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`;sl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),dN(e);let n=zp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:$p(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:$p(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(jp(s).map(f=>f({cesdk:t}))),u=await Promise.all(jp(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 gp("audio",l,{cesdk:t},e),y=await gp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),op({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),op({cesdk:t,panelId:De})):o()}}}function dN(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 pN=cN,gN=e=>({name:we,version:"1.72.0",...pN(e)}),og=gN;var fN="@imgly/plugin-ai-text-generation",yN=`
274
+ `,"+")}`}}async function Q_(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function W_(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=yi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=yi(n,o)}else"customPrompt"in e?a=yi(n,"custom"):a=yi(n,"improved");else a=yi(n,"generated");return K_(a,r.abortSignal)}async function*K_(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 Kp(100)}return{kind:"text",text:e}}function yi(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 J_(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:X_(220,i),duration:i,thumbnailUrl:void 0}}function X_(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 eL(i,44100)}function eL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!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 Kp(e){return new Promise(t=>{setTimeout(t,e)})}var tL=Y_,rL="USER_CANCEL";function iL(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=ZE([...e.provider.output.middleware??[],...r?.middlewares??[],WE({enable:r?.debug}),tL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:e_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===rL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var nL=iL;async function oL(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=zp.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=F_(a),s=B_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=nL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await U_(a,c);t_(r.cesdk,"@imgly/plugin-ai-generation",G_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return HE.get().register(u),u}var Ha=oL;function aL(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 YM(n,r,i);return r.engine.asset.addSource(a),a.id}var lL=aL;function hi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function sL(e,t,r,i){let{cesdk:n}=r;sl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ha(e,u,r,i)));o.push(...l),a=cL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ha(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ha(e,d,r,i)));o.push(...u),a=uL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=lL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(YE)}),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 uL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:hi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:hi(e,"fromText.label"),icon:f.value!=="fromText"&&pp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:hi(e,"fromImage.label"),icon:f.value!=="fromImage"&&pp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function cL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function pp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var gp=sL,dL=typeof global=="object"&&global&&global.Object===Object&&global,Jp=dL,pL=typeof self=="object"&&self&&self.Object===Object&&self,gL=Jp||pL||Function("return this")(),ne=gL,fL=ne.Symbol,Nt=fL,Xp=Object.prototype,yL=Xp.hasOwnProperty,mL=Xp.toString,mi=Nt?Nt.toStringTag:void 0;function bL(e){var t=yL.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=mL.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var hL=bL,vL=Object.prototype,wL=vL.toString;function kL(e){return wL.call(e)}var xL=kL,IL="[object Null]",CL="[object Undefined]",fp=Nt?Nt.toStringTag:void 0;function AL(e){return e==null?e===void 0?CL:IL:fp&&fp in Object(e)?hL(e):xL(e)}var $i=AL;function SL(e){return e!=null&&typeof e=="object"}var pl=SL,WX=Array.isArray;function ML(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var eg=ML,jL="[object AsyncFunction]",$L="[object Function]",EL="[object GeneratorFunction]",_L="[object Proxy]";function LL(e){if(!eg(e))return!1;var t=$i(e);return t==$L||t==EL||t==jL||t==_L}var TL=LL,OL=ne["__core-js_shared__"],Za=OL,yp=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NL(e){return!!yp&&yp in e}var DL=NL,PL=Function.prototype,zL=PL.toString;function UL(e){if(e!=null){try{return zL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=UL,RL=/[\\^$.*+?()[\]{}|]/g,FL=/^\[object .+?Constructor\]$/,VL=Function.prototype,BL=Object.prototype,qL=VL.toString,GL=BL.hasOwnProperty,YL=RegExp("^"+qL.call(GL).replace(RL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function HL(e){if(!eg(e)||DL(e))return!1;var t=TL(e)?YL:FL;return t.test(Ue(e))}var ZL=HL;function QL(e,t){return e?.[t]}var WL=QL;function KL(e,t){var r=WL(e,t);return ZL(r)?r:void 0}var Rt=KL,JL=Rt(ne,"WeakMap"),rl=JL;function XL(e,t){return e===t||e!==e&&t!==t}var eT=XL,tT=9007199254740991;function rT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tT}var iT=rT,KX=Object.prototype,nT="[object Arguments]";function oT(e){return pl(e)&&$i(e)==nT}var mp=oT,tg=Object.prototype,aT=tg.hasOwnProperty,lT=tg.propertyIsEnumerable,JX=mp(function(){return arguments}())?mp:function(e){return pl(e)&&aT.call(e,"callee")&&!lT.call(e,"callee")},rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bp=rg&&typeof module=="object"&&module&&!module.nodeType&&module,sT=bp&&bp.exports===rg,hp=sT?ne.Buffer:void 0,XX=hp?hp.isBuffer:void 0,uT="[object Arguments]",cT="[object Array]",dT="[object Boolean]",pT="[object Date]",gT="[object Error]",fT="[object Function]",yT="[object Map]",mT="[object Number]",bT="[object Object]",hT="[object RegExp]",vT="[object Set]",wT="[object String]",kT="[object WeakMap]",xT="[object ArrayBuffer]",IT="[object DataView]",CT="[object Float32Array]",AT="[object Float64Array]",ST="[object Int8Array]",MT="[object Int16Array]",jT="[object Int32Array]",$T="[object Uint8Array]",ET="[object Uint8ClampedArray]",_T="[object Uint16Array]",LT="[object Uint32Array]",U={};U[CT]=U[AT]=U[ST]=U[MT]=U[jT]=U[$T]=U[ET]=U[_T]=U[LT]=!0;U[uT]=U[cT]=U[xT]=U[dT]=U[IT]=U[pT]=U[gT]=U[fT]=U[yT]=U[mT]=U[bT]=U[hT]=U[vT]=U[wT]=U[kT]=!1;function TT(e){return pl(e)&&iT(e.length)&&!!U[$i(e)]}var OT=TT;function NT(e){return function(t){return e(t)}}var DT=NT,ig=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=ig&&typeof module=="object"&&module&&!module.nodeType&&module,PT=wi&&wi.exports===ig,Qa=PT&&Jp.process,zT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),vp=zT,wp=vp&&vp.isTypedArray,eee=wp?DT(wp):OT,UT=Object.prototype,tee=UT.hasOwnProperty;function RT(e,t){return function(r){return e(t(r))}}var FT=RT,ree=FT(Object.keys,Object),VT=Object.prototype,iee=VT.hasOwnProperty,BT=Rt(Object,"create"),Ii=BT;function qT(){this.__data__=Ii?Ii(null):{},this.size=0}var GT=qT;function YT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HT=YT,ZT="__lodash_hash_undefined__",QT=Object.prototype,WT=QT.hasOwnProperty;function KT(e){var t=this.__data__;if(Ii){var r=t[e];return r===ZT?void 0:r}return WT.call(t,e)?t[e]:void 0}var JT=KT,XT=Object.prototype,eO=XT.hasOwnProperty;function tO(e){var t=this.__data__;return Ii?t[e]!==void 0:eO.call(t,e)}var rO=tO,iO="__lodash_hash_undefined__";function nO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?iO:t,this}var oO=nO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=GT;Ft.prototype.delete=HT;Ft.prototype.get=JT;Ft.prototype.has=rO;Ft.prototype.set=oO;var kp=Ft;function aO(){this.__data__=[],this.size=0}var lO=aO;function sO(e,t){for(var r=e.length;r--;)if(eT(e[r][0],t))return r;return-1}var oo=sO,uO=Array.prototype,cO=uO.splice;function dO(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():cO.call(t,r,1),--this.size,!0}var pO=dO;function gO(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var fO=gO;function yO(e){return oo(this.__data__,e)>-1}var mO=yO;function bO(e,t){var r=this.__data__,i=oo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var hO=bO;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=lO;Vt.prototype.delete=pO;Vt.prototype.get=fO;Vt.prototype.has=mO;Vt.prototype.set=hO;var ao=Vt,vO=Rt(ne,"Map"),Ci=vO;function wO(){this.size=0,this.__data__={hash:new kp,map:new(Ci||ao),string:new kp}}var kO=wO;function xO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var IO=xO;function CO(e,t){var r=e.__data__;return IO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=CO;function AO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var SO=AO;function MO(e){return lo(this,e).get(e)}var jO=MO;function $O(e){return lo(this,e).has(e)}var EO=$O;function _O(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LO=_O;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=kO;Bt.prototype.delete=SO;Bt.prototype.get=jO;Bt.prototype.has=EO;Bt.prototype.set=LO;var ng=Bt;function TO(){this.__data__=new ao,this.size=0}var OO=TO;function NO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var DO=NO;function PO(e){return this.__data__.get(e)}var zO=PO;function UO(e){return this.__data__.has(e)}var RO=UO,FO=200;function VO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<FO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ng(i)}return r.set(e,t),this.size=r.size,this}var BO=VO;function Ei(e){var t=this.__data__=new ao(e);this.size=t.size}Ei.prototype.clear=OO;Ei.prototype.delete=DO;Ei.prototype.get=zO;Ei.prototype.has=RO;Ei.prototype.set=BO;var qO=Object.prototype,nee=qO.propertyIsEnumerable,GO=Rt(ne,"DataView"),il=GO,YO=Rt(ne,"Promise"),nl=YO,HO=Rt(ne,"Set"),ol=HO,xp="[object Map]",ZO="[object Object]",Ip="[object Promise]",Cp="[object Set]",Ap="[object WeakMap]",Sp="[object DataView]",QO=Ue(il),WO=Ue(Ci),KO=Ue(nl),JO=Ue(ol),XO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=Sp||Ci&&Lt(new Ci)!=xp||nl&&Lt(nl.resolve())!=Ip||ol&&Lt(new ol)!=Cp||rl&&Lt(new rl)!=Ap)&&(Lt=function(e){var t=$i(e),r=t==ZO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case QO:return Sp;case WO:return xp;case KO:return Ip;case JO:return Cp;case XO:return Ap}return t});var oee=ne.Uint8Array,eN="__lodash_hash_undefined__";function tN(e){return this.__data__.set(e,eN),this}var rN=tN;function iN(e){return this.__data__.has(e)}var nN=iN;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ng;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=rN;al.prototype.has=nN;var Mp=Nt?Nt.prototype:void 0,aee=Mp?Mp.valueOf:void 0,oN=Object.prototype,lee=oN.hasOwnProperty,aN=Object.prototype,see=aN.hasOwnProperty,uee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),cee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),dee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lN(e){return e==null?[]:Array.isArray(e)?e:[e]}var jp=lN;function sN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function uN(e){return typeof e?.translate=="function"}function $p(e,t,r){return e&&sN(e)&&uN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function cN(e){return{async initialize({cesdk:t}){if(t==null)return;r_(t,we,"1.72.1-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`;sl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),dN(e);let n=zp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:$p(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:$p(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(jp(s).map(f=>f({cesdk:t}))),u=await Promise.all(jp(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 gp("audio",l,{cesdk:t},e),y=await gp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),op({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),op({cesdk:t,panelId:De})):o()}}}function dN(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 pN=cN,gN=e=>({name:we,version:"1.72.1-rc.0",...pN(e)}),og=gN;var fN="@imgly/plugin-ai-text-generation",yN=`
275
275
  <svg>
276
276
  <symbol
277
277
  fill="none"
@@ -583,7 +583,7 @@ ${t}
583
583
  </change_text_to>
584
584
 
585
585
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
586
- `}var BB=VB,Io="changeTextTo",Ie=`ly.img.${Io}`,Zg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Qg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function wl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Qg}`]:"Change Text to...",[`${Qg}.prompt`]:"Change Text to...",[`${Zg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Zg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:wl(l,"prompt"),placeholder:wl(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:BB(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:wl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),GB=qB,E1="@imgly/plugin-ai-text-generation-web",YB=["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 HB(e){return{async initialize({cesdk:t}){if(t==null)return;Sz(t,E1,"1.72.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(fN,mN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),ZB(e);let r=Ol.get();r.register(lB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(jB({cesdk:t})),r.register(OB({cesdk:t})),r.register(FB({cesdk:t})),r.register(GB({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 TU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await rR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:YB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function ZB(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 QB=HB,WB=e=>({name:E1,version:"1.72.0",...QB(e)}),_1=WB;var KB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var JB=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")}},XB=typeof global=="object"&&global&&global.Object===Object&&global,ff=XB,eq=typeof self=="object"&&self&&self.Object===Object&&self,tq=ff||eq||Function("return this")(),le=tq,rq=le.Symbol,ar=rq,yf=Object.prototype,iq=yf.hasOwnProperty,nq=yf.toString,Wi=ar?ar.toStringTag:void 0;function oq(e){var t=iq.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=nq.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var aq=oq,lq=Object.prototype,sq=lq.toString;function uq(e){return sq.call(e)}var cq=uq,dq="[object Null]",pq="[object Undefined]",L1=ar?ar.toStringTag:void 0;function gq(e){return e==null?e===void 0?pq:dq:L1&&L1 in Object(e)?aq(e):cq(e)}var un=gq;function fq(e){return e!=null&&typeof e=="object"}var is=fq,Kee=Array.isArray;function yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var mf=yq,mq="[object AsyncFunction]",bq="[object Function]",hq="[object GeneratorFunction]",vq="[object Proxy]";function wq(e){if(!mf(e))return!1;var t=un(e);return t==bq||t==hq||t==mq||t==vq}var kq=wq,xq=le["__core-js_shared__"],Ul=xq,T1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iq(e){return!!T1&&T1 in e}var Cq=Iq,Aq=Function.prototype,Sq=Aq.toString;function Mq(e){if(e!=null){try{return Sq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Mq,jq=/[\\^$.*+?()[\]{}|]/g,$q=/^\[object .+?Constructor\]$/,Eq=Function.prototype,_q=Object.prototype,Lq=Eq.toString,Tq=_q.hasOwnProperty,Oq=RegExp("^"+Lq.call(Tq).replace(jq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Nq(e){if(!mf(e)||Cq(e))return!1;var t=kq(e)?Oq:$q;return t.test(qe(e))}var Dq=Nq;function Pq(e,t){return e?.[t]}var zq=Pq;function Uq(e,t){var r=zq(e,t);return Dq(r)?r:void 0}var sr=Uq,Rq=sr(le,"WeakMap"),Yl=Rq;function Fq(e,t){return e===t||e!==e&&t!==t}var Vq=Fq,Bq=9007199254740991;function qq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Bq}var Gq=qq,Jee=Object.prototype,Yq="[object Arguments]";function Hq(e){return is(e)&&un(e)==Yq}var O1=Hq,bf=Object.prototype,Zq=bf.hasOwnProperty,Qq=bf.propertyIsEnumerable,Xee=O1(function(){return arguments}())?O1:function(e){return is(e)&&Zq.call(e,"callee")&&!Qq.call(e,"callee")},hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,N1=hf&&typeof module=="object"&&module&&!module.nodeType&&module,Wq=N1&&N1.exports===hf,D1=Wq?le.Buffer:void 0,ete=D1?D1.isBuffer:void 0,Kq="[object Arguments]",Jq="[object Array]",Xq="[object Boolean]",eG="[object Date]",tG="[object Error]",rG="[object Function]",iG="[object Map]",nG="[object Number]",oG="[object Object]",aG="[object RegExp]",lG="[object Set]",sG="[object String]",uG="[object WeakMap]",cG="[object ArrayBuffer]",dG="[object DataView]",pG="[object Float32Array]",gG="[object Float64Array]",fG="[object Int8Array]",yG="[object Int16Array]",mG="[object Int32Array]",bG="[object Uint8Array]",hG="[object Uint8ClampedArray]",vG="[object Uint16Array]",wG="[object Uint32Array]",V={};V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[bG]=V[hG]=V[vG]=V[wG]=!0;V[Kq]=V[Jq]=V[cG]=V[Xq]=V[dG]=V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=V[oG]=V[aG]=V[lG]=V[sG]=V[uG]=!1;function kG(e){return is(e)&&Gq(e.length)&&!!V[un(e)]}var xG=kG;function IG(e){return function(t){return e(t)}}var CG=IG,vf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=vf&&typeof module=="object"&&module&&!module.nodeType&&module,AG=rn&&rn.exports===vf,Rl=AG&&ff.process,SG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),P1=SG,z1=P1&&P1.isTypedArray,tte=z1?CG(z1):xG,MG=Object.prototype,rte=MG.hasOwnProperty;function jG(e,t){return function(r){return e(t(r))}}var $G=jG,ite=$G(Object.keys,Object),EG=Object.prototype,nte=EG.hasOwnProperty,_G=sr(Object,"create"),on=_G;function LG(){this.__data__=on?on(null):{},this.size=0}var TG=LG;function OG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var NG=OG,DG="__lodash_hash_undefined__",PG=Object.prototype,zG=PG.hasOwnProperty;function UG(e){var t=this.__data__;if(on){var r=t[e];return r===DG?void 0:r}return zG.call(t,e)?t[e]:void 0}var RG=UG,FG=Object.prototype,VG=FG.hasOwnProperty;function BG(e){var t=this.__data__;return on?t[e]!==void 0:VG.call(t,e)}var qG=BG,GG="__lodash_hash_undefined__";function YG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?GG:t,this}var HG=YG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=TG;ur.prototype.delete=NG;ur.prototype.get=RG;ur.prototype.has=qG;ur.prototype.set=HG;var U1=ur;function ZG(){this.__data__=[],this.size=0}var QG=ZG;function WG(e,t){for(var r=e.length;r--;)if(Vq(e[r][0],t))return r;return-1}var Co=WG,KG=Array.prototype,JG=KG.splice;function XG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():JG.call(t,r,1),--this.size,!0}var eY=XG;function tY(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var rY=tY;function iY(e){return Co(this.__data__,e)>-1}var nY=iY;function oY(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var aY=oY;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=QG;cr.prototype.delete=eY;cr.prototype.get=rY;cr.prototype.has=nY;cr.prototype.set=aY;var Ao=cr,lY=sr(le,"Map"),an=lY;function sY(){this.size=0,this.__data__={hash:new U1,map:new(an||Ao),string:new U1}}var uY=sY;function cY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dY=cY;function pY(e,t){var r=e.__data__;return dY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var So=pY;function gY(e){var t=So(this,e).delete(e);return this.size-=t?1:0,t}var fY=gY;function yY(e){return So(this,e).get(e)}var mY=yY;function bY(e){return So(this,e).has(e)}var hY=bY;function vY(e,t){var r=So(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wY=vY;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=uY;dr.prototype.delete=fY;dr.prototype.get=mY;dr.prototype.has=hY;dr.prototype.set=wY;var wf=dr;function kY(){this.__data__=new Ao,this.size=0}var xY=kY;function IY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CY=IY;function AY(e){return this.__data__.get(e)}var SY=AY;function MY(e){return this.__data__.has(e)}var jY=MY,$Y=200;function EY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<$Y-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new wf(i)}return r.set(e,t),this.size=r.size,this}var _Y=EY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=xY;cn.prototype.delete=CY;cn.prototype.get=SY;cn.prototype.has=jY;cn.prototype.set=_Y;var LY=Object.prototype,ote=LY.propertyIsEnumerable,TY=sr(le,"DataView"),Hl=TY,OY=sr(le,"Promise"),Zl=OY,NY=sr(le,"Set"),Ql=NY,R1="[object Map]",DY="[object Object]",F1="[object Promise]",V1="[object Set]",B1="[object WeakMap]",q1="[object DataView]",PY=qe(Hl),zY=qe(an),UY=qe(Zl),RY=qe(Ql),FY=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=q1||an&&ir(new an)!=R1||Zl&&ir(Zl.resolve())!=F1||Ql&&ir(new Ql)!=V1||Yl&&ir(new Yl)!=B1)&&(ir=function(e){var t=un(e),r=t==DY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case PY:return q1;case zY:return R1;case UY:return F1;case RY:return V1;case FY:return B1}return t});var ate=le.Uint8Array,VY="__lodash_hash_undefined__";function BY(e){return this.__data__.set(e,VY),this}var qY=BY;function GY(e){return this.__data__.has(e)}var YY=GY;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new wf;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=qY;Wl.prototype.has=YY;var G1=ar?ar.prototype:void 0,lte=G1?G1.valueOf:void 0,HY=Object.prototype,ste=HY.hasOwnProperty,ZY=Object.prototype,ute=ZY.hasOwnProperty,cte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function kf(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 QY(e,t){let r=await kf(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 WY(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 kf(i,t)}function KY(e){return e!==void 0}var JY=KY;function ns(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 dn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var xf=class If{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 If),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))}},XY=class Cf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cf),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 eH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function tH({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 rH=tH,Fl="ly.img.ai.temp";async function iH(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function nH(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 Af(){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 oH(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 aH(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 os(e){return e instanceof Error&&e.name==="AbortError"}function lH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function sH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
586
+ `}var BB=VB,Io="changeTextTo",Ie=`ly.img.${Io}`,Zg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Qg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function wl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Qg}`]:"Change Text to...",[`${Qg}.prompt`]:"Change Text to...",[`${Zg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Zg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:wl(l,"prompt"),placeholder:wl(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:BB(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:wl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),GB=qB,E1="@imgly/plugin-ai-text-generation-web",YB=["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 HB(e){return{async initialize({cesdk:t}){if(t==null)return;Sz(t,E1,"1.72.1-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(fN,mN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),ZB(e);let r=Ol.get();r.register(lB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(jB({cesdk:t})),r.register(OB({cesdk:t})),r.register(FB({cesdk:t})),r.register(GB({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 TU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await rR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:YB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function ZB(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 QB=HB,WB=e=>({name:E1,version:"1.72.1-rc.0",...QB(e)}),_1=WB;var KB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var JB=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")}},XB=typeof global=="object"&&global&&global.Object===Object&&global,ff=XB,eq=typeof self=="object"&&self&&self.Object===Object&&self,tq=ff||eq||Function("return this")(),le=tq,rq=le.Symbol,ar=rq,yf=Object.prototype,iq=yf.hasOwnProperty,nq=yf.toString,Wi=ar?ar.toStringTag:void 0;function oq(e){var t=iq.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=nq.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var aq=oq,lq=Object.prototype,sq=lq.toString;function uq(e){return sq.call(e)}var cq=uq,dq="[object Null]",pq="[object Undefined]",L1=ar?ar.toStringTag:void 0;function gq(e){return e==null?e===void 0?pq:dq:L1&&L1 in Object(e)?aq(e):cq(e)}var un=gq;function fq(e){return e!=null&&typeof e=="object"}var is=fq,Kee=Array.isArray;function yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var mf=yq,mq="[object AsyncFunction]",bq="[object Function]",hq="[object GeneratorFunction]",vq="[object Proxy]";function wq(e){if(!mf(e))return!1;var t=un(e);return t==bq||t==hq||t==mq||t==vq}var kq=wq,xq=le["__core-js_shared__"],Ul=xq,T1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iq(e){return!!T1&&T1 in e}var Cq=Iq,Aq=Function.prototype,Sq=Aq.toString;function Mq(e){if(e!=null){try{return Sq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Mq,jq=/[\\^$.*+?()[\]{}|]/g,$q=/^\[object .+?Constructor\]$/,Eq=Function.prototype,_q=Object.prototype,Lq=Eq.toString,Tq=_q.hasOwnProperty,Oq=RegExp("^"+Lq.call(Tq).replace(jq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Nq(e){if(!mf(e)||Cq(e))return!1;var t=kq(e)?Oq:$q;return t.test(qe(e))}var Dq=Nq;function Pq(e,t){return e?.[t]}var zq=Pq;function Uq(e,t){var r=zq(e,t);return Dq(r)?r:void 0}var sr=Uq,Rq=sr(le,"WeakMap"),Yl=Rq;function Fq(e,t){return e===t||e!==e&&t!==t}var Vq=Fq,Bq=9007199254740991;function qq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Bq}var Gq=qq,Jee=Object.prototype,Yq="[object Arguments]";function Hq(e){return is(e)&&un(e)==Yq}var O1=Hq,bf=Object.prototype,Zq=bf.hasOwnProperty,Qq=bf.propertyIsEnumerable,Xee=O1(function(){return arguments}())?O1:function(e){return is(e)&&Zq.call(e,"callee")&&!Qq.call(e,"callee")},hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,N1=hf&&typeof module=="object"&&module&&!module.nodeType&&module,Wq=N1&&N1.exports===hf,D1=Wq?le.Buffer:void 0,ete=D1?D1.isBuffer:void 0,Kq="[object Arguments]",Jq="[object Array]",Xq="[object Boolean]",eG="[object Date]",tG="[object Error]",rG="[object Function]",iG="[object Map]",nG="[object Number]",oG="[object Object]",aG="[object RegExp]",lG="[object Set]",sG="[object String]",uG="[object WeakMap]",cG="[object ArrayBuffer]",dG="[object DataView]",pG="[object Float32Array]",gG="[object Float64Array]",fG="[object Int8Array]",yG="[object Int16Array]",mG="[object Int32Array]",bG="[object Uint8Array]",hG="[object Uint8ClampedArray]",vG="[object Uint16Array]",wG="[object Uint32Array]",V={};V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[bG]=V[hG]=V[vG]=V[wG]=!0;V[Kq]=V[Jq]=V[cG]=V[Xq]=V[dG]=V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=V[oG]=V[aG]=V[lG]=V[sG]=V[uG]=!1;function kG(e){return is(e)&&Gq(e.length)&&!!V[un(e)]}var xG=kG;function IG(e){return function(t){return e(t)}}var CG=IG,vf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=vf&&typeof module=="object"&&module&&!module.nodeType&&module,AG=rn&&rn.exports===vf,Rl=AG&&ff.process,SG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),P1=SG,z1=P1&&P1.isTypedArray,tte=z1?CG(z1):xG,MG=Object.prototype,rte=MG.hasOwnProperty;function jG(e,t){return function(r){return e(t(r))}}var $G=jG,ite=$G(Object.keys,Object),EG=Object.prototype,nte=EG.hasOwnProperty,_G=sr(Object,"create"),on=_G;function LG(){this.__data__=on?on(null):{},this.size=0}var TG=LG;function OG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var NG=OG,DG="__lodash_hash_undefined__",PG=Object.prototype,zG=PG.hasOwnProperty;function UG(e){var t=this.__data__;if(on){var r=t[e];return r===DG?void 0:r}return zG.call(t,e)?t[e]:void 0}var RG=UG,FG=Object.prototype,VG=FG.hasOwnProperty;function BG(e){var t=this.__data__;return on?t[e]!==void 0:VG.call(t,e)}var qG=BG,GG="__lodash_hash_undefined__";function YG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?GG:t,this}var HG=YG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=TG;ur.prototype.delete=NG;ur.prototype.get=RG;ur.prototype.has=qG;ur.prototype.set=HG;var U1=ur;function ZG(){this.__data__=[],this.size=0}var QG=ZG;function WG(e,t){for(var r=e.length;r--;)if(Vq(e[r][0],t))return r;return-1}var Co=WG,KG=Array.prototype,JG=KG.splice;function XG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():JG.call(t,r,1),--this.size,!0}var eY=XG;function tY(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var rY=tY;function iY(e){return Co(this.__data__,e)>-1}var nY=iY;function oY(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var aY=oY;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=QG;cr.prototype.delete=eY;cr.prototype.get=rY;cr.prototype.has=nY;cr.prototype.set=aY;var Ao=cr,lY=sr(le,"Map"),an=lY;function sY(){this.size=0,this.__data__={hash:new U1,map:new(an||Ao),string:new U1}}var uY=sY;function cY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dY=cY;function pY(e,t){var r=e.__data__;return dY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var So=pY;function gY(e){var t=So(this,e).delete(e);return this.size-=t?1:0,t}var fY=gY;function yY(e){return So(this,e).get(e)}var mY=yY;function bY(e){return So(this,e).has(e)}var hY=bY;function vY(e,t){var r=So(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wY=vY;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=uY;dr.prototype.delete=fY;dr.prototype.get=mY;dr.prototype.has=hY;dr.prototype.set=wY;var wf=dr;function kY(){this.__data__=new Ao,this.size=0}var xY=kY;function IY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CY=IY;function AY(e){return this.__data__.get(e)}var SY=AY;function MY(e){return this.__data__.has(e)}var jY=MY,$Y=200;function EY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<$Y-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new wf(i)}return r.set(e,t),this.size=r.size,this}var _Y=EY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=xY;cn.prototype.delete=CY;cn.prototype.get=SY;cn.prototype.has=jY;cn.prototype.set=_Y;var LY=Object.prototype,ote=LY.propertyIsEnumerable,TY=sr(le,"DataView"),Hl=TY,OY=sr(le,"Promise"),Zl=OY,NY=sr(le,"Set"),Ql=NY,R1="[object Map]",DY="[object Object]",F1="[object Promise]",V1="[object Set]",B1="[object WeakMap]",q1="[object DataView]",PY=qe(Hl),zY=qe(an),UY=qe(Zl),RY=qe(Ql),FY=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=q1||an&&ir(new an)!=R1||Zl&&ir(Zl.resolve())!=F1||Ql&&ir(new Ql)!=V1||Yl&&ir(new Yl)!=B1)&&(ir=function(e){var t=un(e),r=t==DY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case PY:return q1;case zY:return R1;case UY:return F1;case RY:return V1;case FY:return B1}return t});var ate=le.Uint8Array,VY="__lodash_hash_undefined__";function BY(e){return this.__data__.set(e,VY),this}var qY=BY;function GY(e){return this.__data__.has(e)}var YY=GY;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new wf;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=qY;Wl.prototype.has=YY;var G1=ar?ar.prototype:void 0,lte=G1?G1.valueOf:void 0,HY=Object.prototype,ste=HY.hasOwnProperty,ZY=Object.prototype,ute=ZY.hasOwnProperty,cte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function kf(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 QY(e,t){let r=await kf(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 WY(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 kf(i,t)}function KY(e){return e!==void 0}var JY=KY;function ns(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 dn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var xf=class If{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 If),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))}},XY=class Cf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cf),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 eH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function tH({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 rH=tH,Fl="ly.img.ai.temp";async function iH(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function nH(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 Af(){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 oH(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 aH(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 os(e){return e instanceof Error&&e.name==="AbortError"}function lH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function sH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
587
587
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
588
588
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
589
589
  Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function uH(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 cH=uH;function dH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),pH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:nH(e)}))}function pH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Y1=dH,gH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",as=gH;function fH(e,t,r){switch(t){case"image":return yH(e,r[t]);case"video":return mH(e,r[t]);case"sticker":return bH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function yH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function mH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:as,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function bH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var hH=fH;async function vH(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 wH(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 kH(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 xH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return IH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function wH(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 kH(e,t,r){let i=t.width,n=t.height,a=await oH(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 xH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function IH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Sf=vH;function CH(e){switch(e.userFlow){case"placeholder":return SH(e);case"generation-only":return AH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function AH(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=Af(),c=await Sf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function SH(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=Af(),c=hH(s,a,o);if(i=await iH(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Sf(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)&&(os(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var MH=CH;function ls(e){return`${e}.generating`}function jH(e){return`${e}.abort`}function $H(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(jH(d),()=>{}),y=c.global(ls(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await MH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Y1(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;EH(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(os(b))return;Y1(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function EH(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 Mf=$H;async function _H({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(ls(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Mf(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var LH=_H;function jf(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 Xi(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=jf(e,t.$ref),n={...Xi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xi(e,t[n],r));return i}return t}function TH(e){return Xi(e,{...e})}function OH(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 NH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return DH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function DH(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=PH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function PH(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 $f=NH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Ef(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 _f(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?zH(e,c,r,i,n,a,o,s):Lf(e,c,r,i,n,a,o,s);case"boolean":return Tf(e,c,r,i,n,a,o,s);case"number":case"integer":return Of(e,c,r,i,n,a,o,s);case"object":return Kl(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 UH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Kl(e,t,r,i,n,a,o,s){let c=$f(t.schema??{},i).reduce((l,u)=>{let d=_f(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 Lf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=je(t,r,o,"placeholder"),f=dn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=pn(d,m,f,t.schema.default,""),k=l(p,v),w=RH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function zH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),{labels:y,icons:f}=Ef(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),v=dn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pn(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Tf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=dn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pn(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Of(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=dn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pn(d,v,m,k,k),x=l(p,w);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,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function UH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Ef(t.schema),x=dn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Lf,boolean:Tf,integer:Of,object:Kl},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:je(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Kl(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=pn(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function RH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var FH=_f,VH={"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 H1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Z1(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]||H1(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]||H1(g);n[a(l.id,g)]=y}})}});let c={...VH,...n};Object.keys(c).length>0&&ns(r.cesdk,{en:c})}function Q1(e){return typeof e.document=="function"?e.document():e.document}function W1(e,t,r){let i=TH(e),n=jf(i,t.inputReference);if(!OH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=$f(a,t);return{inputSchema:a,properties:o}}function K1(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=FH(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Mf(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function BH(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=Q1(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=W1(c,s,a.debug);return Z1(y,i,r,i.kind),K1(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(Q1(s)).then(g=>{let{inputSchema:y,properties:f}=W1(g,s,a.debug);Z1(f,i,r,i.kind),u=K1(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.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var qH=BH;async function GH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return LH(e,t);case"schema":return qH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var YH=GH;function HH(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 KB(o,r)),o}return i}var ZH=HH;function QH(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 WH=QH,Vl="@imgly/plugin-ai-generation",KH=`
@@ -662,7 +662,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
662
 
663
663
  </symbol>
664
664
  </svg>
665
- `,kZ=wZ,xZ=typeof global=="object"&&global&&global.Object===Object&&global,Df=xZ,IZ=typeof self=="object"&&self&&self.Object===Object&&self,CZ=Df||IZ||Function("return this")(),se=CZ,AZ=se.Symbol,lr=AZ,Pf=Object.prototype,SZ=Pf.hasOwnProperty,MZ=Pf.toString,Ji=lr?lr.toStringTag:void 0;function jZ(e){var t=SZ.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=MZ.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var $Z=jZ,EZ=Object.prototype,_Z=EZ.toString;function LZ(e){return _Z.call(e)}var TZ=LZ,OZ="[object Null]",NZ="[object Undefined]",X1=lr?lr.toStringTag:void 0;function DZ(e){return e==null?e===void 0?NZ:OZ:X1&&X1 in Object(e)?$Z(e):TZ(e)}var gn=DZ;function PZ(e){return e!=null&&typeof e=="object"}var ss=PZ,gte=Array.isArray;function zZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zf=zZ,UZ="[object AsyncFunction]",RZ="[object Function]",FZ="[object GeneratorFunction]",VZ="[object Proxy]";function BZ(e){if(!zf(e))return!1;var t=gn(e);return t==RZ||t==FZ||t==UZ||t==VZ}var qZ=BZ,GZ=se["__core-js_shared__"],ql=GZ,ef=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function YZ(e){return!!ef&&ef in e}var HZ=YZ,ZZ=Function.prototype,QZ=ZZ.toString;function WZ(e){if(e!=null){try{return QZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=WZ,KZ=/[\\^$.*+?()[\]{}|]/g,JZ=/^\[object .+?Constructor\]$/,XZ=Function.prototype,eQ=Object.prototype,tQ=XZ.toString,rQ=eQ.hasOwnProperty,iQ=RegExp("^"+tQ.call(rQ).replace(KZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nQ(e){if(!zf(e)||HZ(e))return!1;var t=qZ(e)?iQ:JZ;return t.test(Ge(e))}var oQ=nQ;function aQ(e,t){return e?.[t]}var lQ=aQ;function sQ(e,t){var r=lQ(e,t);return oQ(r)?r:void 0}var pr=sQ,uQ=pr(se,"WeakMap"),Jl=uQ;function cQ(e,t){return e===t||e!==e&&t!==t}var dQ=cQ,pQ=9007199254740991;function gQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=pQ}var fQ=gQ,fte=Object.prototype,yQ="[object Arguments]";function mQ(e){return ss(e)&&gn(e)==yQ}var tf=mQ,Uf=Object.prototype,bQ=Uf.hasOwnProperty,hQ=Uf.propertyIsEnumerable,yte=tf(function(){return arguments}())?tf:function(e){return ss(e)&&bQ.call(e,"callee")&&!hQ.call(e,"callee")},Rf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rf=Rf&&typeof module=="object"&&module&&!module.nodeType&&module,vQ=rf&&rf.exports===Rf,nf=vQ?se.Buffer:void 0,mte=nf?nf.isBuffer:void 0,wQ="[object Arguments]",kQ="[object Array]",xQ="[object Boolean]",IQ="[object Date]",CQ="[object Error]",AQ="[object Function]",SQ="[object Map]",MQ="[object Number]",jQ="[object Object]",$Q="[object RegExp]",EQ="[object Set]",_Q="[object String]",LQ="[object WeakMap]",TQ="[object ArrayBuffer]",OQ="[object DataView]",NQ="[object Float32Array]",DQ="[object Float64Array]",PQ="[object Int8Array]",zQ="[object Int16Array]",UQ="[object Int32Array]",RQ="[object Uint8Array]",FQ="[object Uint8ClampedArray]",VQ="[object Uint16Array]",BQ="[object Uint32Array]",B={};B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=B[VQ]=B[BQ]=!0;B[wQ]=B[kQ]=B[TQ]=B[xQ]=B[OQ]=B[IQ]=B[CQ]=B[AQ]=B[SQ]=B[MQ]=B[jQ]=B[$Q]=B[EQ]=B[_Q]=B[LQ]=!1;function qQ(e){return ss(e)&&fQ(e.length)&&!!B[gn(e)]}var GQ=qQ;function YQ(e){return function(t){return e(t)}}var HQ=YQ,Ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=Ff&&typeof module=="object"&&module&&!module.nodeType&&module,ZQ=nn&&nn.exports===Ff,Gl=ZQ&&Df.process,QQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),of=QQ,af=of&&of.isTypedArray,bte=af?HQ(af):GQ,WQ=Object.prototype,hte=WQ.hasOwnProperty;function KQ(e,t){return function(r){return e(t(r))}}var JQ=KQ,vte=JQ(Object.keys,Object),XQ=Object.prototype,wte=XQ.hasOwnProperty,eW=pr(Object,"create"),ln=eW;function tW(){this.__data__=ln?ln(null):{},this.size=0}var rW=tW;function iW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var nW=iW,oW="__lodash_hash_undefined__",aW=Object.prototype,lW=aW.hasOwnProperty;function sW(e){var t=this.__data__;if(ln){var r=t[e];return r===oW?void 0:r}return lW.call(t,e)?t[e]:void 0}var uW=sW,cW=Object.prototype,dW=cW.hasOwnProperty;function pW(e){var t=this.__data__;return ln?t[e]!==void 0:dW.call(t,e)}var gW=pW,fW="__lodash_hash_undefined__";function yW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?fW:t,this}var mW=yW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=rW;gr.prototype.delete=nW;gr.prototype.get=uW;gr.prototype.has=gW;gr.prototype.set=mW;var lf=gr;function bW(){this.__data__=[],this.size=0}var hW=bW;function vW(e,t){for(var r=e.length;r--;)if(dQ(e[r][0],t))return r;return-1}var Mo=vW,wW=Array.prototype,kW=wW.splice;function xW(e){var t=this.__data__,r=Mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():kW.call(t,r,1),--this.size,!0}var IW=xW;function CW(e){var t=this.__data__,r=Mo(t,e);return r<0?void 0:t[r][1]}var AW=CW;function SW(e){return Mo(this.__data__,e)>-1}var MW=SW;function jW(e,t){var r=this.__data__,i=Mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var $W=jW;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=hW;fr.prototype.delete=IW;fr.prototype.get=AW;fr.prototype.has=MW;fr.prototype.set=$W;var jo=fr,EW=pr(se,"Map"),sn=EW;function _W(){this.size=0,this.__data__={hash:new lf,map:new(sn||jo),string:new lf}}var LW=_W;function TW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var OW=TW;function NW(e,t){var r=e.__data__;return OW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=NW;function DW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var PW=DW;function zW(e){return $o(this,e).get(e)}var UW=zW;function RW(e){return $o(this,e).has(e)}var FW=RW;function VW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var BW=VW;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=LW;yr.prototype.delete=PW;yr.prototype.get=UW;yr.prototype.has=FW;yr.prototype.set=BW;var Vf=yr;function qW(){this.__data__=new jo,this.size=0}var GW=qW;function YW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var HW=YW;function ZW(e){return this.__data__.get(e)}var QW=ZW;function WW(e){return this.__data__.has(e)}var KW=WW,JW=200;function XW(e,t){var r=this.__data__;if(r instanceof jo){var i=r.__data__;if(!sn||i.length<JW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vf(i)}return r.set(e,t),this.size=r.size,this}var eK=XW;function fn(e){var t=this.__data__=new jo(e);this.size=t.size}fn.prototype.clear=GW;fn.prototype.delete=HW;fn.prototype.get=QW;fn.prototype.has=KW;fn.prototype.set=eK;var tK=Object.prototype,kte=tK.propertyIsEnumerable,rK=pr(se,"DataView"),Xl=rK,iK=pr(se,"Promise"),es=iK,nK=pr(se,"Set"),ts=nK,sf="[object Map]",oK="[object Object]",uf="[object Promise]",cf="[object Set]",df="[object WeakMap]",pf="[object DataView]",aK=Ge(Xl),lK=Ge(sn),sK=Ge(es),uK=Ge(ts),cK=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=pf||sn&&nr(new sn)!=sf||es&&nr(es.resolve())!=uf||ts&&nr(new ts)!=cf||Jl&&nr(new Jl)!=df)&&(nr=function(e){var t=gn(e),r=t==oK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case aK:return pf;case lK:return sf;case sK:return uf;case uK:return cf;case cK:return df}return t});var xte=se.Uint8Array,dK="__lodash_hash_undefined__";function pK(e){return this.__data__.set(e,dK),this}var gK=pK;function fK(e){return this.__data__.has(e)}var yK=fK;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=gK;rs.prototype.has=yK;var gf=lr?lr.prototype:void 0,Ite=gf?gf.valueOf:void 0,mK=Object.prototype,Cte=mK.hasOwnProperty,bK=Object.prototype,Ate=bK.hasOwnProperty,Ste=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function hK(e){return e==null?[]:Array.isArray(e)?e:[e]}var vK=hK;function wK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function kK(e){return typeof e?.translate=="function"}function xK(e,t,r){return e&&wK(e)&&kK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function IK(e){return{async initialize({cesdk:t}){if(t==null)return;sH(t,tn,"1.72.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=xf.get(),i=`${tn}.action.label`;t.ui.addIconSet(vZ,kZ),ns(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:xK(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(vK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await hZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),cH({cesdk:t,panelId:Se})):n()}}}var CK=IK,AK=e=>({name:tn,version:"1.72.0",...CK(e)}),Bf=AK;var us=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();p=p.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&p.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?p.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&p.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let g=p.length,y=r*i,f=y+i,v=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=SK(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 qf(e,t,r=[]){return new us(e,t,r)}function SK(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 yn="ly.img.ai.apps";var Y=tu("apps"),MK=512,jK=128,Gf=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"1.72.0");let{providers:r}=e;await t.addPlugin(_1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(jc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(qd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(og({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Bf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),TK(t),$K(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function $K(e,t){LK(e);let r=EK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{xn.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?xn.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 EK(e,t){let r=xn.get(),i=qf(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?_K(t.baseURL,o):void 0,width:MK,height:jK}}).filter(_s)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function _K(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 LK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});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(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function TK(e){Xs(e,iu)}var OK=e=>({name:yn,version:"1.72.0",...Gf(e)}),Hte=OK;export{Hte as default};
665
+ `,kZ=wZ,xZ=typeof global=="object"&&global&&global.Object===Object&&global,Df=xZ,IZ=typeof self=="object"&&self&&self.Object===Object&&self,CZ=Df||IZ||Function("return this")(),se=CZ,AZ=se.Symbol,lr=AZ,Pf=Object.prototype,SZ=Pf.hasOwnProperty,MZ=Pf.toString,Ji=lr?lr.toStringTag:void 0;function jZ(e){var t=SZ.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=MZ.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var $Z=jZ,EZ=Object.prototype,_Z=EZ.toString;function LZ(e){return _Z.call(e)}var TZ=LZ,OZ="[object Null]",NZ="[object Undefined]",X1=lr?lr.toStringTag:void 0;function DZ(e){return e==null?e===void 0?NZ:OZ:X1&&X1 in Object(e)?$Z(e):TZ(e)}var gn=DZ;function PZ(e){return e!=null&&typeof e=="object"}var ss=PZ,gte=Array.isArray;function zZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zf=zZ,UZ="[object AsyncFunction]",RZ="[object Function]",FZ="[object GeneratorFunction]",VZ="[object Proxy]";function BZ(e){if(!zf(e))return!1;var t=gn(e);return t==RZ||t==FZ||t==UZ||t==VZ}var qZ=BZ,GZ=se["__core-js_shared__"],ql=GZ,ef=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function YZ(e){return!!ef&&ef in e}var HZ=YZ,ZZ=Function.prototype,QZ=ZZ.toString;function WZ(e){if(e!=null){try{return QZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=WZ,KZ=/[\\^$.*+?()[\]{}|]/g,JZ=/^\[object .+?Constructor\]$/,XZ=Function.prototype,eQ=Object.prototype,tQ=XZ.toString,rQ=eQ.hasOwnProperty,iQ=RegExp("^"+tQ.call(rQ).replace(KZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nQ(e){if(!zf(e)||HZ(e))return!1;var t=qZ(e)?iQ:JZ;return t.test(Ge(e))}var oQ=nQ;function aQ(e,t){return e?.[t]}var lQ=aQ;function sQ(e,t){var r=lQ(e,t);return oQ(r)?r:void 0}var pr=sQ,uQ=pr(se,"WeakMap"),Jl=uQ;function cQ(e,t){return e===t||e!==e&&t!==t}var dQ=cQ,pQ=9007199254740991;function gQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=pQ}var fQ=gQ,fte=Object.prototype,yQ="[object Arguments]";function mQ(e){return ss(e)&&gn(e)==yQ}var tf=mQ,Uf=Object.prototype,bQ=Uf.hasOwnProperty,hQ=Uf.propertyIsEnumerable,yte=tf(function(){return arguments}())?tf:function(e){return ss(e)&&bQ.call(e,"callee")&&!hQ.call(e,"callee")},Rf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rf=Rf&&typeof module=="object"&&module&&!module.nodeType&&module,vQ=rf&&rf.exports===Rf,nf=vQ?se.Buffer:void 0,mte=nf?nf.isBuffer:void 0,wQ="[object Arguments]",kQ="[object Array]",xQ="[object Boolean]",IQ="[object Date]",CQ="[object Error]",AQ="[object Function]",SQ="[object Map]",MQ="[object Number]",jQ="[object Object]",$Q="[object RegExp]",EQ="[object Set]",_Q="[object String]",LQ="[object WeakMap]",TQ="[object ArrayBuffer]",OQ="[object DataView]",NQ="[object Float32Array]",DQ="[object Float64Array]",PQ="[object Int8Array]",zQ="[object Int16Array]",UQ="[object Int32Array]",RQ="[object Uint8Array]",FQ="[object Uint8ClampedArray]",VQ="[object Uint16Array]",BQ="[object Uint32Array]",B={};B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=B[VQ]=B[BQ]=!0;B[wQ]=B[kQ]=B[TQ]=B[xQ]=B[OQ]=B[IQ]=B[CQ]=B[AQ]=B[SQ]=B[MQ]=B[jQ]=B[$Q]=B[EQ]=B[_Q]=B[LQ]=!1;function qQ(e){return ss(e)&&fQ(e.length)&&!!B[gn(e)]}var GQ=qQ;function YQ(e){return function(t){return e(t)}}var HQ=YQ,Ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=Ff&&typeof module=="object"&&module&&!module.nodeType&&module,ZQ=nn&&nn.exports===Ff,Gl=ZQ&&Df.process,QQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),of=QQ,af=of&&of.isTypedArray,bte=af?HQ(af):GQ,WQ=Object.prototype,hte=WQ.hasOwnProperty;function KQ(e,t){return function(r){return e(t(r))}}var JQ=KQ,vte=JQ(Object.keys,Object),XQ=Object.prototype,wte=XQ.hasOwnProperty,eW=pr(Object,"create"),ln=eW;function tW(){this.__data__=ln?ln(null):{},this.size=0}var rW=tW;function iW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var nW=iW,oW="__lodash_hash_undefined__",aW=Object.prototype,lW=aW.hasOwnProperty;function sW(e){var t=this.__data__;if(ln){var r=t[e];return r===oW?void 0:r}return lW.call(t,e)?t[e]:void 0}var uW=sW,cW=Object.prototype,dW=cW.hasOwnProperty;function pW(e){var t=this.__data__;return ln?t[e]!==void 0:dW.call(t,e)}var gW=pW,fW="__lodash_hash_undefined__";function yW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?fW:t,this}var mW=yW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=rW;gr.prototype.delete=nW;gr.prototype.get=uW;gr.prototype.has=gW;gr.prototype.set=mW;var lf=gr;function bW(){this.__data__=[],this.size=0}var hW=bW;function vW(e,t){for(var r=e.length;r--;)if(dQ(e[r][0],t))return r;return-1}var Mo=vW,wW=Array.prototype,kW=wW.splice;function xW(e){var t=this.__data__,r=Mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():kW.call(t,r,1),--this.size,!0}var IW=xW;function CW(e){var t=this.__data__,r=Mo(t,e);return r<0?void 0:t[r][1]}var AW=CW;function SW(e){return Mo(this.__data__,e)>-1}var MW=SW;function jW(e,t){var r=this.__data__,i=Mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var $W=jW;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=hW;fr.prototype.delete=IW;fr.prototype.get=AW;fr.prototype.has=MW;fr.prototype.set=$W;var jo=fr,EW=pr(se,"Map"),sn=EW;function _W(){this.size=0,this.__data__={hash:new lf,map:new(sn||jo),string:new lf}}var LW=_W;function TW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var OW=TW;function NW(e,t){var r=e.__data__;return OW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=NW;function DW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var PW=DW;function zW(e){return $o(this,e).get(e)}var UW=zW;function RW(e){return $o(this,e).has(e)}var FW=RW;function VW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var BW=VW;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=LW;yr.prototype.delete=PW;yr.prototype.get=UW;yr.prototype.has=FW;yr.prototype.set=BW;var Vf=yr;function qW(){this.__data__=new jo,this.size=0}var GW=qW;function YW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var HW=YW;function ZW(e){return this.__data__.get(e)}var QW=ZW;function WW(e){return this.__data__.has(e)}var KW=WW,JW=200;function XW(e,t){var r=this.__data__;if(r instanceof jo){var i=r.__data__;if(!sn||i.length<JW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vf(i)}return r.set(e,t),this.size=r.size,this}var eK=XW;function fn(e){var t=this.__data__=new jo(e);this.size=t.size}fn.prototype.clear=GW;fn.prototype.delete=HW;fn.prototype.get=QW;fn.prototype.has=KW;fn.prototype.set=eK;var tK=Object.prototype,kte=tK.propertyIsEnumerable,rK=pr(se,"DataView"),Xl=rK,iK=pr(se,"Promise"),es=iK,nK=pr(se,"Set"),ts=nK,sf="[object Map]",oK="[object Object]",uf="[object Promise]",cf="[object Set]",df="[object WeakMap]",pf="[object DataView]",aK=Ge(Xl),lK=Ge(sn),sK=Ge(es),uK=Ge(ts),cK=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=pf||sn&&nr(new sn)!=sf||es&&nr(es.resolve())!=uf||ts&&nr(new ts)!=cf||Jl&&nr(new Jl)!=df)&&(nr=function(e){var t=gn(e),r=t==oK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case aK:return pf;case lK:return sf;case sK:return uf;case uK:return cf;case cK:return df}return t});var xte=se.Uint8Array,dK="__lodash_hash_undefined__";function pK(e){return this.__data__.set(e,dK),this}var gK=pK;function fK(e){return this.__data__.has(e)}var yK=fK;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=gK;rs.prototype.has=yK;var gf=lr?lr.prototype:void 0,Ite=gf?gf.valueOf:void 0,mK=Object.prototype,Cte=mK.hasOwnProperty,bK=Object.prototype,Ate=bK.hasOwnProperty,Ste=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function hK(e){return e==null?[]:Array.isArray(e)?e:[e]}var vK=hK;function wK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function kK(e){return typeof e?.translate=="function"}function xK(e,t,r){return e&&wK(e)&&kK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function IK(e){return{async initialize({cesdk:t}){if(t==null)return;sH(t,tn,"1.72.1-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=xf.get(),i=`${tn}.action.label`;t.ui.addIconSet(vZ,kZ),ns(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:xK(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(vK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await hZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),cH({cesdk:t,panelId:Se})):n()}}}var CK=IK,AK=e=>({name:tn,version:"1.72.1-rc.0",...CK(e)}),Bf=AK;var us=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();p=p.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&p.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?p.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&p.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let g=p.length,y=r*i,f=y+i,v=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=SK(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 qf(e,t,r=[]){return new us(e,t,r)}function SK(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 yn="ly.img.ai.apps";var Y=tu("apps"),MK=512,jK=128,Gf=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"1.72.1-rc.0");let{providers:r}=e;await t.addPlugin(_1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(jc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(qd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(og({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Bf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),TK(t),$K(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function $K(e,t){LK(e);let r=EK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{xn.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?xn.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 EK(e,t){let r=xn.get(),i=qf(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?_K(t.baseURL,o):void 0,width:MK,height:jK}}).filter(_s)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function _K(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 LK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});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(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function TK(e){Xs(e,iu)}var OK=e=>({name:yn,version:"1.72.1-rc.0",...Gf(e)}),Hte=OK;export{Hte as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js: