@imgly/plugin-ai-image-generation-web 0.2.10 → 0.2.11

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
@@ -1,7 +1,7 @@
1
- var dr=class{constructor(e,t,i){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=i?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=i?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let i=indexedDB.open(this.dbName,this.dbVersion);i.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},i.onupgradeneeded=r=>{let n=r.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},i.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",p=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(p=s.tags[c]);let g={...s,label:d,tags:p};return this.filterAsset(g,e)&&u.push(g),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:i,perPage:r}=e,n=i*r,o=n+r,a=t.slice(n,o),l=o<t.length?i+1:void 0;return{assets:a,currentPage:i,nextPage:l,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 i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let r=new Set;i.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(a=>r.add(a))});let n=[...r];e(n)},i.onerror=()=>{t(new Error(`Failed to get groups: ${i.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),i=t.objectStore(this.assetStoreName),r=new Set;J(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};i.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.assetStoreName,"readwrite");i.objectStore(this.assetStoreName).delete(e),i.oncomplete=()=>{J(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},i.onerror=()=>{console.error(`Failed to remove asset: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}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,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=r.result;n.sort((o,a)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=a.meta?.insertedAt||a._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(n)},r.onerror=()=>{i(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,i)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.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 i=>{let r=await(await fetch(i)).blob();t[i]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.blobStoreName,"readwrite"),r=i.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,o])=>{let a={id:n,blob:o};r.put(a)}),i.onerror=()=>{console.error(`Failed to add blobs: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}async restoreBlobUrls(e){let t={},i=new Set;return J(e,r=>{i.add(r)}),await Promise.all([...i].map(async r=>{let n=await this.createBlobUrlFromStore(r);t[r]=n})),J(e,r=>t[r]??r)}filterAsset(e,t){let{query:i,tags:r,groups:n,excludeGroups:o}=t;if(i&&i.trim()!==""){let a=i.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!a.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let a=Array.isArray(r)?r:[r];if(a.length>0&&(!e.tags||!a.every(l=>e.tags?.includes(l))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(a=>e.groups?.includes(a)))||o&&o.length>0&&e.groups&&e.groups.some(a=>o.includes(a)))}sortAssets(e,t){let{sortingOrder:i,sortKey:r,sortActiveFirst:n}=t,o=[...e];return!i||i==="None"||(r?o.sort((a,l)=>{let u,s;return r==="id"?(u=a.id,s=l.id):(u=a.meta?.[r]??null,s=l.meta?.[r]??null),u==null?i==="Ascending"?-1:1:s==null?i==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?i==="Ascending"?u.localeCompare(s):s.localeCompare(u):i==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):i==="Descending"&&o.reverse(),n&&o.sort((a,l)=>a.active&&!l.active?-1:!a.active&&l.active?1:0)),o}};function J(e,t,i=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let n=i?`${i}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],n);typeof o=="string"&&(e[r]=o)}else e[r]=J(e[r],t,n)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let n=e[r],o=i?`${i}.${r}`:r;if(typeof n=="string"&&n.startsWith("blob:")){let a=t(n,o);typeof a=="string"&&(e[r]=a)}else e[r]=J(n,t,o)}return e}var pr=class{constructor(e,t,i){this.id=e,this.cesdk=t,this.assetSourceIds=i}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),i=await Promise.all(t),r=[];i.forEach(c=>{c?.assets&&(r=r.concat(c.assets))}),r.sort((c,d)=>{let p=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:o}=e,a=n*o,l=a+o,u=r.slice(a,l),s=l<r.length?n+1:void 0;return{assets:u,currentPage:n,nextPage:s,total:r.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(r=>this.cesdk.engine.asset.getGroups(r)),t=await Promise.all(e),i=new Set;return t.forEach(r=>{r.forEach(n=>i.add(n))}),Array.from(i)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},gr=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Zt=gr,mr=typeof global=="object"&&global&&global.Object===Object&&global,Yt=mr,fr=typeof self=="object"&&self&&self.Object===Object&&self,br=Yt||fr||Function("return this")(),F=br,yr=F.Symbol,ee=yr,Wt=Object.prototype,hr=Wt.hasOwnProperty,vr=Wt.toString,de=ee?ee.toStringTag:void 0;function kr(e){var t=hr.call(e,de),i=e[de];try{e[de]=void 0;var r=!0}catch{}var n=vr.call(e);return r&&(t?e[de]=i:delete e[de]),n}var wr=kr,Ir=Object.prototype,Ar=Ir.toString;function Cr(e){return Ar.call(e)}var Sr=Cr,$r="[object Null]",xr="[object Undefined]",Tt=ee?ee.toStringTag:void 0;function Er(e){return e==null?e===void 0?xr:$r:Tt&&Tt in Object(e)?wr(e):Sr(e)}var he=Er;function Mr(e){return e!=null&&typeof e=="object"}var ft=Mr,kd=Array.isArray;function Tr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Kt=Tr,Pr="[object AsyncFunction]",jr="[object Function]",_r="[object GeneratorFunction]",Lr="[object Proxy]";function Dr(e){if(!Kt(e))return!1;var t=he(e);return t==jr||t==_r||t==Pr||t==Lr}var Nr=Dr,Or=F["__core-js_shared__"],rt=Or,Pt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Fr(e){return!!Pt&&Pt in e}var Rr=Fr,zr=Function.prototype,Ur=zr.toString;function Br(e){if(e!=null){try{return Ur.call(e)}catch{}try{return e+""}catch{}}return""}var W=Br,Vr=/[\\^$.*+?()[\]{}|]/g,qr=/^\[object .+?Constructor\]$/,Gr=Function.prototype,Hr=Object.prototype,Qr=Gr.toString,Zr=Hr.hasOwnProperty,Yr=RegExp("^"+Qr.call(Zr).replace(Vr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Wr(e){if(!Kt(e)||Rr(e))return!1;var t=Nr(e)?Yr:qr;return t.test(W(e))}var Kr=Wr;function Xr(e,t){return e?.[t]}var Jr=Xr;function en(e,t){var i=Jr(e,t);return Kr(i)?i:void 0}var te=en,tn=te(F,"WeakMap"),st=tn;function rn(e,t){return e===t||e!==e&&t!==t}var nn=rn,an=9007199254740991;function on(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=an}var ln=on,wd=Object.prototype,sn="[object Arguments]";function cn(e){return ft(e)&&he(e)==sn}var jt=cn,Xt=Object.prototype,un=Xt.hasOwnProperty,dn=Xt.propertyIsEnumerable,Id=jt(function(){return arguments}())?jt:function(e){return ft(e)&&un.call(e,"callee")&&!dn.call(e,"callee")},Jt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_t=Jt&&typeof module=="object"&&module&&!module.nodeType&&module,pn=_t&&_t.exports===Jt,Lt=pn?F.Buffer:void 0,Ad=Lt?Lt.isBuffer:void 0,gn="[object Arguments]",mn="[object Array]",fn="[object Boolean]",bn="[object Date]",yn="[object Error]",hn="[object Function]",vn="[object Map]",kn="[object Number]",wn="[object Object]",In="[object RegExp]",An="[object Set]",Cn="[object String]",Sn="[object WeakMap]",$n="[object ArrayBuffer]",xn="[object DataView]",En="[object Float32Array]",Mn="[object Float64Array]",Tn="[object Int8Array]",Pn="[object Int16Array]",jn="[object Int32Array]",_n="[object Uint8Array]",Ln="[object Uint8ClampedArray]",Dn="[object Uint16Array]",Nn="[object Uint32Array]",E={};E[En]=E[Mn]=E[Tn]=E[Pn]=E[jn]=E[_n]=E[Ln]=E[Dn]=E[Nn]=!0;E[gn]=E[mn]=E[$n]=E[fn]=E[xn]=E[bn]=E[yn]=E[hn]=E[vn]=E[kn]=E[wn]=E[In]=E[An]=E[Cn]=E[Sn]=!1;function On(e){return ft(e)&&ln(e.length)&&!!E[he(e)]}var Fn=On;function Rn(e){return function(t){return e(t)}}var zn=Rn,ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fe=ei&&typeof module=="object"&&module&&!module.nodeType&&module,Un=fe&&fe.exports===ei,nt=Un&&Yt.process,Bn=function(){try{var e=fe&&fe.require&&fe.require("util").types;return e||nt&&nt.binding&&nt.binding("util")}catch{}}(),Dt=Bn,Nt=Dt&&Dt.isTypedArray,Cd=Nt?zn(Nt):Fn,Vn=Object.prototype,Sd=Vn.hasOwnProperty;function qn(e,t){return function(i){return e(t(i))}}var Gn=qn,$d=Gn(Object.keys,Object),Hn=Object.prototype,xd=Hn.hasOwnProperty,Qn=te(Object,"create"),be=Qn;function Zn(){this.__data__=be?be(null):{},this.size=0}var Yn=Zn;function Wn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Kn=Wn,Xn="__lodash_hash_undefined__",Jn=Object.prototype,ea=Jn.hasOwnProperty;function ta(e){var t=this.__data__;if(be){var i=t[e];return i===Xn?void 0:i}return ea.call(t,e)?t[e]:void 0}var ia=ta,ra=Object.prototype,na=ra.hasOwnProperty;function aa(e){var t=this.__data__;return be?t[e]!==void 0:na.call(t,e)}var oa=aa,la="__lodash_hash_undefined__";function sa(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=be&&t===void 0?la:t,this}var ca=sa;function ie(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ie.prototype.clear=Yn;ie.prototype.delete=Kn;ie.prototype.get=ia;ie.prototype.has=oa;ie.prototype.set=ca;var Ot=ie;function ua(){this.__data__=[],this.size=0}var da=ua;function pa(e,t){for(var i=e.length;i--;)if(nn(e[i][0],t))return i;return-1}var Pe=pa,ga=Array.prototype,ma=ga.splice;function fa(e){var t=this.__data__,i=Pe(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():ma.call(t,i,1),--this.size,!0}var ba=fa;function ya(e){var t=this.__data__,i=Pe(t,e);return i<0?void 0:t[i][1]}var ha=ya;function va(e){return Pe(this.__data__,e)>-1}var ka=va;function wa(e,t){var i=this.__data__,r=Pe(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var Ia=wa;function re(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}re.prototype.clear=da;re.prototype.delete=ba;re.prototype.get=ha;re.prototype.has=ka;re.prototype.set=Ia;var je=re,Aa=te(F,"Map"),ye=Aa;function Ca(){this.size=0,this.__data__={hash:new Ot,map:new(ye||je),string:new Ot}}var Sa=Ca;function $a(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xa=$a;function Ea(e,t){var i=e.__data__;return xa(t)?i[typeof t=="string"?"string":"hash"]:i.map}var _e=Ea;function Ma(e){var t=_e(this,e).delete(e);return this.size-=t?1:0,t}var Ta=Ma;function Pa(e){return _e(this,e).get(e)}var ja=Pa;function _a(e){return _e(this,e).has(e)}var La=_a;function Da(e,t){var i=_e(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Na=Da;function ne(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ne.prototype.clear=Sa;ne.prototype.delete=Ta;ne.prototype.get=ja;ne.prototype.has=La;ne.prototype.set=Na;var ti=ne;function Oa(){this.__data__=new je,this.size=0}var Fa=Oa;function Ra(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var za=Ra;function Ua(e){return this.__data__.get(e)}var Ba=Ua;function Va(e){return this.__data__.has(e)}var qa=Va,Ga=200;function Ha(e,t){var i=this.__data__;if(i instanceof je){var r=i.__data__;if(!ye||r.length<Ga-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new ti(r)}return i.set(e,t),this.size=i.size,this}var Qa=Ha;function ve(e){var t=this.__data__=new je(e);this.size=t.size}ve.prototype.clear=Fa;ve.prototype.delete=za;ve.prototype.get=Ba;ve.prototype.has=qa;ve.prototype.set=Qa;var Za=Object.prototype,Ed=Za.propertyIsEnumerable,Ya=te(F,"DataView"),ct=Ya,Wa=te(F,"Promise"),ut=Wa,Ka=te(F,"Set"),dt=Ka,Ft="[object Map]",Xa="[object Object]",Rt="[object Promise]",zt="[object Set]",Ut="[object WeakMap]",Bt="[object DataView]",Ja=W(ct),eo=W(ye),to=W(ut),io=W(dt),ro=W(st),X=he;(ct&&X(new ct(new ArrayBuffer(1)))!=Bt||ye&&X(new ye)!=Ft||ut&&X(ut.resolve())!=Rt||dt&&X(new dt)!=zt||st&&X(new st)!=Ut)&&(X=function(e){var t=he(e),i=t==Xa?e.constructor:void 0,r=i?W(i):"";if(r)switch(r){case Ja:return Bt;case eo:return Ft;case to:return Rt;case io:return zt;case ro:return Ut}return t});var Md=F.Uint8Array,no="__lodash_hash_undefined__";function ao(e){return this.__data__.set(e,no),this}var oo=ao;function lo(e){return this.__data__.has(e)}var so=lo;function pt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new ti;++t<i;)this.add(e[t])}pt.prototype.add=pt.prototype.push=oo;pt.prototype.has=so;var Vt=ee?ee.prototype:void 0,Td=Vt?Vt.valueOf:void 0,co=Object.prototype,Pd=co.hasOwnProperty,uo=Object.prototype,jd=uo.hasOwnProperty,_d=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ld=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Dd=new RegExp(/[A-Fa-f0-9]{2}/,"g");function po(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ii(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),o=new Uint8Array(n),a=new Blob([o],{type:i});return URL.createObjectURL(a)}else return e}async function gt(e,t){let i=await ii(e,t);return new Promise((r,n)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=n,o.src=i})}async function go(e,t,i){let r,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=a.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return ii(r,t)}function mo(e){return e!==void 0}var Le=mo;function ke(e,t){let i=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:i}}function we(e,t,i,r,n){if(t?.default!==void 0){let o=t.default;return typeof o!="function"?o:o(i)}return r!==void 0?r:n}var De=class ri{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ri),i[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(i=>this.matchesFilters(i,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,i){return this.subscribers.set(i,t),()=>{this.subscribers.delete(i)}}notifySubscribers(t,i){this.subscribers.forEach((r,n)=>{if(r===null){n(t,i);return}this.matchesFilters(t,r)&&n(t,i)})}matchesFilters(t,i){return!(i.type&&t.type!==i.type||i.pluginId&&t.type==="plugin"&&t.pluginId!==i.pluginId||i.id&&t.id!==i.id||i.kind&&(t.type!=="quick"||t.kind!==i.kind))}},ni=class ai{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ai),i[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:i})=>i.kind===t)}};function fo(e){let t=e.filter(i=>!!i);return i=>async(r,n)=>{let o=[],a=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return i(c,d);let p=t[s],g=async(m,b)=>l(s+1,m,b),y={...d,addDisposer:a};return p(c,y,g)},u={...n,addDisposer:a};return{result:await l(0,r,u),dispose:async()=>{for(let s=o.length-1;s>=0;s--)try{await o[s]()}catch(c){console.error("Error in disposer:",c)}o.length=0}}}}function bo({enable:e=!0}){return async(t,i,r)=>{if(!e)return r(t,i);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,o=Date.now();try{return n=await r(t,i),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-o}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var yo=bo;var at="ly.img.ai.temp";async function ho(e,t){return e.engine.asset.findAllSources().includes(at)||e.engine.asset.addLocalSource(at),e.engine.asset.apply(at,t)}function vo(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 i=e;return"message"in i&&typeof i.message=="string"?i.message:"cause"in i&&typeof i.cause=="string"?i.cause:"detail"in i&&typeof i.detail=="object"&&i.detail!==null&&"message"in i.detail&&typeof i.detail.message=="string"?i.detail.message:"error"in i&&typeof i.error=="object"&&i.error!==null&&"message"in i.error&&typeof i.error.message=="string"?i.error.message:t}return typeof e=="string"?e:String(e)||t}function oi(){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 ko(e,t=0,i="image/jpeg",r=.8){return new Promise((n,o)=>{try{let a=document.createElement("video");a.crossOrigin="anonymous",a.style.display="none",a.addEventListener("loadedmetadata",()=>{a.currentTime=Math.min(t,a.duration),a.addEventListener("seeked",()=>{let l=document.createElement("canvas");l.width=a.videoWidth,l.height=a.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(a),o(new Error("Failed to create canvas context"));return}u.drawImage(a,0,0,l.width,l.height);try{let s=l.toDataURL(i,r);document.body.removeChild(a),n(s)}catch(s){document.body.removeChild(a),o(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{once:!0})}),a.addEventListener("error",()=>{document.body.removeChild(a),o(new Error(`Failed to load video from ${e}`))}),a.src=e,document.body.appendChild(a)}catch(a){o(a)}})}function wo(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 bt(e){return e instanceof Error&&e.name==="AbortError"}function Io(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function li(e,t,i){let r="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let o=e.ui.experimental.getGlobalStateValue(r);o?o!==i&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
2
- Plugin "${t}" is using version ${i}, but other AI plugins are using version ${o}.
1
+ var dr=class{constructor(e,t,i){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=i?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=i?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let i=indexedDB.open(this.dbName,this.dbVersion);i.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},i.onupgradeneeded=r=>{let n=r.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},i.onsuccess=r=>{this.db=r.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((u,s)=>{let c=e.locale??"en",d="",p=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(p=s.tags[c]);let g={...s,label:d,tags:p};return this.filterAsset(g,e)&&u.push(g),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:i,perPage:r}=e,n=i*r,a=n+r,o=t.slice(n,a),l=a<t.length?i+1:void 0;return{assets:o,currentPage:i,nextPage:l,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 i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let r=new Set;i.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>r.add(o))});let n=[...r];e(n)},i.onerror=()=>{t(new Error(`Failed to get groups: ${i.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),i=t.objectStore(this.assetStoreName),r=new Set;J(e,a=>{r.add(a)}),setTimeout(()=>{this.storeBlobUrls([...r])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};i.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.assetStoreName,"readwrite");i.objectStore(this.assetStoreName).delete(e),i.oncomplete=()=>{J(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},i.onerror=()=>{console.error(`Failed to remove asset: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}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,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=r.result;n.sort((a,o)=>{let l=a.meta?.insertedAt||a._insertedAt||Date.now(),u=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(n)},r.onerror=()=>{i(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,i)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.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 i=>{let r=await(await fetch(i)).blob();t[i]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.blobStoreName,"readwrite"),r=i.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};r.put(o)}),i.onerror=()=>{console.error(`Failed to add blobs: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}async restoreBlobUrls(e){let t={},i=new Set;return J(e,r=>{i.add(r)}),await Promise.all([...i].map(async r=>{let n=await this.createBlobUrlFromStore(r);t[r]=n})),J(e,r=>t[r]??r)}filterAsset(e,t){let{query:i,tags:r,groups:n,excludeGroups:a}=t;if(i&&i.trim()!==""){let o=i.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!o.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let o=Array.isArray(r)?r:[r];if(o.length>0&&(!e.tags||!o.every(l=>e.tags?.includes(l))))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:i,sortKey:r,sortActiveFirst:n}=t,a=[...e];return!i||i==="None"||(r?a.sort((o,l)=>{let u,s;return r==="id"?(u=o.id,s=l.id):(u=o.meta?.[r]??null,s=l.meta?.[r]??null),u==null?i==="Ascending"?-1:1:s==null?i==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?i==="Ascending"?u.localeCompare(s):s.localeCompare(u):i==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):i==="Descending"&&a.reverse(),n&&a.sort((o,l)=>o.active&&!l.active?-1:!o.active&&l.active?1:0)),a}};function J(e,t,i=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let n=i?`${i}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let a=t(e[r],n);typeof a=="string"&&(e[r]=a)}else e[r]=J(e[r],t,n)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let n=e[r],a=i?`${i}.${r}`:r;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[r]=o)}else e[r]=J(n,t,a)}return e}var pr=class{constructor(e,t,i){this.id=e,this.cesdk=t,this.assetSourceIds=i}async findAssets(e){try{let t=this.assetSourceIds.map(c=>this.cesdk.engine.asset.findAssets(c,{...e,perPage:9999,page:0})),i=await Promise.all(t),r=[];i.forEach(c=>{c?.assets&&(r=r.concat(c.assets))}),r.sort((c,d)=>{let p=c.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,l=o+a,u=r.slice(o,l),s=l<r.length?n+1:void 0;return{assets:u,currentPage:n,nextPage:s,total:r.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(r=>this.cesdk.engine.asset.getGroups(r)),t=await Promise.all(e),i=new Set;return t.forEach(r=>{r.forEach(n=>i.add(n))}),Array.from(i)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},gr=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Zt=gr,mr=typeof global=="object"&&global&&global.Object===Object&&global,Yt=mr,fr=typeof self=="object"&&self&&self.Object===Object&&self,br=Yt||fr||Function("return this")(),F=br,yr=F.Symbol,ee=yr,Wt=Object.prototype,hr=Wt.hasOwnProperty,vr=Wt.toString,de=ee?ee.toStringTag:void 0;function kr(e){var t=hr.call(e,de),i=e[de];try{e[de]=void 0;var r=!0}catch{}var n=vr.call(e);return r&&(t?e[de]=i:delete e[de]),n}var wr=kr,Ir=Object.prototype,Ar=Ir.toString;function Cr(e){return Ar.call(e)}var Sr=Cr,$r="[object Null]",xr="[object Undefined]",Tt=ee?ee.toStringTag:void 0;function Er(e){return e==null?e===void 0?xr:$r:Tt&&Tt in Object(e)?wr(e):Sr(e)}var he=Er;function Mr(e){return e!=null&&typeof e=="object"}var ft=Mr,kd=Array.isArray;function Tr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Kt=Tr,Pr="[object AsyncFunction]",jr="[object Function]",_r="[object GeneratorFunction]",Lr="[object Proxy]";function Dr(e){if(!Kt(e))return!1;var t=he(e);return t==jr||t==_r||t==Pr||t==Lr}var Nr=Dr,Or=F["__core-js_shared__"],rt=Or,Pt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Fr(e){return!!Pt&&Pt in e}var Rr=Fr,zr=Function.prototype,Ur=zr.toString;function Br(e){if(e!=null){try{return Ur.call(e)}catch{}try{return e+""}catch{}}return""}var W=Br,Vr=/[\\^$.*+?()[\]{}|]/g,qr=/^\[object .+?Constructor\]$/,Gr=Function.prototype,Hr=Object.prototype,Qr=Gr.toString,Zr=Hr.hasOwnProperty,Yr=RegExp("^"+Qr.call(Zr).replace(Vr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Wr(e){if(!Kt(e)||Rr(e))return!1;var t=Nr(e)?Yr:qr;return t.test(W(e))}var Kr=Wr;function Xr(e,t){return e?.[t]}var Jr=Xr;function en(e,t){var i=Jr(e,t);return Kr(i)?i:void 0}var te=en,tn=te(F,"WeakMap"),st=tn;function rn(e,t){return e===t||e!==e&&t!==t}var nn=rn,an=9007199254740991;function on(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=an}var ln=on,wd=Object.prototype,sn="[object Arguments]";function cn(e){return ft(e)&&he(e)==sn}var jt=cn,Xt=Object.prototype,un=Xt.hasOwnProperty,dn=Xt.propertyIsEnumerable,Id=jt(function(){return arguments}())?jt:function(e){return ft(e)&&un.call(e,"callee")&&!dn.call(e,"callee")},Jt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_t=Jt&&typeof module=="object"&&module&&!module.nodeType&&module,pn=_t&&_t.exports===Jt,Lt=pn?F.Buffer:void 0,Ad=Lt?Lt.isBuffer:void 0,gn="[object Arguments]",mn="[object Array]",fn="[object Boolean]",bn="[object Date]",yn="[object Error]",hn="[object Function]",vn="[object Map]",kn="[object Number]",wn="[object Object]",In="[object RegExp]",An="[object Set]",Cn="[object String]",Sn="[object WeakMap]",$n="[object ArrayBuffer]",xn="[object DataView]",En="[object Float32Array]",Mn="[object Float64Array]",Tn="[object Int8Array]",Pn="[object Int16Array]",jn="[object Int32Array]",_n="[object Uint8Array]",Ln="[object Uint8ClampedArray]",Dn="[object Uint16Array]",Nn="[object Uint32Array]",E={};E[En]=E[Mn]=E[Tn]=E[Pn]=E[jn]=E[_n]=E[Ln]=E[Dn]=E[Nn]=!0;E[gn]=E[mn]=E[$n]=E[fn]=E[xn]=E[bn]=E[yn]=E[hn]=E[vn]=E[kn]=E[wn]=E[In]=E[An]=E[Cn]=E[Sn]=!1;function On(e){return ft(e)&&ln(e.length)&&!!E[he(e)]}var Fn=On;function Rn(e){return function(t){return e(t)}}var zn=Rn,ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fe=ei&&typeof module=="object"&&module&&!module.nodeType&&module,Un=fe&&fe.exports===ei,nt=Un&&Yt.process,Bn=function(){try{var e=fe&&fe.require&&fe.require("util").types;return e||nt&&nt.binding&&nt.binding("util")}catch{}}(),Dt=Bn,Nt=Dt&&Dt.isTypedArray,Cd=Nt?zn(Nt):Fn,Vn=Object.prototype,Sd=Vn.hasOwnProperty;function qn(e,t){return function(i){return e(t(i))}}var Gn=qn,$d=Gn(Object.keys,Object),Hn=Object.prototype,xd=Hn.hasOwnProperty,Qn=te(Object,"create"),be=Qn;function Zn(){this.__data__=be?be(null):{},this.size=0}var Yn=Zn;function Wn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Kn=Wn,Xn="__lodash_hash_undefined__",Jn=Object.prototype,ea=Jn.hasOwnProperty;function ta(e){var t=this.__data__;if(be){var i=t[e];return i===Xn?void 0:i}return ea.call(t,e)?t[e]:void 0}var ia=ta,ra=Object.prototype,na=ra.hasOwnProperty;function aa(e){var t=this.__data__;return be?t[e]!==void 0:na.call(t,e)}var oa=aa,la="__lodash_hash_undefined__";function sa(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=be&&t===void 0?la:t,this}var ca=sa;function ie(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ie.prototype.clear=Yn;ie.prototype.delete=Kn;ie.prototype.get=ia;ie.prototype.has=oa;ie.prototype.set=ca;var Ot=ie;function ua(){this.__data__=[],this.size=0}var da=ua;function pa(e,t){for(var i=e.length;i--;)if(nn(e[i][0],t))return i;return-1}var Pe=pa,ga=Array.prototype,ma=ga.splice;function fa(e){var t=this.__data__,i=Pe(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():ma.call(t,i,1),--this.size,!0}var ba=fa;function ya(e){var t=this.__data__,i=Pe(t,e);return i<0?void 0:t[i][1]}var ha=ya;function va(e){return Pe(this.__data__,e)>-1}var ka=va;function wa(e,t){var i=this.__data__,r=Pe(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var Ia=wa;function re(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}re.prototype.clear=da;re.prototype.delete=ba;re.prototype.get=ha;re.prototype.has=ka;re.prototype.set=Ia;var je=re,Aa=te(F,"Map"),ye=Aa;function Ca(){this.size=0,this.__data__={hash:new Ot,map:new(ye||je),string:new Ot}}var Sa=Ca;function $a(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xa=$a;function Ea(e,t){var i=e.__data__;return xa(t)?i[typeof t=="string"?"string":"hash"]:i.map}var _e=Ea;function Ma(e){var t=_e(this,e).delete(e);return this.size-=t?1:0,t}var Ta=Ma;function Pa(e){return _e(this,e).get(e)}var ja=Pa;function _a(e){return _e(this,e).has(e)}var La=_a;function Da(e,t){var i=_e(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Na=Da;function ne(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ne.prototype.clear=Sa;ne.prototype.delete=Ta;ne.prototype.get=ja;ne.prototype.has=La;ne.prototype.set=Na;var ti=ne;function Oa(){this.__data__=new je,this.size=0}var Fa=Oa;function Ra(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var za=Ra;function Ua(e){return this.__data__.get(e)}var Ba=Ua;function Va(e){return this.__data__.has(e)}var qa=Va,Ga=200;function Ha(e,t){var i=this.__data__;if(i instanceof je){var r=i.__data__;if(!ye||r.length<Ga-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new ti(r)}return i.set(e,t),this.size=i.size,this}var Qa=Ha;function ve(e){var t=this.__data__=new je(e);this.size=t.size}ve.prototype.clear=Fa;ve.prototype.delete=za;ve.prototype.get=Ba;ve.prototype.has=qa;ve.prototype.set=Qa;var Za=Object.prototype,Ed=Za.propertyIsEnumerable,Ya=te(F,"DataView"),ct=Ya,Wa=te(F,"Promise"),ut=Wa,Ka=te(F,"Set"),dt=Ka,Ft="[object Map]",Xa="[object Object]",Rt="[object Promise]",zt="[object Set]",Ut="[object WeakMap]",Bt="[object DataView]",Ja=W(ct),eo=W(ye),to=W(ut),io=W(dt),ro=W(st),X=he;(ct&&X(new ct(new ArrayBuffer(1)))!=Bt||ye&&X(new ye)!=Ft||ut&&X(ut.resolve())!=Rt||dt&&X(new dt)!=zt||st&&X(new st)!=Ut)&&(X=function(e){var t=he(e),i=t==Xa?e.constructor:void 0,r=i?W(i):"";if(r)switch(r){case Ja:return Bt;case eo:return Ft;case to:return Rt;case io:return zt;case ro:return Ut}return t});var Md=F.Uint8Array,no="__lodash_hash_undefined__";function ao(e){return this.__data__.set(e,no),this}var oo=ao;function lo(e){return this.__data__.has(e)}var so=lo;function pt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new ti;++t<i;)this.add(e[t])}pt.prototype.add=pt.prototype.push=oo;pt.prototype.has=so;var Vt=ee?ee.prototype:void 0,Td=Vt?Vt.valueOf:void 0,co=Object.prototype,Pd=co.hasOwnProperty,uo=Object.prototype,jd=uo.hasOwnProperty,_d=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ld=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Dd=new RegExp(/[A-Fa-f0-9]{2}/,"g");function po(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ii(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),a=new Uint8Array(n),o=new Blob([a],{type:i});return URL.createObjectURL(o)}else return e}async function gt(e,t){let i=await ii(e,t);return new Promise((r,n)=>{let a=new Image;a.onload=()=>{r({width:a.width,height:a.height})},a.onerror=n,a.src=i})}async function go(e,t,i){let r,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=o.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return ii(r,t)}function mo(e){return e!==void 0}var Le=mo;function ke(e,t){let i=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:i}}function we(e,t,i,r,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(i)}return r!==void 0?r:n}var De=class ri{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ri),i[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(i=>this.matchesFilters(i,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,i){return this.subscribers.set(i,t),()=>{this.subscribers.delete(i)}}notifySubscribers(t,i){this.subscribers.forEach((r,n)=>{if(r===null){n(t,i);return}this.matchesFilters(t,r)&&n(t,i)})}matchesFilters(t,i){return!(i.type&&t.type!==i.type||i.pluginId&&t.type==="plugin"&&t.pluginId!==i.pluginId||i.id&&t.id!==i.id||i.kind&&(t.type!=="quick"||t.kind!==i.kind))}},ni=class ai{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ai),i[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:i})=>i.kind===t)}};function fo(e){let t=e.filter(i=>!!i);return i=>async(r,n)=>{let a=[],o=s=>{a.push(s)},l=async(s,c,d)=>{if(s>=t.length)return i(c,d);let p=t[s],g=async(m,y)=>l(s+1,m,y),b={...d,addDisposer:o};return p(c,b,g)},u={...n,addDisposer:o};return{result:await l(0,r,u),dispose:async()=>{for(let s=a.length-1;s>=0;s--)try{await a[s]()}catch(c){console.error("Error in disposer:",c)}a.length=0}}}}function bo({enable:e=!0}){return async(t,i,r)=>{if(!e)return r(t,i);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await r(t,i),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var yo=bo;var at="ly.img.ai.temp";async function ho(e,t){return e.engine.asset.findAllSources().includes(at)||e.engine.asset.addLocalSource(at),e.engine.asset.apply(at,t)}function vo(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 i=e;return"message"in i&&typeof i.message=="string"?i.message:"cause"in i&&typeof i.cause=="string"?i.cause:"detail"in i&&typeof i.detail=="object"&&i.detail!==null&&"message"in i.detail&&typeof i.detail.message=="string"?i.detail.message:"error"in i&&typeof i.error=="object"&&i.error!==null&&"message"in i.error&&typeof i.error.message=="string"?i.error.message:t}return typeof e=="string"?e:String(e)||t}function oi(){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 ko(e,t=0,i="image/jpeg",r=.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 l=document.createElement("canvas");l.width=o.videoWidth,l.height=o.videoHeight;let u=l.getContext("2d");if(!u){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}u.drawImage(o,0,0,l.width,l.height);try{let s=l.toDataURL(i,r);document.body.removeChild(o),n(s)}catch(s){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${s instanceof Error?s.message:String(s)}`))}},{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 wo(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 bt(e){return e instanceof Error&&e.name==="AbortError"}function Io(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function li(e,t,i){let r="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(r);a?a!==i&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
2
+ Plugin "${t}" is using version ${i}, but other AI plugins are using version ${a}.
3
3
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
4
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(r,i)}catch(o){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",o)}}function Ao(e){let{cesdk:t,panelId:i}=e;i.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${i}" was provided.`);let r=`${i}.dock`;t.ui.registerComponent(r,({builder:n})=>{let o=t.ui.isPanelOpen(i);n.Button(`${i}.dock.button`,{label:`${i}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(a=>{a.startsWith("ly.img.ai.")&&t.ui.closePanel(a),!o&&a==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(a)}),o?t.ui.closePanel(i):t.ui.openPanel(i)}})})}var si=Ao;function Co(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[i]=t;if(!e.block.supportsFill(i)||e.block.getKind(i)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(i)))return!1;let r=e.block.getFill(i);return e.block.getType(r)==="//ly.img.ubq/fill/image"}}var N=Co;function So(e,t){let{cesdk:i,provider:r,getInput:n,middlewareOptions:o}=t;o?.defaultPrevented()||(console.error("Generation failed:",e),$o(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:vo(e)}))}function $o(e,t,i){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:o}),!0}var qt=So,xo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yt=xo;function Eo(e,t,i){switch(t){case"image":return Mo(e,i[t]);case"video":return To(e,i[t]);case"sticker":return Po(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Mo(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:yt,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:r}}}function To(e,t){let i=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:yt,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:r}}}function Po(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:yt,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:r}}}var jo=Eo;async function _o(e,t,i,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return Lo(e,i[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return Do(e,i[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return No(e,i[t],r)}case"sticker":{if(r.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: sticker)`);return Oo(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Lo(e,t,i){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n},payload:{sourceSet:[{uri:i.url,width:r,height:n}]}}}async function Do(e,t,i){let r=t.width,n=t.height,o=await ko(i.url,0);return{id:e,label:t.label,meta:{uri:i.url,thumbUri:o,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}function No(e,t,i){return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:i.duration.toString()}}}function Oo(e,t,i){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:n},payload:{sourceSet:[{uri:i.url,width:r,height:n}]}}}var ci=_o;function Fo(e){switch(e.userFlow){case"placeholder":return zo(e);case"generation-only":return Ro(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Ro(e){let{cesdk:t,abortSignal:i}=e;return async r=>{try{let n=e.kind,o=await e.getBlockInput(r);if(z(t,i))return{status:"aborted"};let a=await e.generate(r,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(z(t,i))return{status:"aborted"};if(a.status!=="success")return a;if(a.type==="async")throw new Error("Async generation is not supported in this context yet.");if(z(t,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let l=oi(),u=await ci(l,n,o,a.output),s={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,s)}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 a}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function zo(e){let{cesdk:t,abortSignal:i}=e,r;return async n=>{try{let o=e.kind,a=await e.getBlockInput(n);if(z(t,i))return{status:"aborted"};let l=oi(),u=jo(l,o,a);if(r=await ho(t,u),z(t,i,r))return{status:"aborted"};if(r!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(r),p=t.engine.block.getPositionY(r),g=t.engine.block.duplicate(r);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(r),r=g}if(r==null)throw new Error("Could not create placeholder block");t.engine.block.setState(r,{type:"Pending",progress:0});let s=await e.generate(n,{blockIds:[r],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(z(t,i,r))return{status:"aborted"};if(s.status!=="success")return s.middlewareOptions?.defaultPrevented()||r!=null&&t.engine.block.isValid(r)&&(s.status==="aborted"?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),s;if(s.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(r))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let c=await ci(l,o,a,s.output);if(z(t,i,r))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(c,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(c,r),z(t,i,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(r)&&t.engine.block.setState(r,{type:"Ready"}),s}catch(o){return r!=null&&t.engine.block.isValid(r)&&(bt(o)?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),{status:"error",message:o instanceof Error?o.message:String(o)}}}}function z(e,t,i){return t.aborted?(i!=null&&e.engine.block.isValid(i)&&e.engine.block.destroy(i),!0):!1}var Uo=Fo;function ht(e){return`${e}.generating`}function Bo(e){return`${e}.abort`}function Vo(e,t,i,r,n,o,a){let{builder:l,experimental:u}=e,{cesdk:s,includeHistoryLibrary:c=!0}=o,{id:d,output:{abortable:p}}=t,g=u.global(Bo(d),()=>{}),y=u.global(ht(d),!1),m,b=y.value&&p,h=()=>{b&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(o.requiredInputs!=null&&o.requiredInputs.length>0){let C=r();k=o.requiredInputs.every(f=>!C.input[f])}let I=u.global(`${d}.confirmationDialogId`,void 0);l.Section(`${d}.generate.section`,{children:()=>{l.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=s.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:f})=>{s.ui.closeDialog(f),I.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:f})=>{h(),s.ui.closeDialog(f),I.setValue(void 0)}}});I.setValue(C)}}:void 0,onClick:async()=>{m=new AbortController;let C=m.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{a.debug&&console.log("Aborting generation"),m?.abort()});let f=await Uo({kind:t.kind,generate:i,historyAssetSourceId:o.historyAssetSourceId,userFlow:o.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:s,debug:a.debug,dryRun:a.dryRun})(r().input);if(f.status==="aborted")return;if(f.status==="error"){qt(f.message,{cesdk:s,provider:t,getInput:r,middlewareOptions:f.middlewareOptions});return}if(f.status==="success"&&f.type==="sync"&&!f.middlewareOptions?.defaultPrevented()){let v=t.output.notification;qo(s,v,()=>({input:r().input,output:f.output}))}}catch(f){if(bt(f))return;qt(f,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,y.setValue(!1),g.setValue(()=>{}),I.value!=null&&(s.ui.closeDialog(I.value),I.setValue(void 0))}})()}}),t.output.generationHintText!=null&&l.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),c&&o.historyAssetLibraryEntryId!=null&&l.Library(`${d}.history.library`,{entries:[o.historyAssetLibraryEntryId]})}function qo(e,t,i){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:o,duration:r.duration}),!0}var ui=Vo;async function Go({options:e,provider:t,panelInput:i,config:r},n){if(i==null)return;let{cesdk:o}=e,{id:a}=t,l=i.render;return u=>{let{state:s}=u,c=s(ht(a),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=l(u,{cesdk:o,isGenerating:c});return ui(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Ho=Go;function di(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let i=t.substring(2).split("/"),r=e;for(let n of i){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[n]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function ge(e,t,i=new Set){if(t==null||i.has(t))return t;if(i.add(t),t.$ref&&typeof t.$ref=="string"){let r=di(e,t.$ref),n={...ge(e,r,i)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(n[o]=ge(e,t[o],i));return n}if(Array.isArray(t))return t.map(r=>ge(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=ge(e,t[n],i));return r}return t}function Qo(e){return ge(e,{...e})}function Zo(e,t=!1){let i=a=>(t&&console.log(`OpenAPI Schema validation failed: ${a}`),!1);if(typeof e!="object"||e===null)return i(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return i("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let a=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!a.includes(r.type))return i(`Invalid type: ${r.type}. Must be one of ${a.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!a.includes(l))return i(`Array of types contains invalid value: ${l}. Must be one of ${a.join(", ")}`)}else return i(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return i(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return i(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let n=["allOf","anyOf","oneOf"];for(let a of n)if(r[a]!==void 0){if(!Array.isArray(r[a]))return i(`${a} must be an array, got ${typeof r[a]}`);for(let l=0;l<r[a].length;l++){let u=r[a][l];if(typeof u!="object"||u===null)return i(`Item ${l} in ${a} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return i(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return i(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return i(`format must be a string, got ${typeof r.format}`);let o=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let a of o)if(r[a]!==void 0&&typeof r[a]!="number")return i(`${a} must be a number, got ${typeof r[a]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return i(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return i(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return i(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return i(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return i(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return i(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return i(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return i(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return i(`required must be an array, got ${typeof r.required}`);for(let a=0;a<r.required.length;a++){let l=r.required[a];if(typeof l!="string")return i(`Item ${a} in required array must be a string, got ${typeof l}`)}}return!0}function Yo(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return Wo(e,t).forEach(n=>{let o=n,a=i[n]??void 0;r.push({id:o,schema:a})}),r}function Wo(e,t){let i=t.order;if(i!=null&&Array.isArray(i))return i;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,n=Object.keys(r),o=Ko(e,t)??n;return i!=null&&typeof i=="function"&&(o=i(o)),[...new Set(o)]}function Ko(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 i=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return i==null?void 0:e[i]}var pi=Yo;function Y(e,t,i,r){let n=`property.${e.id}${r?`.${r}`:""}`;return[`ly.img.plugin-ai-${i}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function gi(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},i="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:i}}function mi(e,t,i,r,n,o,a,l){if(t.schema==null)if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:o};return r.renderCustomProperty[t.id](c,t)}else return;let u=t,s=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:o};return r.renderCustomProperty[t.id](c,t)}switch(s){case"string":return t.schema.enum!=null?Xo(e,u,i,r,n,o,a,l):fi(e,u,i,r,n,o,a,l);case"boolean":return bi(e,u,i,r,n,o,a,l);case"number":case"integer":return yi(e,u,i,r,n,o,a,l);case"object":return mt(e,u,i,r,n,o,a,l);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Jo(e,u,i,r,n,o,a,l);break}default:console.error(`Unsupported property type: ${s}`)}}function mt(e,t,i,r,n,o,a,l){let u=pi(t.schema??{},r).reduce((s,c)=>{let d=mi(e,c,i,r,n,o,a,l);return d!=null&&(s[c.id]=d()),s},{});return()=>({id:t.id,type:"object",value:u})}function fi(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Y(t,i,a),y=ke(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],b=we(d,m,y,t.schema.default,""),h=s(p,b),k=el(t.schema),I=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput";return u[I](p,{inputLabel:g,placeholder:n.i18n?.prompt,...h}),()=>({id:t.id,type:"string",value:h.value})}function Xo(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Y(t,i,a),{labels:y,icons:m}=gi(t.schema),b=(t.schema.enum??[]).map(v=>({id:v,label:Y(t,i,a,v),icon:m[v]})),h=ke(c,n.cesdk),k=l?.properties?.[d]??o.properties?.[d],I=we(d,k,h,t.schema.default,b[0]?.id),C=I!=null?b.find(v=>v.id===I)??b[0]:b[0],f=s(p,C);return u.Select(p,{inputLabel:g,values:b,...f}),()=>({id:t.id,type:"string",value:f.value.id})}function bi(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Y(t,i,a),y=ke(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],b=!!we(d,m,y,t.schema.default,!1),h=s(p,b);return u.Checkbox(p,{inputLabel:g,...h}),()=>({id:t.id,type:"boolean",value:h.value})}function yi(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Y(t,i,a),y=t.schema.minimum,m=t.schema.maximum,b=ke(c,n.cesdk),h=l?.properties?.[d]??o.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:m!=null?k=m:k=0);let I=we(d,h,b,k,k),C=s(p,I);if(y!=null&&m!=null){let f=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(f=t.schema["x-imgly-step"]),u.Slider(p,{inputLabel:g,min:y,max:m,step:f,...C})}else u.NumberInput(p,{inputLabel:g,min:y,max:m,...C});return()=>({id:t.id,type:"integer",value:C.value})}function Jo(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Y(t,i,a),y=t.schema.anyOf??[],m=[],b={},h={},{labels:k,icons:I}=gi(t.schema),C=ke(c,n.cesdk),f=l?.properties?.[d]??o.properties?.[d],v={string:fi,boolean:bi,integer:yi,object:mt},S=(A,D)=>A.$ref?A.$ref.split("/").pop():D.split(".").pop()??D,w=(A,D)=>({id:A,label:Y(t,i,a,D),icon:I[D]??I[A]});y.forEach((A,D)=>{let x=`${i.id}.${d}.anyOf[${D}]`;if(A.$ref||A.title){let j=A.$ref?A.$ref.split("/").pop():A.title;b[x]=()=>mt(e,{id:x,schema:{...A,title:k[j]||j}},i,r,n,o,a,l),m.push(w(x,j))}else if(A.type==="string"&&A.enum)A.enum.forEach(j=>{m.push(w(j,j))});else if(A.type&&v[A.type]){let j=v[A.type];b[x]=()=>j(e,{id:x,schema:{...A,title:A.title}},i,r,n,o,a,l);let it=S(A,x);m.push(A.type==="string"&&!A.enum?{id:x,label:A.title||it,icon:A.title&&I[A.title]||I[it]}:w(x,it))}});let T=we(d,f,C,t.schema.default,null),$=T!=null?m.find(A=>A.id===T)??m[0]:m[0],P=s(p,$);if(u.Select(p,{inputLabel:g,values:m,...P}),P.value.id in b){let A=b[P.value.id]();h[P.value.id]=A}return()=>{let A=h[P.value.id];return A!=null?{...A(),id:t.id}:{id:t.id,type:"string",value:P.value.id}}}function el(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var tl=mi,il={"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 Gt(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rl(e,t,i,r){let n={},o=(s,c)=>`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.property.${s}${c?`.${c}`:""}`,a=s=>"x-imgly-enum-labels"in s&&typeof s["x-imgly-enum-labels"]=="object"?s["x-imgly-enum-labels"]:{},l=(s,c,d)=>{s.forEach(p=>{let g=String(p),y=d[g]||Gt(g);n[o(c,g)]=y})};e.forEach(s=>{if(s.schema?.title&&(n[o(s.id)]=s.schema.title),s.schema?.enum){let c=a(s.schema);l(s.schema.enum,s.id,c)}if(s.schema?.anyOf&&Array.isArray(s.schema.anyOf)){let c=a(s.schema);s.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))l(p.enum,s.id,c);else if(p.$ref){let g=p.$ref.split("/").pop();g&&c[g]&&(n[o(s.id,g)]=c[g])}else if(p.title){let g=p.title,y=c[g]||Gt(g);n[o(s.id,g)]=y}})}});let u={...il,...n};Object.keys(u).length>0&&i.cesdk.i18n.setTranslations({en:u})}async function nl({options:e,provider:t,panelInput:i,config:r,providerConfig:n},o){let{id:a}=t;if(i==null)return;r.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let l=Qo(i.document),u=di(l,i.inputReference);if(!Zo(u,r.debug))throw new Error(`Input reference '${i.inputReference}' does not resolve to a valid OpenAPI schema`);let s=u,c=pi(s,i);return rl(c,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${a}.schema.section`,{children:()=>{c.forEach(h=>{let k=tl(d,h,t,i,e,r,t.kind,n);k!=null&&(Array.isArray(k)?g.push(...k):g.push(k))})}});let y=g.map(h=>h()),m=h=>h.type==="object"?Object.entries(h.value).reduce((k,[I,C])=>(k[I]=m(C),k),{}):h.value,b=y.reduce((h,k)=>(h[k.id]=m(k),h),{});ui(d,t,o,()=>({input:b}),()=>i.getBlockInput(b),{...e,requiredInputs:s.required,createPlaceholderBlock:i.userFlow==="placeholder"},r)}}var al=nl;async function ol(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Ho(e,t);case"schema":return al(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var ll=ol;function sl(e){let{provider:t,options:{engine:i}}=e,r=t.output.history??"@imgly/local";if(r==null||r===!1)return;let n=i.asset.findAllSources();function o(){let a=`${t.id}.history`;for(;n.includes(a);)a+=`-${Math.random().toString(36).substring(2,6)}`;return a}if(r==="@imgly/local"){let a=o();return i.asset.addLocalSource(a),a}if(r==="@imgly/indexedDB"){let a=o();return i.asset.addSource(new dr(a,i)),a}return r}var cl=sl;function ul(e,t){if(t==null||!t)return;let i=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:i,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),i}var dl=ul,ot="@imgly/plugin-ai-generation",pl=`
4
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(r,i)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Ao(e){let{cesdk:t,panelId:i}=e;i.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${i}" was provided.`);let r=`${i}.dock`;t.ui.registerComponent(r,({builder:n})=>{let a=t.ui.isPanelOpen(i);n.Button(`${i}.dock.button`,{label:`${i}.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(i):t.ui.openPanel(i)}})})}var si=Ao;function Co(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[i]=t;if(!e.block.supportsFill(i)||e.block.getKind(i)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(i)))return!1;let r=e.block.getFill(i);return e.block.getType(r)==="//ly.img.ubq/fill/image"}}var N=Co;function So(e,t){let{cesdk:i,provider:r,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),$o(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:vo(e)}))}function $o(e,t,i){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.failed",a=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var qt=So,xo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",yt=xo;function Eo(e,t,i){switch(t){case"image":return Mo(e,i[t]);case"video":return To(e,i[t]);case"sticker":return Po(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Mo(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:yt,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:r}}}function To(e,t){let i=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:yt,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:r}}}function Po(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:yt,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:r}}}var jo=Eo;async function _o(e,t,i,r){switch(t){case"image":{if(r.kind!=="image")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: image)`);return Lo(e,i[t],r)}case"video":{if(r.kind!=="video")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: video)`);return Do(e,i[t],r)}case"audio":{if(r.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: audio)`);return No(e,i[t],r)}case"sticker":{if(r.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${r.kind} (expected: sticker)`);return Oo(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Lo(e,t,i){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:n},payload:{sourceSet:[{uri:i.url,width:r,height:n}]}}}async function Do(e,t,i){let r=t.width,n=t.height,a=await ko(i.url,0);return{id:e,label:t.label,meta:{uri:i.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:n}}}function No(e,t,i){return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:i.duration.toString()}}}function Oo(e,t,i){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:n},payload:{sourceSet:[{uri:i.url,width:r,height:n}]}}}var ci=_o;function Fo(e){switch(e.userFlow){case"placeholder":return zo(e);case"generation-only":return Ro(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Ro(e){let{cesdk:t,abortSignal:i}=e;return async r=>{try{let n=e.kind,a=await e.getBlockInput(r);if(z(t,i))return{status:"aborted"};let o=await e.generate(r,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(z(t,i))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(z(t,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let l=oi(),u=await ci(l,n,a,o.output),s={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,s)}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 zo(e){let{cesdk:t,abortSignal:i}=e,r;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(z(t,i))return{status:"aborted"};let l=oi(),u=jo(l,a,o);if(r=await ho(t,u),z(t,i,r))return{status:"aborted"};if(r!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(r),p=t.engine.block.getPositionY(r),g=t.engine.block.duplicate(r);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(r),r=g}if(r==null)throw new Error("Could not create placeholder block");t.engine.block.setState(r,{type:"Pending",progress:0});let s=await e.generate(n,{blockIds:[r],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(z(t,i,r))return{status:"aborted"};if(s.status!=="success")return s.middlewareOptions?.defaultPrevented()||r!=null&&t.engine.block.isValid(r)&&(s.status==="aborted"?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),s;if(s.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(r))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let c=await ci(l,a,o,s.output);if(z(t,i,r))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(c,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(c,r),z(t,i,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(r)&&t.engine.block.setState(r,{type:"Ready"}),s}catch(a){return r!=null&&t.engine.block.isValid(r)&&(bt(a)?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function z(e,t,i){return t.aborted?(i!=null&&e.engine.block.isValid(i)&&e.engine.block.destroy(i),!0):!1}var Uo=Fo;function ht(e){return`${e}.generating`}function Bo(e){return`${e}.abort`}function Vo(e,t,i,r,n,a,o){let{builder:l,experimental:u}=e,{cesdk:s,includeHistoryLibrary:c=!0}=a,{id:d,output:{abortable:p}}=t,g=u.global(Bo(d),()=>{}),b=u.global(ht(d),!1),m,y=b.value&&p,v=()=>{y&&(g.value(),b.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let C=r();k=a.requiredInputs.every(f=>!C.input[f])}let I=u.global(`${d}.confirmationDialogId`,void 0);l.Section(`${d}.generate.section`,{children:()=>{l.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:b.value,color:"accent",isDisabled:k,suffix:y?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=s.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:f})=>{s.ui.closeDialog(f),I.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:f})=>{v(),s.ui.closeDialog(f),I.setValue(void 0)}}});I.setValue(C)}}:void 0,onClick:async()=>{m=new AbortController;let C=m.signal;await(async()=>{try{b.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),m?.abort()});let f=await Uo({kind:t.kind,generate:i,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:s,debug:o.debug,dryRun:o.dryRun})(r().input);if(f.status==="aborted")return;if(f.status==="error"){qt(f.message,{cesdk:s,provider:t,getInput:r,middlewareOptions:f.middlewareOptions});return}if(f.status==="success"&&f.type==="sync"&&!f.middlewareOptions?.defaultPrevented()){let h=t.output.notification;qo(s,h,()=>({input:r().input,output:f.output}))}}catch(f){if(bt(f))return;qt(f,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,b.setValue(!1),g.setValue(()=>{}),I.value!=null&&(s.ui.closeDialog(I.value),I.setValue(void 0))}})()}}),t.output.generationHintText!=null&&l.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),c&&a.historyAssetLibraryEntryId!=null&&l.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function qo(e,t,i){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.success",a=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:r.duration}),!0}var ui=Vo;async function Go({options:e,provider:t,panelInput:i,config:r},n){if(i==null)return;let{cesdk:a}=e,{id:o}=t;r.debug&&console.log(`Provider: ${o} (custom)`);let l=i.render;return u=>{let{state:s}=u,c=s(ht(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=l(u,{cesdk:a,isGenerating:c});return ui(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Ho=Go;function di(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let i=t.substring(2).split("/"),r=e;for(let n of i){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[n]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function ge(e,t,i=new Set){if(t==null||i.has(t))return t;if(i.add(t),t.$ref&&typeof t.$ref=="string"){let r=di(e,t.$ref),n={...ge(e,r,i)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=ge(e,t[a],i));return n}if(Array.isArray(t))return t.map(r=>ge(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=ge(e,t[n],i));return r}return t}function Qo(e){return ge(e,{...e})}function Zo(e,t=!1){let i=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return i(`Input is ${e===null?"null":typeof e}, not an object`);let r=e;if(!(typeof r.type=="string"||Array.isArray(r.enum)||typeof r.properties=="object"||typeof r.items=="object"||typeof r.allOf=="object"||typeof r.anyOf=="object"||typeof r.oneOf=="object"||typeof r.not=="object"))return i("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(r.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof r.type=="string"){if(!o.includes(r.type))return i(`Invalid type: ${r.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(r.type)){for(let l of r.type)if(typeof l!="string"||!o.includes(l))return i(`Array of types contains invalid value: ${l}. Must be one of ${o.join(", ")}`)}else return i(`Type must be a string or array of strings, got ${typeof r.type}`)}if(r.items!==void 0&&(typeof r.items!="object"||r.items===null))return i(`Items must be an object, got ${r.items===null?"null":typeof r.items}`);if(r.properties!==void 0&&(typeof r.properties!="object"||r.properties===null))return i(`Properties must be an object, got ${r.properties===null?"null":typeof r.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(r[o]!==void 0){if(!Array.isArray(r[o]))return i(`${o} must be an array, got ${typeof r[o]}`);for(let l=0;l<r[o].length;l++){let u=r[o][l];if(typeof u!="object"||u===null)return i(`Item ${l} in ${o} must be an object, got ${u===null?"null":typeof u}`)}}if(r.not!==void 0&&(typeof r.not!="object"||r.not===null))return i(`'not' must be an object, got ${r.not===null?"null":typeof r.not}`);if(r.additionalProperties!==void 0&&typeof r.additionalProperties!="boolean"&&(typeof r.additionalProperties!="object"||r.additionalProperties===null))return i(`additionalProperties must be a boolean or an object, got ${r.additionalProperties===null?"null":typeof r.additionalProperties}`);if(r.format!==void 0&&typeof r.format!="string")return i(`format must be a string, got ${typeof r.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(r[o]!==void 0&&typeof r[o]!="number")return i(`${o} must be a number, got ${typeof r[o]}`);if(r.minLength!==void 0&&(typeof r.minLength!="number"||r.minLength<0))return i(`minLength must be a non-negative number, got ${typeof r.minLength=="number"?r.minLength:typeof r.minLength}`);if(r.maxLength!==void 0&&(typeof r.maxLength!="number"||r.maxLength<0))return i(`maxLength must be a non-negative number, got ${typeof r.maxLength=="number"?r.maxLength:typeof r.maxLength}`);if(r.pattern!==void 0&&typeof r.pattern!="string")return i(`pattern must be a string, got ${typeof r.pattern}`);if(r.minItems!==void 0&&(typeof r.minItems!="number"||r.minItems<0))return i(`minItems must be a non-negative number, got ${typeof r.minItems=="number"?r.minItems:typeof r.minItems}`);if(r.maxItems!==void 0&&(typeof r.maxItems!="number"||r.maxItems<0))return i(`maxItems must be a non-negative number, got ${typeof r.maxItems=="number"?r.maxItems:typeof r.maxItems}`);if(r.uniqueItems!==void 0&&typeof r.uniqueItems!="boolean")return i(`uniqueItems must be a boolean, got ${typeof r.uniqueItems}`);if(r.minProperties!==void 0&&(typeof r.minProperties!="number"||r.minProperties<0))return i(`minProperties must be a non-negative number, got ${typeof r.minProperties=="number"?r.minProperties:typeof r.minProperties}`);if(r.maxProperties!==void 0&&(typeof r.maxProperties!="number"||r.maxProperties<0))return i(`maxProperties must be a non-negative number, got ${typeof r.maxProperties=="number"?r.maxProperties:typeof r.maxProperties}`);if(r.required!==void 0){if(!Array.isArray(r.required))return i(`required must be an array, got ${typeof r.required}`);for(let o=0;o<r.required.length;o++){let l=r.required[o];if(typeof l!="string")return i(`Item ${o} in required array must be a string, got ${typeof l}`)}}return!0}function Yo(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return Wo(e,t).forEach(n=>{let a=n,o=i[n]??void 0;r.push({id:a,schema:o})}),r}function Wo(e,t){let i=t.order;if(i!=null&&Array.isArray(i))return i;if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,n=Object.keys(r),a=Ko(e,t)??n;return i!=null&&typeof i=="function"&&(a=i(a)),[...new Set(a)]}function Ko(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 i=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return i==null?void 0:e[i]}var pi=Yo;function U(e,t,i,r){let n=`property.${e.id}${r?`.${r}`:""}`,a=[`ly.img.plugin-ai-${i}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return r==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function gi(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},i="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:i}}function mi(e,t,i,r,n,a,o,l){if(t.schema==null)if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:a};return r.renderCustomProperty[t.id](c,t)}else return;let u=t,s=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:a};return r.renderCustomProperty[t.id](c,t)}switch(s){case"string":return t.schema.enum!=null?Xo(e,u,i,r,n,a,o,l):fi(e,u,i,r,n,a,o,l);case"boolean":return bi(e,u,i,r,n,a,o,l);case"number":case"integer":return yi(e,u,i,r,n,a,o,l);case"object":return mt(e,u,i,r,n,a,o,l);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Jo(e,u,i,r,n,a,o,l);break}default:console.error(`Unsupported property type: ${s}`)}}function mt(e,t,i,r,n,a,o,l){let u=pi(t.schema??{},r).reduce((s,c)=>{let d=mi(e,c,i,r,n,a,o,l);return d!=null&&(s[c.id]=d()),s},{});return()=>({id:t.id,type:"object",value:u})}function fi(e,t,i,r,n,a,o,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=U(t,i,o),b=U(t,i,o,"placeholder"),m=ke(c,n.cesdk),y=l?.properties?.[d]??a.properties?.[d],v=we(d,y,m,t.schema.default,""),k=s(p,v),I=el(t.schema),C=I?.component!=null&&I?.component==="TextArea"?"TextArea":"TextInput",f=b.length>0?b:void 0;return u[C](p,{inputLabel:g,...f&&{placeholder:f},...k}),()=>({id:t.id,type:"string",value:k.value})}function Xo(e,t,i,r,n,a,o,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=U(t,i,o),{labels:b,icons:m}=gi(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:U(t,i,o,h),icon:m[h]})),v=ke(c,n.cesdk),k=l?.properties?.[d]??a.properties?.[d],I=we(d,k,v,t.schema.default,y[0]?.id),C=I!=null?y.find(h=>h.id===I)??y[0]:y[0],f=s(p,C);return u.Select(p,{inputLabel:g,values:y,...f}),()=>({id:t.id,type:"string",value:f.value.id})}function bi(e,t,i,r,n,a,o,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=U(t,i,o),b=ke(c,n.cesdk),m=l?.properties?.[d]??a.properties?.[d],y=!!we(d,m,b,t.schema.default,!1),v=s(p,y);return u.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function yi(e,t,i,r,n,a,o,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=U(t,i,o),b=t.schema.minimum,m=t.schema.maximum,y=ke(c,n.cesdk),v=l?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(b!=null?k=b:m!=null?k=m:k=0);let I=we(d,v,y,k,k),C=s(p,I);if(b!=null&&m!=null){let f=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(f=t.schema["x-imgly-step"]),u.Slider(p,{inputLabel:g,min:b,max:m,step:f,...C})}else u.NumberInput(p,{inputLabel:g,min:b,max:m,...C});return()=>({id:t.id,type:"integer",value:C.value})}function Jo(e,t,i,r,n,a,o,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=U(t,i,o),b=t.schema.anyOf??[],m=[],y={},v={},{labels:k,icons:I}=gi(t.schema),C=ke(c,n.cesdk),f=l?.properties?.[d]??a.properties?.[d],h={string:fi,boolean:bi,integer:yi,object:mt},S=(A,D)=>A.$ref?A.$ref.split("/").pop():D.split(".").pop()??D,w=(A,D)=>({id:A,label:U(t,i,o,D),icon:I[D]??I[A]});b.forEach((A,D)=>{let x=`${i.id}.${d}.anyOf[${D}]`;if(A.$ref||A.title){let j=A.$ref?A.$ref.split("/").pop():A.title;y[x]=()=>mt(e,{id:x,schema:{...A,title:k[j]||j}},i,r,n,a,o,l),m.push(w(x,j))}else if(A.type==="string"&&A.enum)A.enum.forEach(j=>{m.push(w(j,j))});else if(A.type&&h[A.type]){let j=h[A.type];y[x]=()=>j(e,{id:x,schema:{...A,title:A.title}},i,r,n,a,o,l);let it=S(A,x);m.push(A.type==="string"&&!A.enum?{id:x,label:A.title||it,icon:A.title&&I[A.title]||I[it]}:w(x,it))}});let T=we(d,f,C,t.schema.default,null),$=T!=null?m.find(A=>A.id===T)??m[0]:m[0],P=s(p,$);if(u.Select(p,{inputLabel:g,values:m,...P}),P.value.id in y){let A=y[P.value.id]();v[P.value.id]=A}return()=>{let A=v[P.value.id];return A!=null?{...A(),id:t.id}:{id:t.id,type:"string",value:P.value.id}}}function el(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var tl=mi,il={"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 Gt(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function rl(e,t,i,r){let n={},a=(s,c)=>`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.property.${s}${c?`.${c}`:""}`,o=s=>"x-imgly-enum-labels"in s&&typeof s["x-imgly-enum-labels"]=="object"?s["x-imgly-enum-labels"]:{},l=(s,c,d)=>{s.forEach(p=>{let g=String(p),b=d[g]||Gt(g);n[a(c,g)]=b})};e.forEach(s=>{if(s.schema?.title&&(n[a(s.id)]=s.schema.title),s.schema?.enum){let c=o(s.schema);l(s.schema.enum,s.id,c)}if(s.schema?.anyOf&&Array.isArray(s.schema.anyOf)){let c=o(s.schema);s.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))l(p.enum,s.id,c);else if(p.$ref){let g=p.$ref.split("/").pop();g&&c[g]&&(n[a(s.id,g)]=c[g])}else if(p.title){let g=p.title,b=c[g]||Gt(g);n[a(s.id,g)]=b}})}});let u={...il,...n};Object.keys(u).length>0&&i.cesdk.i18n.setTranslations({en:u})}async function nl({options:e,provider:t,panelInput:i,config:r,providerConfig:n},a){let{id:o}=t;if(i==null)return;r.debug&&console.log(`Provider: ${o} (schema-based)`);let l=Qo(i.document),u=di(l,i.inputReference);if(!Zo(u,r.debug))throw new Error(`Input reference '${i.inputReference}' does not resolve to a valid OpenAPI schema`);let s=u,c=pi(s,i);return rl(c,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${o}.schema.section`,{children:()=>{c.forEach(v=>{let k=tl(d,v,t,i,e,r,t.kind,n);k!=null&&(Array.isArray(k)?g.push(...k):g.push(k))})}});let b=g.map(v=>v()),m=v=>v.type==="object"?Object.entries(v.value).reduce((k,[I,C])=>(k[I]=m(C),k),{}):v.value,y=b.reduce((v,k)=>(v[k.id]=m(k),v),{});ui(d,t,a,()=>({input:y}),()=>i.getBlockInput(y),{...e,requiredInputs:s.required,createPlaceholderBlock:i.userFlow==="placeholder"},r)}}var al=nl;async function ol(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Ho(e,t);case"schema":return al(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var ll=ol;function sl(e){let{provider:t,options:{engine:i}}=e,r=t.output.history??"@imgly/local";if(r==null||r===!1)return;let n=i.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(r==="@imgly/local"){let o=a();return i.asset.addLocalSource(o),o}if(r==="@imgly/indexedDB"){let o=a();return i.asset.addSource(new dr(o,i)),o}return r}var cl=sl;function ul(e,t){if(t==null||!t)return;let i=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:i,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),i}var dl=ul,ot="@imgly/plugin-ai-generation",pl=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -62,8 +62,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
62
62
 
63
63
  </symbol>
64
64
  </svg>
65
- `,gl=pl;function ml(e){return async(t,i,r)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await hi(2e3),await fl(t,e,i)):r(t,i)}async function fl(e,t,i){switch(t.kind){case"image":return bl(e,t,i);case"video":return yl(e,t,i);case"text":return hl(e,t,i);case"audio":return kl(e,t,i);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function bl(e,t,{engine:i}){let r,n,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",a=o.match(/(\d+)x(\d+)/);if(a!=null)r=parseInt(a[1],10),n=parseInt(a[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await go(l,i),s=await gt(u,i);r=s.width,n=s.height}else r=512,n=512;return{kind:"image",url:`https://placehold.co/${r}x${n}/000000/FFF?text=${o.replace(" ","+").replace(`
66
- `,"+")}`}}async function yl(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function hl(e,t,i){let r="";if(t.blockIds&&t.blockIds.length>0){let[a]=t.blockIds;i.engine.block.isValid(a)&&(r=i.engine.block.getString(a,"text/text"))}if(!r&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let a=e.prompt,l=a.match(/text:\s*"([^"]+)"/i)||a.match(/content:\s*"([^"]+)"/i)||a.match(/"([^"]+)"/);l&&l[1]&&(r=l[1])}let n=r.length||50,o="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")o=pe(n,"translation");else if("type"in e&&typeof e.type=="string"){let a=e.type;o=pe(n,a)}else"customPrompt"in e?o=pe(n,"custom"):o=pe(n,"improved");else o=pe(n,"generated");return vl(o,i.abortSignal)}async function*vl(e,t){let i=Math.max(1,Math.ceil(e.length/20)),r=0;for(;r<e.length;){if(t?.aborted)return;let n=Math.min(r+i,e.length);yield{kind:"text",text:e.substring(0,n)},r=n,r<e.length&&await hi(100)}return{kind:"text",text:e}}function pe(e,t){let i="[DRY RUN - Dummy Text] ",r=i.length;if(e<=r)return i.substring(0,e);let n=e-r,o={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."},a=o[t]||o.generated,l="";if(n<=a.length)l=a.substring(0,n);else{l=a;let u=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],s=0;for(;l.length<n;){let c=u[s%u.length];if(l.length+c.length<=n)l+=c;else{l+=c.substring(0,n-l.length);break}s++}}return i+l}async function kl(e,t,i){let r=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")r=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(r=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(r=t.blockInputs.audio.duration),{kind:"audio",url:wl(220,r),duration:r,thumbnailUrl:void 0}}function wl(e,t){let i=Math.floor(44100*t),r=new Float32Array(i);for(let n=0;n<i;n++)r[n]=Math.sin(2*Math.PI*e*n/44100);return Il(r,44100)}function Il(e,t){let i=e.length,r=2,n=1,o=n*r,a=t*o,l=i*r,u=44+l,s=new ArrayBuffer(u),c=new DataView(s),d=(m,b)=>{for(let h=0;h<b.length;h++)c.setUint8(m+h,b.charCodeAt(h))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,a,!0),c.setUint16(32,o,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,l,!0);let p=44;for(let m=0;m<i;m++){let b=Math.max(-1,Math.min(1,e[m])),h=Math.round(b*32767);c.setInt16(p,h,!0),p+=2}let g=new Uint8Array(s),y="";for(let m=0;m<g.length;m++)y+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(y)}`}async function hi(e){return new Promise(t=>{setTimeout(t,e)})}var Al=ml,vi="USER_CANCEL";function Cl(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=fo([...e.provider.output.middleware??[],...i?.middlewares??[],yo({enable:i?.debug}),Al({enable:i?.dryRun,kind:e.provider.kind})]),n={prevented:!1},o={blockIds:i?.blockIds,abortSignal:i?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:a}=await r(e.provider.output.generate)(t,o);return i?.abortSignal?.aborted?{status:"aborted",middlewareOptions:o}:a instanceof Error?{status:"error",message:a.message,middlewareOptions:o}:a==null?{status:"error",message:"No output generated",middlewareOptions:o}:wo(a)?{status:"success",type:"async",output:a,middlewareOptions:o}:{status:"success",type:"sync",output:a,middlewareOptions:o}}catch(a){return bt(a)?{status:"aborted",message:a.message,middlewareOptions:o}:a===vi?{status:"aborted",message:a,middlewareOptions:o}:{status:"error",message:a instanceof Error?a.message:String(a),middlewareOptions:o}}}}var Sl=Cl;async function $l(e,t,i,r){let n={...r,provider:t},o={provider:t,panelInput:t.input?.panel,options:{cesdk:i.cesdk,engine:i.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...i,engine:i.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=De.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}`;i.cesdk.feature.enable(y,!0)}})}let a=cl(o),l=dl(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let u=Sl({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await ll(o,u);Io(i.cesdk,"@imgly/plugin-ai-generation",gl);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:u};return ni.get().register(c),c}var lt=$l;function xl(e){let{kind:t,cesdk:i,historAssetSourceIds:r}=e,n=`ly.img.ai.${t}-generation.history`;if(i.engine.asset.findAllSources().includes(n))return n;let o=new pr(n,i,r);return i.engine.asset.addSource(o),o.id}var El=xl;function me(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 Ml(e,t,i,r){let{cesdk:n}=i;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let o,a=[];if(Array.isArray(t)){let s=await Promise.all(t.map(c=>lt(e,c,i,r)));a.push(...s),o=Pl({kind:e,prefix:e,providerInitializationResults:a,cesdk:n})}else{let s=await Promise.all(t.fromText.map(d=>lt(e,d,i,r)));a.push(...s);let c=await Promise.all(t.fromImage.map(d=>lt(e,d,i,r)));a.push(...c),o=Tl({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}let l=El({kind:e,cesdk:i.cesdk,historAssetSourceIds:a.map(s=>s.history?.assetSourceId).filter(Le)}),u;return l!=null&&(u=l,i.cesdk.ui.addAssetLibraryEntry({id:u,sourceIds:[l],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:o},history:{assetSourceId:l,assetLibraryEntryId:u},providerInitializationResults:a}}function Tl({kind:e,prefix:t,initializedFromTextProviders:i,initializedFromImageProviders:r,cesdk:n}){let o=i.length>0&&r.length>0;return a=>{let{builder:l,experimental:u,engine:s}=a,c=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(c,{engine:s}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:s}),y;d&&i.length>0&&(!g||r.length===0)?y="fromText":g&&r.length>0&&(!d||i.length===0)?y="fromImage":d&&g&&o&&(y="fromText");let m=u.global(`${t}.fromType`,y),b=[];m.value==="fromText"?b.push(...i):m.value==="fromImage"?b.push(...r):b.push(...i,...r);let h=i.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),k=r.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),I=a.experimental.global(`${t}.selectedProvider.fromText`,h[0]?.id),C=a.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),f=h.find(x=>x.id===I.value)??h[0],v=k.find(x=>x.id===C.value)??k[0],S=m.value==="fromText"?I:m.value==="fromImage"?C:void 0,w=m.value==="fromText"?f:m.value==="fromImage"?v:void 0,T=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(T,{engine:s});if(!d&&!g){l.Section(`${t}.noInputWarning.section`,{children:()=>{l.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 P=d&&g&&i.length>0&&r.length>0,A=o&&P,D=b.length>1&&$;if((A||D)&&l.Section(`${t}.providerSelection.section`,{children:()=>{if(A&&l.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:me(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:me(e,"fromText.label"),icon:m.value!=="fromText"&&Ht(i,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromText",onClick:()=>{m.setValue("fromText")}}),g&&r.length>0&&l.Button(`${t}.fromType.buttonGroup.fromImage`,{label:me(e,"fromImage.label"),icon:m.value!=="fromImage"&&Ht(r,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),D){let x=m.value==="fromText"?h:m.value==="fromImage"?k:[...h,...k];S!=null&&w!=null&&l.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:x,value:w,setValue:j=>{S.setValue(j.id)}})}}}),b.length>1)w?.builderRenderFunction?.(a);else{let x=b[0];x&&x.panel?.builderRenderFunction?.(a)}}}function Pl({kind:e,prefix:t,providerInitializationResults:i,cesdk:r}){return n=>{let{builder:o,engine:a}=n;if(i.length===0)return;let l=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?l="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(l="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let u=r.feature.isEnabled(l,{engine:a}),s=i.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),c=n.state(`${t}.selectedProvider`,s[0]?.id),d=s.find(p=>p.id===c.value)??s[0];i.length>1&&u&&c!=null&&d!=null&&o.Section(`${t}.providerSelection.section`,{children:()=>{o.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:s,value:d,setValue:p=>{c.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Ht(e,t){return e.length===0?!1:e.some(({provider:i})=>i.id==null?!1:t.experimental.global(ht(i.id),!1).value)}var ki=Ml,Ie="ly.img.ai.editMode",wi="ly.img.ai.metadata";async function jl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let i=r=>{let{engine:n,builder:o,state:a,payload:l}=r;if(l==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let s=new Zt(n,wi),c=s.get(u[0]);if(c==null)return null;let d=()=>{u.forEach(p=>{s.clear(p)})};switch(c.status){case"processing":{o.Button(`${t}.spinner`,{label:[`ly.img.ai.${c.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),o.Separator(`${t}.separator`),o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{l.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=a(`${t}.comparing`,"after"),g=l.applyCallbacks?.onCancel;g!=null&&o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=l.applyCallbacks?.onBefore,m=l.applyCallbacks?.onAfter;y!=null&&m!=null&&o.ButtonGroup(`${t}.compare`,{children:()=>{o.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),o.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{m(),p.setValue("after")}})}});let b=l.applyCallbacks?.onApply;b!=null&&o.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let h=e.cesdk.engine.editor;typeof h._update=="function"&&h._update(),b()}});break}default:}};return Promise.resolve(i)}var _l=jl;function Ll(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((i,r)=>(r==="ly.img.separator"&&i.length>0&&i[i.length-1]==="ly.img.separator"||i.push(r),i),[])}var Dl=Ll;function Nl(e){return`ly.img.ai.${e}.canvasMenu`}var Ol=Nl;function Fl(e){let{kind:t,cesdk:i,payload:r,defaultOrder:n}=e,o=Ol(t);if(r==null||!Array.isArray(r.children)){let a=i.ui.getCanvasMenuOrder().find(({id:l})=>l===o);return a!=null&&Array.isArray(a.children)?a.children:n??[]}return r.children.filter(a=>typeof a=="string")}var Rl=Fl;function zl(e,t){if(t.blockIds.some(i=>!t.cesdk.engine.block.isValid(i)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return Ul(e,t);case"image":return Bl(e,t);case"video":return Vl(e,t);case"audio":return ql(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Ul(e,t){let{cesdk:i,blockIds:r,abortSignal:n}=t,o=r.map(s=>i.engine.block.getString(s,"text/text")),a;if(e.type==="async"){let s="";for await(let c of e.output){if(n?.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{i.engine.block.setString(d,"text/text",s)}),a={kind:"text",text:s}}}else a=e.output;if(a==null||a.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&r.forEach(s=>{i.engine.block.setString(s,"text/text",a.text)});let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",a.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",o[c])})};return{applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Bl(e,t){let{cesdk:i,blockIds:r,abortSignal:n}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,a=i.engine.block.getFill(o),l=i.engine.block.getSourceSet(a,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=i.engine.block.getString(a,"fill/image/imageFileURI"));let c=await i.engine.editor.getMimeType(u?.uri??s),d=await gt(u?.uri??s,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let g=i.engine.block.getCropScaleX(o),y=i.engine.block.getCropScaleY(o),m=i.engine.block.getCropTranslationX(o),b=i.engine.block.getCropTranslationY(o),h=i.engine.block.getCropRotation(o),k=()=>{i.engine.block.setCropScaleX(o,g),i.engine.block.setCropScaleY(o,y),i.engine.block.setCropTranslationX(o,m),i.engine.block.setCropTranslationY(o,b),i.engine.block.setCropRotation(o,h)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let I=e.output.url,C=await i.engine.editor.getMimeType(I),f=await Gl(i,I,C),v=await gt(f,t.cesdk.engine),S=v.width/v.height,w=Math.abs(p-S)>.001,T=u?[{uri:f,width:v.width,height:v.height}]:void 0,$=f;T==null?i.engine.block.setString(a,"fill/image/imageFileURI",$):(i.engine.block.setString(a,"fill/image/imageFileURI",""),i.engine.block.setSourceSet(a,"fill/image/sourceSet",T)),await i.engine.block.forceLoadResources([a]),w?i.engine.block.setContentFillMode(o,"Cover"):k();let P=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");i.engine.block.setString(a,"fill/image/imageFileURI",s)}else i.engine.block.setSourceSet(a,"fill/image/sourceSet",l);k()},A=()=>{if(T==null){if($==null)throw new Error("No image URI found");i.engine.block.setString(a,"fill/image/imageFileURI",$)}else i.engine.block.setSourceSet(a,"fill/image/sourceSet",T);w?i.engine.block.setContentFillMode(o,"Cover"):k()};return{applyCallbacks:{onBefore:P,onAfter:A,onCancel:()=>{P()},onApply:()=>{A(),t.cesdk.engine.editor.addUndoStep()}}}}async function Vl(e,t){throw new Error("Function not implemented.")}async function ql(e,t){throw new Error("Function not implemented.")}async function Gl(e,t,i){let r=await(await fetch(t)).blob(),n=new File([r],`image.${po(i)}`,{type:i}),o=await e.unstable_upload(n,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Hl=zl;function Ql(e){let{engine:t,blockIdsToLock:i,editModeToLockTo:r}=e;function n(){let u=t.block.findAllSelected();return i.some(s=>u.includes(s))}let o=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==r&&n()&&t.editor.setEditMode(r)}),a=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(r):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(r);let l=!1;return()=>{l||(a(),o(),t.editor.setEditMode("Transform"),l=!0)}}var Zl=Ql,Yl=class Ii{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new Ii),i[t]}register(t,i){let r=this.actions.get(t)??{};this.actions.set(t,{...r,...i})}get(t){return this.actions.get(t)??{}}},Z=Yl;function Wl(e){return async(t,i)=>{let r=i?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let o=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:c=>c;e.close();let a=new AbortController,l=AbortSignal.any([e.abortSignal,a.signal].filter(Le)),u=new Zt(e.cesdk.engine,wi),s=e.lock??!0?Zl({engine:e.cesdk.engine,editModeToLockTo:Ie,blockIdsToLock:r}):()=>{};r.forEach(c=>{Z.get().register(c,{onCancelGeneration:()=>{a.abort(vi),s(),e.cesdk.engine.block.isValid(c)&&(e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"}),u.clear(c))}})}),r?.forEach(c=>{u.set(c,{status:"processing",quickActionId:e.quickAction.id})}),r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Pending",progress:0})});try{let c=await e.providerInitializationResult.generate(o(t),{blockIds:r,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:l}),d=c.status;switch(d){case"success":{let{applyCallbacks:p}=await Hl(c,{kind:e.providerInitializationResult.provider.kind,blockIds:r,cesdk:e.cesdk,abortSignal:l});if(r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){r.forEach(y=>{u.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(y=>{Z.get().register(y,{applyCallbacks:g})})}else r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&u.clear(g)}),p.onApply(),s();return c}case"aborted":return e.debug&&console.log("Generation was aborted"),s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c;case"error":return s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${c.message}`),c;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(c){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),s(),r.forEach(d=>{e.cesdk.engine.block.isValid(d)&&u.clear(d)}),c}finally{r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"})})}}}var Qt=Wl;function Kl(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let i=r=>{if(r.engine.editor.getEditMode()===Ie)return;let n=r.engine.block.findAllSelected();if(n.length===0)return;let o=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(o,{engine:e.engine}))return;let{payload:a}=r,l=Rl({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=Xl(l).filter(f=>{if(f==="ly.img.separator")return!0;let v=f.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${v}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let w=f.scopes;if(w!=null&&w.length>0&&!n.every(T=>w.every($=>e.engine.block.isAllowedByScope(T,$))))return!1;if(f.enable!=null){if(typeof f.enable=="function")return f.enable({engine:e.engine});if(typeof f.enable=="boolean")return f.enable}return!0}),s=[],c=e.providerInitializationResults.reduce((f,v)=>{if(v.provider.kind!==e.kind)return f;let S=u.map(w=>{if(w==="ly.img.separator")return w;if(v.provider.input?.quickActions?.supported?.[w.id]!=null)return{definition:w};{let T=ni.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==v.provider.id).find($=>$.provider.input?.quickActions?.supported?.[w.id]!=null);if(T!=null){let $={definition:w,providerInitializationResult:T};return s.push($),$}else return}}).filter(Le);return S=Dl(S),S.length===0||S.every(w=>w==="ly.img.separator")||S.every(w=>w==="ly.img.separator"||w.providerInitializationResult!=null)||f.push({providerInitializationResult:v,quickActions:S}),f},[]);if(c.length===0)if(s.length>0){let f=new Map;s.forEach(S=>{let w=S.definition.id;f.has(w)||f.set(w,S)});let v=Array.from(f.values());c.push({providerInitializationResult:v[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:v})}else return;let d=c.map(({providerInitializationResult:f})=>({id:f.provider.id,label:f.provider.name??f.provider.id})),p=r.experimental.global(`${t}.currentProvider`,d[0]),g=c.find(({providerInitializationResult:{provider:{id:f}}})=>f===p.value?.id),y=n.every(f=>r.engine.block.getState(f).type==="Ready"),{builder:m,experimental:b,state:h}=r,k=h(`${t}.isGenerating`,!1),I=h(`${t}.toggleExpandedState`,void 0),C=async(f,v,S)=>{k.setValue(!0);try{return await S(f,v)}finally{k.setValue(!1)}};b.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:f})=>{if(I.value!==void 0){let v=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===I.value);if(v==null||v.definition.render==null)return;let S=c.filter(({quickActions:$})=>$.some(P=>P!=="ly.img.separator"&&P.definition.id===v.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:$.provider.name??$.provider.id})),w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,T=e.cesdk.feature.isEnabled(w,{engine:e.engine});S.length>1&&T&&m.Section(`${t}.popover.expanded.header`,{children:()=>{m.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),m.Section(`${t}.popover.expanded.section`,{children:()=>v.definition.render({...r,toggleExpand:()=>{I.setValue(void 0)},isExpanded:!0,generate:Qt({blockIds:n,providerInitializationResult:v.providerInitializationResult??g?.providerInitializationResult,quickAction:v.definition,middlewares:[C],confirmation:v.definition.defaults?.confirmation??!0,lock:v.definition.defaults?.lock??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}else{let v=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(v,{engine:e.engine});d.length>1&&S&&m.Section(`${t}.popover.header`,{children:()=>{m.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),m.Section(`${t}.popover.section`,{children:()=>{b.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(w=>{if(w==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}w.definition.render!=null&&w.definition.render({...r,toggleExpand:()=>{I.setValue(w.definition.id)},isExpanded:!1,generate:Qt({blockIds:n,providerInitializationResult:w.providerInitializationResult??g?.providerInitializationResult,quickAction:w.definition,middlewares:[C],confirmation:w.definition.defaults?.confirmation??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}})}})}}})};return Promise.resolve(i)}function Xl(e){return e.map(t=>t==="ly.img.separator"?t:De.get().getBy({id:t,type:"quick"})[0]).filter(Le)}var Jl=Kl;async function es(e){let t=await Jl({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),i=await _l({kind:e.kind,cesdk:e.cesdk});return{renderFunction:r=>{let{engine:n}=r;if(n.editor.getEditMode()===Ie){let o=r.engine.block.findAllSelected();i({...r,payload:{...r.payload??{},applyCallbacks:{onBefore:()=>{o.forEach(a=>{Z.get().get(a).applyCallbacks?.onBefore?.()})},onAfter:()=>{o.forEach(a=>{Z.get().get(a).applyCallbacks?.onAfter?.()})},onCancel:()=>{o.forEach(a=>{Z.get().get(a).applyCallbacks?.onCancel?.()})},onApply:()=>{o.forEach(a=>{Z.get().get(a).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{o.forEach(a=>{Z.get().get(a).onCancelGeneration?.()})}}});return}t(r)}}}var Ai=es;var Ci="@imgly/plugin-ai-image-generation",ts=`
65
+ `,gl=pl;function ml(e){return async(t,i,r)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await hi(2e3),await fl(t,e,i)):r(t,i)}async function fl(e,t,i){switch(t.kind){case"image":return bl(e,t,i);case"video":return yl(e,t,i);case"text":return hl(e,t,i);case"audio":return kl(e,t,i);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function bl(e,t,{engine:i}){let r,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)r=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(r=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,u=await go(l,i),s=await gt(u,i);r=s.width,n=s.height}else r=512,n=512;return{kind:"image",url:`https://placehold.co/${r}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
66
+ `,"+")}`}}async function yl(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function hl(e,t,i){let r="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;i.engine.block.isValid(o)&&(r=i.engine.block.getString(o,"text/text"))}if(!r&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,l=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);l&&l[1]&&(r=l[1])}let n=r.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=pe(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=pe(n,o)}else"customPrompt"in e?a=pe(n,"custom"):a=pe(n,"improved");else a=pe(n,"generated");return vl(a,i.abortSignal)}async function*vl(e,t){let i=Math.max(1,Math.ceil(e.length/20)),r=0;for(;r<e.length;){if(t?.aborted)return;let n=Math.min(r+i,e.length);yield{kind:"text",text:e.substring(0,n)},r=n,r<e.length&&await hi(100)}return{kind:"text",text:e}}function pe(e,t){let i="[DRY RUN - Dummy Text] ",r=i.length;if(e<=r)return i.substring(0,e);let n=e-r,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,l="";if(n<=o.length)l=o.substring(0,n);else{l=o;let u=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],s=0;for(;l.length<n;){let c=u[s%u.length];if(l.length+c.length<=n)l+=c;else{l+=c.substring(0,n-l.length);break}s++}}return i+l}async function kl(e,t,i){let r=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")r=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(r=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(r=t.blockInputs.audio.duration),{kind:"audio",url:wl(220,r),duration:r,thumbnailUrl:void 0}}function wl(e,t){let i=Math.floor(44100*t),r=new Float32Array(i);for(let n=0;n<i;n++)r[n]=Math.sin(2*Math.PI*e*n/44100);return Il(r,44100)}function Il(e,t){let i=e.length,r=2,n=1,a=n*r,o=t*a,l=i*r,u=44+l,s=new ArrayBuffer(u),c=new DataView(s),d=(m,y)=>{for(let v=0;v<y.length;v++)c.setUint8(m+v,y.charCodeAt(v))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,o,!0),c.setUint16(32,a,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,l,!0);let p=44;for(let m=0;m<i;m++){let y=Math.max(-1,Math.min(1,e[m])),v=Math.round(y*32767);c.setInt16(p,v,!0),p+=2}let g=new Uint8Array(s),b="";for(let m=0;m<g.length;m++)b+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(b)}`}async function hi(e){return new Promise(t=>{setTimeout(t,e)})}var Al=ml,vi="USER_CANCEL";function Cl(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=fo([...e.provider.output.middleware??[],...i?.middlewares??[],yo({enable:i?.debug}),Al({enable:i?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:i?.blockIds,abortSignal:i?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await r(e.provider.output.generate)(t,a);return i?.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}:wo(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return bt(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===vi?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var Sl=Cl;async function $l(e,t,i,r){let n={...r,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:i.cesdk,engine:i.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...i,engine:i.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=De.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let b=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;i.cesdk.feature.enable(b,!0)}})}let o=cl(a),l=dl(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=l;let u=Sl({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await ll(a,u);Io(i.cesdk,"@imgly/plugin-ai-generation",gl);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:o,assetLibraryEntryId:l},generate:u};return ni.get().register(c),c}var lt=$l;function xl(e){let{kind:t,cesdk:i,historAssetSourceIds:r}=e,n=`ly.img.ai.${t}-generation.history`;if(i.engine.asset.findAllSources().includes(n))return n;let a=new pr(n,i,r);return i.engine.asset.addSource(a),a.id}var El=xl;function me(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 Ml(e,t,i,r){let{cesdk:n}=i;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(r.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let s=await Promise.all(t.map(c=>lt(e,c,i,r)));o.push(...s),a=Pl({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let s=await Promise.all(t.fromText.map(d=>lt(e,d,i,r)));o.push(...s);let c=await Promise.all(t.fromImage.map(d=>lt(e,d,i,r)));o.push(...c),a=Tl({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}r.debug&&console.groupEnd();let l=El({kind:e,cesdk:i.cesdk,historAssetSourceIds:o.map(s=>s.history?.assetSourceId).filter(Le)}),u;return l!=null&&(u=l,i.cesdk.ui.addAssetLibraryEntry({id:u,sourceIds:[l],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:l,assetLibraryEntryId:u},providerInitializationResults:o}}function Tl({kind:e,prefix:t,initializedFromTextProviders:i,initializedFromImageProviders:r,cesdk:n}){let a=i.length>0&&r.length>0;return o=>{let{builder:l,experimental:u,engine:s}=o,c=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(c,{engine:s}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:s}),b;d&&i.length>0&&(!g||r.length===0)?b="fromText":g&&r.length>0&&(!d||i.length===0)?b="fromImage":d&&g&&a&&(b="fromText");let m=u.global(`${t}.fromType`,b),y=[];m.value==="fromText"?y.push(...i):m.value==="fromImage"?y.push(...r):y.push(...i,...r);let v=i.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),k=r.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),I=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),C=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),f=v.find(x=>x.id===I.value)??v[0],h=k.find(x=>x.id===C.value)??k[0],S=m.value==="fromText"?I:m.value==="fromImage"?C:void 0,w=m.value==="fromText"?f:m.value==="fromImage"?h:void 0,T=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=n.feature.isEnabled(T,{engine:s});if(!d&&!g){l.Section(`${t}.noInputWarning.section`,{children:()=>{l.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 P=d&&g&&i.length>0&&r.length>0,A=a&&P,D=y.length>1&&$;if((A||D)&&l.Section(`${t}.providerSelection.section`,{children:()=>{if(A&&l.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:me(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:me(e,"fromText.label"),icon:m.value!=="fromText"&&Ht(i,o)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromText",onClick:()=>{m.setValue("fromText")}}),g&&r.length>0&&l.Button(`${t}.fromType.buttonGroup.fromImage`,{label:me(e,"fromImage.label"),icon:m.value!=="fromImage"&&Ht(r,o)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),D){let x=m.value==="fromText"?v:m.value==="fromImage"?k:[...v,...k];S!=null&&w!=null&&l.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:x,value:w,setValue:j=>{S.setValue(j.id)}})}}}),y.length>1)w?.builderRenderFunction?.(o);else{let x=y[0];x&&x.panel?.builderRenderFunction?.(o)}}}function Pl({kind:e,prefix:t,providerInitializationResults:i,cesdk:r}){return n=>{let{builder:a,engine:o}=n;if(i.length===0)return;let l=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?l="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(l="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let u=r.feature.isEnabled(l,{engine:o}),s=i.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),c=n.state(`${t}.selectedProvider`,s[0]?.id),d=s.find(p=>p.id===c.value)??s[0];i.length>1&&u&&c!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:s,value:d,setValue:p=>{c.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Ht(e,t){return e.length===0?!1:e.some(({provider:i})=>i.id==null?!1:t.experimental.global(ht(i.id),!1).value)}var ki=Ml,Ie="ly.img.ai.editMode",wi="ly.img.ai.metadata";async function jl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let i=r=>{let{engine:n,builder:a,state:o,payload:l}=r;if(l==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let s=new Zt(n,wi),c=s.get(u[0]);if(c==null)return null;let d=()=>{u.forEach(p=>{s.clear(p)})};switch(c.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${c.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{l.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=l.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let b=l.applyCallbacks?.onBefore,m=l.applyCallbacks?.onAfter;b!=null&&m!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{b(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{m(),p.setValue("after")}})}});let y=l.applyCallbacks?.onApply;y!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),y()}});break}default:}};return Promise.resolve(i)}var _l=jl;function Ll(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((i,r)=>(r==="ly.img.separator"&&i.length>0&&i[i.length-1]==="ly.img.separator"||i.push(r),i),[])}var Dl=Ll;function Nl(e){return`ly.img.ai.${e}.canvasMenu`}var Ol=Nl;function Fl(e){let{kind:t,cesdk:i,payload:r,defaultOrder:n}=e,a=Ol(t);if(r==null||!Array.isArray(r.children)){let o=i.ui.getCanvasMenuOrder().find(({id:l})=>l===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return r.children.filter(o=>typeof o=="string")}var Rl=Fl;function zl(e,t){if(t.blockIds.some(i=>!t.cesdk.engine.block.isValid(i)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return Ul(e,t);case"image":return Bl(e,t);case"video":return Vl(e,t);case"audio":return ql(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Ul(e,t){let{cesdk:i,blockIds:r,abortSignal:n}=t,a=r.map(s=>i.engine.block.getString(s,"text/text")),o;if(e.type==="async"){let s="";for await(let c of e.output){if(n?.aborted)break;typeof c=="string"?s=c:c.kind==="text"&&(s=c.text),r.forEach(d=>{i.engine.block.setString(d,"text/text",s)}),o={kind:"text",text:s}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&r.forEach(s=>{i.engine.block.setString(s,"text/text",o.text)});let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",o.text)})},u=()=>{t.blockIds.forEach((s,c)=>{t.cesdk.engine.block.setString(s,"text/text",a[c])})};return{applyCallbacks:{onBefore:u,onAfter:l,onCancel:u,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function Bl(e,t){let{cesdk:i,blockIds:r,abortSignal:n}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[a]=r,o=i.engine.block.getFill(a),l=i.engine.block.getSourceSet(o,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=i.engine.block.getString(o,"fill/image/imageFileURI"));let c=await i.engine.editor.getMimeType(u?.uri??s),d=await gt(u?.uri??s,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let g=i.engine.block.getCropScaleX(a),b=i.engine.block.getCropScaleY(a),m=i.engine.block.getCropTranslationX(a),y=i.engine.block.getCropTranslationY(a),v=i.engine.block.getCropRotation(a),k=()=>{i.engine.block.setCropScaleX(a,g),i.engine.block.setCropScaleY(a,b),i.engine.block.setCropTranslationX(a,m),i.engine.block.setCropTranslationY(a,y),i.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let I=e.output.url,C=await i.engine.editor.getMimeType(I),f=await Gl(i,I,C),h=await gt(f,t.cesdk.engine),S=h.width/h.height,w=Math.abs(p-S)>.001,T=u?[{uri:f,width:h.width,height:h.height}]:void 0,$=f;T==null?i.engine.block.setString(o,"fill/image/imageFileURI",$):(i.engine.block.setString(o,"fill/image/imageFileURI",""),i.engine.block.setSourceSet(o,"fill/image/sourceSet",T)),await i.engine.block.forceLoadResources([o]),w?i.engine.block.setContentFillMode(a,"Cover"):k();let P=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");i.engine.block.setString(o,"fill/image/imageFileURI",s)}else i.engine.block.setSourceSet(o,"fill/image/sourceSet",l);k()},A=()=>{if(T==null){if($==null)throw new Error("No image URI found");i.engine.block.setString(o,"fill/image/imageFileURI",$)}else i.engine.block.setSourceSet(o,"fill/image/sourceSet",T);w?i.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:P,onAfter:A,onCancel:()=>{P()},onApply:()=>{A(),t.cesdk.engine.editor.addUndoStep()}}}}async function Vl(e,t){throw new Error("Function not implemented.")}async function ql(e,t){throw new Error("Function not implemented.")}async function Gl(e,t,i){let r=await(await fetch(t)).blob(),n=new File([r],`image.${po(i)}`,{type:i}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Hl=zl;function Ql(e){let{engine:t,blockIdsToLock:i,editModeToLockTo:r}=e;function n(){let u=t.block.findAllSelected();return i.some(s=>u.includes(s))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==r&&n()&&t.editor.setEditMode(r)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(r):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(r);let l=!1;return()=>{l||(o(),a(),t.editor.setEditMode("Transform"),l=!0)}}var Zl=Ql,Yl=class Ii{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new Ii),i[t]}register(t,i){let r=this.actions.get(t)??{};this.actions.set(t,{...r,...i})}get(t){return this.actions.get(t)??{}}},Y=Yl;function Wl(e){return async(t,i)=>{let r=i?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:c=>c;e.close();let o=new AbortController,l=AbortSignal.any([e.abortSignal,o.signal].filter(Le)),u=new Zt(e.cesdk.engine,wi),s=e.lock??!0?Zl({engine:e.cesdk.engine,editModeToLockTo:Ie,blockIdsToLock:r}):()=>{};r.forEach(c=>{Y.get().register(c,{onCancelGeneration:()=>{o.abort(vi),s(),e.cesdk.engine.block.isValid(c)&&(e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"}),u.clear(c))}})}),r?.forEach(c=>{u.set(c,{status:"processing",quickActionId:e.quickAction.id})}),r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Pending",progress:0})});try{let c=await e.providerInitializationResult.generate(a(t),{blockIds:r,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:l}),d=c.status;switch(d){case"success":{let{applyCallbacks:p}=await Hl(c,{kind:e.providerInitializationResult.provider.kind,blockIds:r,cesdk:e.cesdk,abortSignal:l});if(r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){r.forEach(b=>{u.set(b,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(b=>{Y.get().register(b,{applyCallbacks:g})})}else r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&u.clear(g)}),p.onApply(),s();return c}case"aborted":return e.debug&&console.log("Generation was aborted"),s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c;case"error":return s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${c.message}`),c;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(c){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),s(),r.forEach(d=>{e.cesdk.engine.block.isValid(d)&&u.clear(d)}),c}finally{r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"})})}}}var Qt=Wl;function Kl(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let i=r=>{if(r.engine.editor.getEditMode()===Ie)return;let n=r.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=r,l=Rl({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=Xl(l).filter(f=>{if(f==="ly.img.separator")return!0;let h=f.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${h}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let w=f.scopes;if(w!=null&&w.length>0&&!n.every(T=>w.every($=>e.engine.block.isAllowedByScope(T,$))))return!1;if(f.enable!=null){if(typeof f.enable=="function")return f.enable({engine:e.engine});if(typeof f.enable=="boolean")return f.enable}return!0}),s=[],c=e.providerInitializationResults.reduce((f,h)=>{if(h.provider.kind!==e.kind)return f;let S=u.map(w=>{if(w==="ly.img.separator")return w;if(h.provider.input?.quickActions?.supported?.[w.id]!=null)return{definition:w};{let T=ni.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==h.provider.id).find($=>$.provider.input?.quickActions?.supported?.[w.id]!=null);if(T!=null){let $={definition:w,providerInitializationResult:T};return s.push($),$}else return}}).filter(Le);return S=Dl(S),S.length===0||S.every(w=>w==="ly.img.separator")||S.every(w=>w==="ly.img.separator"||w.providerInitializationResult!=null)||f.push({providerInitializationResult:h,quickActions:S}),f},[]);if(c.length===0)if(s.length>0){let f=new Map;s.forEach(S=>{let w=S.definition.id;f.has(w)||f.set(w,S)});let h=Array.from(f.values());c.push({providerInitializationResult:h[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:h})}else return;let d=c.map(({providerInitializationResult:f})=>({id:f.provider.id,label:f.provider.name??f.provider.id})),p=r.experimental.global(`${t}.currentProvider`,d[0]),g=c.find(({providerInitializationResult:{provider:{id:f}}})=>f===p.value?.id),b=n.every(f=>r.engine.block.getState(f).type==="Ready"),{builder:m,experimental:y,state:v}=r,k=v(`${t}.isGenerating`,!1),I=v(`${t}.toggleExpandedState`,void 0),C=async(f,h,S)=>{k.setValue(!0);try{return await S(f,h)}finally{k.setValue(!1)}};y.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!b,isLoading:k.value,trailingIcon:null,children:({close:f})=>{if(I.value!==void 0){let h=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===I.value);if(h==null||h.definition.render==null)return;let S=c.filter(({quickActions:$})=>$.some(P=>P!=="ly.img.separator"&&P.definition.id===h.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:$.provider.name??$.provider.id})),w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,T=e.cesdk.feature.isEnabled(w,{engine:e.engine});S.length>1&&T&&m.Section(`${t}.popover.expanded.header`,{children:()=>{m.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),m.Section(`${t}.popover.expanded.section`,{children:()=>h.definition.render({...r,toggleExpand:()=>{I.setValue(void 0)},isExpanded:!0,generate:Qt({blockIds:n,providerInitializationResult:h.providerInitializationResult??g?.providerInitializationResult,quickAction:h.definition,middlewares:[C],confirmation:h.definition.defaults?.confirmation??!0,lock:h.definition.defaults?.lock??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}else{let h=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(h,{engine:e.engine});d.length>1&&S&&m.Section(`${t}.popover.header`,{children:()=>{m.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),m.Section(`${t}.popover.section`,{children:()=>{y.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(w=>{if(w==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}w.definition.render!=null&&w.definition.render({...r,toggleExpand:()=>{I.setValue(w.definition.id)},isExpanded:!1,generate:Qt({blockIds:n,providerInitializationResult:w.providerInitializationResult??g?.providerInitializationResult,quickAction:w.definition,middlewares:[C],confirmation:w.definition.defaults?.confirmation??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}})}})}}})};return Promise.resolve(i)}function Xl(e){return e.map(t=>t==="ly.img.separator"?t:De.get().getBy({id:t,type:"quick"})[0]).filter(Le)}var Jl=Kl;async function es(e){let t=await Jl({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),i=await _l({kind:e.kind,cesdk:e.cesdk});return{renderFunction:r=>{let{engine:n}=r;if(n.editor.getEditMode()===Ie){let a=r.engine.block.findAllSelected();i({...r,payload:{...r.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Y.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Y.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Y.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Y.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Y.get().get(o).onCancelGeneration?.()})}}});return}t(r)}}}var Ai=es;var Ci="@imgly/plugin-ai-image-generation",ts=`
67
67
  <svg>
68
68
  <symbol
69
69
  fill="none"
@@ -77,7 +77,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
77
77
 
78
78
  </symbol>
79
79
  </svg>
80
- `,Si=ts;var is=typeof global=="object"&&global&&global.Object===Object&&global,zi=is,rs=typeof self=="object"&&self&&self.Object===Object&&self,ns=zi||rs||Function("return this")(),R=ns,as=R.Symbol,oe=as,Ui=Object.prototype,os=Ui.hasOwnProperty,ls=Ui.toString,Ae=oe?oe.toStringTag:void 0;function ss(e){var t=os.call(e,Ae),i=e[Ae];try{e[Ae]=void 0;var r=!0}catch{}var n=ls.call(e);return r&&(t?e[Ae]=i:delete e[Ae]),n}var cs=ss,us=Object.prototype,ds=us.toString;function ps(e){return ds.call(e)}var gs=ps,ms="[object Null]",fs="[object Undefined]",$i=oe?oe.toStringTag:void 0;function bs(e){return e==null?e===void 0?fs:ms:$i&&$i in Object(e)?cs(e):gs(e)}var xe=bs;function ys(e){return e!=null&&typeof e=="object"}var $t=ys,Ud=Array.isArray;function hs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bi=hs,vs="[object AsyncFunction]",ks="[object Function]",ws="[object GeneratorFunction]",Is="[object Proxy]";function As(e){if(!Bi(e))return!1;var t=xe(e);return t==ks||t==ws||t==vs||t==Is}var Cs=As,Ss=R["__core-js_shared__"],vt=Ss,xi=function(){var e=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $s(e){return!!xi&&xi in e}var xs=$s,Es=Function.prototype,Ms=Es.toString;function Ts(e){if(e!=null){try{return Ms.call(e)}catch{}try{return e+""}catch{}}return""}var K=Ts,Ps=/[\\^$.*+?()[\]{}|]/g,js=/^\[object .+?Constructor\]$/,_s=Function.prototype,Ls=Object.prototype,Ds=_s.toString,Ns=Ls.hasOwnProperty,Os=RegExp("^"+Ds.call(Ns).replace(Ps,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fs(e){if(!Bi(e)||xs(e))return!1;var t=Cs(e)?Os:js;return t.test(K(e))}var Rs=Fs;function zs(e,t){return e?.[t]}var Us=zs;function Bs(e,t){var i=Us(e,t);return Rs(i)?i:void 0}var le=Bs,Vs=le(R,"WeakMap"),wt=Vs;function qs(e,t){return e===t||e!==e&&t!==t}var Gs=qs,Hs=9007199254740991;function Qs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hs}var Zs=Qs;var Bd=Object.prototype;var Ys="[object Arguments]";function Ws(e){return $t(e)&&xe(e)==Ys}var Ei=Ws,Vi=Object.prototype,Ks=Vi.hasOwnProperty,Xs=Vi.propertyIsEnumerable,Vd=Ei(function(){return arguments}())?Ei:function(e){return $t(e)&&Ks.call(e,"callee")&&!Xs.call(e,"callee")};var qi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Mi=qi&&typeof module=="object"&&module&&!module.nodeType&&module,Js=Mi&&Mi.exports===qi,Ti=Js?R.Buffer:void 0,qd=Ti?Ti.isBuffer:void 0;var ec="[object Arguments]",tc="[object Array]",ic="[object Boolean]",rc="[object Date]",nc="[object Error]",ac="[object Function]",oc="[object Map]",lc="[object Number]",sc="[object Object]",cc="[object RegExp]",uc="[object Set]",dc="[object String]",pc="[object WeakMap]",gc="[object ArrayBuffer]",mc="[object DataView]",fc="[object Float32Array]",bc="[object Float64Array]",yc="[object Int8Array]",hc="[object Int16Array]",vc="[object Int32Array]",kc="[object Uint8Array]",wc="[object Uint8ClampedArray]",Ic="[object Uint16Array]",Ac="[object Uint32Array]",M={};M[fc]=M[bc]=M[yc]=M[hc]=M[vc]=M[kc]=M[wc]=M[Ic]=M[Ac]=!0;M[ec]=M[tc]=M[gc]=M[ic]=M[mc]=M[rc]=M[nc]=M[ac]=M[oc]=M[lc]=M[sc]=M[cc]=M[uc]=M[dc]=M[pc]=!1;function Cc(e){return $t(e)&&Zs(e.length)&&!!M[xe(e)]}var Sc=Cc;function $c(e){return function(t){return e(t)}}var xc=$c,Gi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ce=Gi&&typeof module=="object"&&module&&!module.nodeType&&module,Ec=Ce&&Ce.exports===Gi,kt=Ec&&zi.process,Mc=function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||kt&&kt.binding&&kt.binding("util")}catch{}}(),Pi=Mc,ji=Pi&&Pi.isTypedArray,Gd=ji?xc(ji):Sc;var Tc=Object.prototype,Hd=Tc.hasOwnProperty;function Pc(e,t){return function(i){return e(t(i))}}var jc=Pc,Qd=jc(Object.keys,Object);var _c=Object.prototype,Zd=_c.hasOwnProperty;var Lc=le(Object,"create"),Se=Lc;function Dc(){this.__data__=Se?Se(null):{},this.size=0}var Nc=Dc;function Oc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Fc=Oc,Rc="__lodash_hash_undefined__",zc=Object.prototype,Uc=zc.hasOwnProperty;function Bc(e){var t=this.__data__;if(Se){var i=t[e];return i===Rc?void 0:i}return Uc.call(t,e)?t[e]:void 0}var Vc=Bc,qc=Object.prototype,Gc=qc.hasOwnProperty;function Hc(e){var t=this.__data__;return Se?t[e]!==void 0:Gc.call(t,e)}var Qc=Hc,Zc="__lodash_hash_undefined__";function Yc(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Se&&t===void 0?Zc:t,this}var Wc=Yc;function se(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=Nc;se.prototype.delete=Fc;se.prototype.get=Vc;se.prototype.has=Qc;se.prototype.set=Wc;var _i=se;function Kc(){this.__data__=[],this.size=0}var Xc=Kc;function Jc(e,t){for(var i=e.length;i--;)if(Gs(e[i][0],t))return i;return-1}var Ne=Jc,eu=Array.prototype,tu=eu.splice;function iu(e){var t=this.__data__,i=Ne(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():tu.call(t,i,1),--this.size,!0}var ru=iu;function nu(e){var t=this.__data__,i=Ne(t,e);return i<0?void 0:t[i][1]}var au=nu;function ou(e){return Ne(this.__data__,e)>-1}var lu=ou;function su(e,t){var i=this.__data__,r=Ne(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var cu=su;function ce(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=Xc;ce.prototype.delete=ru;ce.prototype.get=au;ce.prototype.has=lu;ce.prototype.set=cu;var Oe=ce,uu=le(R,"Map"),$e=uu;function du(){this.size=0,this.__data__={hash:new _i,map:new($e||Oe),string:new _i}}var pu=du;function gu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mu=gu;function fu(e,t){var i=e.__data__;return mu(t)?i[typeof t=="string"?"string":"hash"]:i.map}var Fe=fu;function bu(e){var t=Fe(this,e).delete(e);return this.size-=t?1:0,t}var yu=bu;function hu(e){return Fe(this,e).get(e)}var vu=hu;function ku(e){return Fe(this,e).has(e)}var wu=ku;function Iu(e,t){var i=Fe(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Au=Iu;function ue(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ue.prototype.clear=pu;ue.prototype.delete=yu;ue.prototype.get=vu;ue.prototype.has=wu;ue.prototype.set=Au;var Hi=ue;function Cu(){this.__data__=new Oe,this.size=0}var Su=Cu;function $u(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var xu=$u;function Eu(e){return this.__data__.get(e)}var Mu=Eu;function Tu(e){return this.__data__.has(e)}var Pu=Tu,ju=200;function _u(e,t){var i=this.__data__;if(i instanceof Oe){var r=i.__data__;if(!$e||r.length<ju-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Hi(r)}return i.set(e,t),this.size=i.size,this}var Lu=_u;function Ee(e){var t=this.__data__=new Oe(e);this.size=t.size}Ee.prototype.clear=Su;Ee.prototype.delete=xu;Ee.prototype.get=Mu;Ee.prototype.has=Pu;Ee.prototype.set=Lu;var Du=Object.prototype,Yd=Du.propertyIsEnumerable;var Nu=le(R,"DataView"),It=Nu,Ou=le(R,"Promise"),At=Ou,Fu=le(R,"Set"),Ct=Fu,Li="[object Map]",Ru="[object Object]",Di="[object Promise]",Ni="[object Set]",Oi="[object WeakMap]",Fi="[object DataView]",zu=K(It),Uu=K($e),Bu=K(At),Vu=K(Ct),qu=K(wt),ae=xe;(It&&ae(new It(new ArrayBuffer(1)))!=Fi||$e&&ae(new $e)!=Li||At&&ae(At.resolve())!=Di||Ct&&ae(new Ct)!=Ni||wt&&ae(new wt)!=Oi)&&(ae=function(e){var t=xe(e),i=t==Ru?e.constructor:void 0,r=i?K(i):"";if(r)switch(r){case zu:return Fi;case Uu:return Li;case Bu:return Di;case Vu:return Ni;case qu:return Oi}return t});var Wd=R.Uint8Array;var Gu="__lodash_hash_undefined__";function Hu(e){return this.__data__.set(e,Gu),this}var Qu=Hu;function Zu(e){return this.__data__.has(e)}var Yu=Zu;function St(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Hi;++t<i;)this.add(e[t])}St.prototype.add=St.prototype.push=Qu;St.prototype.has=Yu;var Ri=oe?oe.prototype:void 0,Kd=Ri?Ri.valueOf:void 0;var Wu=Object.prototype,Xd=Wu.hasOwnProperty;var Ku=Object.prototype,Jd=Ku.hasOwnProperty;var ep=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tp=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ip=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Xu(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),o=new Uint8Array(n),a=new Blob([o],{type:i});return URL.createObjectURL(a)}else return e}async function L(e,t,i){let r,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=a.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Xu(r,t)}function Ju(e){return e==null?[]:Array.isArray(e)?e:[e]}var xt=Ju;function ed(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function td(e){return typeof e?.translate=="function"}function Qi(e,t,i){return e&&ed(e)&&td(e.i18n)?e.i18n.translate(t):i}var U="@imgly/plugin-ai-image-generation-web",Re=["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"];var Be="editImage",B=`ly.img.${Be}`,Zi=`ly.img.plugin-ai-image-generation-web.quickAction.${Be}`,ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Be}`;function Ue(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Be}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var id=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${ze}`]:"Edit Image...",[`${ze}.description`]:"Change image based on description",[`${ze}.prompt`]:"Edit Image...",[`${Zi}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${ze}.apply`]:"Change"}}),{id:B,type:"quick",kind:"image",label:`${Zi}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${B}.prompt`,"");i.TextArea(`${B}.prompt`,{inputLabel:Ue(c,"prompt"),placeholder:Ue(c,"prompt.placeholder")[1],...d}),i.Separator(`${B}.separator`),r.builder.ButtonRow(`${B}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${B}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${B}.footer.apply`,{label:Ue(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),y=await L(g,l,{throwErrorIfSvg:!0});await a({prompt:p,uri:y}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else i.Button(`${B}.button`,{label:Ue(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Yi=id;var Ge="swapBackground",V=`ly.img.${Ge}`,Wi=`ly.img.plugin-ai-image-generation-web.quickAction.${Ge}`,Ve=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ge}`;function qe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ge}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var rd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${Ve}`]:"Swap Background...",[`${Ve}.description`]:"Change the background of the image",[`${Ve}.prompt`]:"Swap Background...",[`${Wi}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Ve}.apply`]:"Change"}}),{id:V,type:"quick",kind:"image",label:`${Wi}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${V}.prompt`,"");i.TextArea(`${V}.prompt`,{inputLabel:qe(c,"prompt"),placeholder:qe(c,"prompt.placeholder")[1],...d}),i.Separator(`${V}.separator`),r.builder.ButtonRow(`${V}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${V}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${V}.footer.apply`,{label:qe(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),y=await L(g,l,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${p}`,uri:y}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else i.Button(`${V}.button`,{label:qe(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Ki=rd;var He="styleTransfer",Me=`ly.img.${He}`,nd=`ly.img.plugin-ai-image-generation-web.quickAction.${He}`,O=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${He}`;function Xi(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${He}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ad=[{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."}],od=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${O}`]:"Change Art Style",[`${O}.description`]:"Transform image into different art styles",[`${O}.water`]:"Watercolor Painting",[`${O}.oil`]:"Oil Painting",[`${O}.charcoal`]:"Charcoal Sketch",[`${O}.pencil`]:"Pencil Drawing",[`${O}.pastel`]:"Pastel Artwork",[`${O}.ink`]:"Ink Wash",[`${O}.stained-glass`]:"Stained Glass Window",[`${O}.japanese`]:"Japanese Woodblock Print"}}),{id:Me,type:"quick",kind:"image",label:`${nd}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Me}.popover`,{label:Xi(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Me}.popover.section`,{children:()=>{r.builder.Menu(`${Me}.popover.menu`,{children:()=>{ad.forEach(u=>{i.Button(`${Me}.popover.menu.${u.id}`,{label:Xi(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=o.block.findAllSelected(),c=await L(s,o,{throwErrorIfSvg:!0});await n({style:u.prompt,uri:c}),a()}catch(s){console.error("Generation error:",s),e.ui.showNotification({type:"error",message:s.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),Ji=od;var Qe="artistTransfer",Te=`ly.img.${Qe}`,ld=`ly.img.plugin-ai-image-generation-web.quickAction.${Qe}`,_=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Qe}`;function er(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Qe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var sd=[{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."}],cd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${_}`]:"Painted By",[`${_}.description`]:"Transform image in the style of famous artists",[`${_}.van-gogh`]:"Van Gogh",[`${_}.monet`]:"Monet",[`${_}.picasso`]:"Picasso",[`${_}.dali`]:"Dal\xED",[`${_}.matisse`]:"Matisse",[`${_}.warhol`]:"Warhol",[`${_}.michelangelo`]:"Michelangelo",[`${_}.da-vinci`]:"Da Vinci",[`${_}.rembrandt`]:"Rembrandt",[`${_}.mondrian`]:"Mondrian",[`${_}.kahlo`]:"Frida Kahlo",[`${_}.hokusai`]:"Hokusai"}}),{id:Te,type:"quick",kind:"image",label:`${ld}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Te}.popover`,{label:er(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Te}.popover.section`,{children:()=>{r.builder.Menu(`${Te}.popover.menu`,{children:()=>{sd.forEach(u=>{i.Button(`${Te}.popover.menu.${u.id}`,{label:er(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=o.block.findAllSelected(),c=await L(s,o,{throwErrorIfSvg:!0});await n({artist:u.prompt,uri:c}),a()}catch(s){console.error("Generation error:",s),e.ui.showNotification({type:"error",message:s.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),tr=cd;var We="createVariant",q=`ly.img.${We}`,ir=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,Ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function Ye(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${We}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ud=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Ze}`]:"Create Variant...",[`${Ze}.description`]:"Create a variation of the image",[`${Ze}.prompt`]:"Create Variant...",[`${ir}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ze}.apply`]:"Create"}}),{id:q,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ir}`,enable:i=>{if(!N()(i))return!1;let[r]=i.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:i.engine})||!i.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${q}.prompt`,"");i.TextArea(`${q}.prompt`,{inputLabel:Ye(c,"prompt"),placeholder:Ye(c,"prompt.placeholder")[1],...d}),i.Separator(`${q}.separator`),r.builder.ButtonRow(`${q}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${q}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${q}.footer.apply`,{label:Ye(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),y=l.block.getType(g),m=l.block.duplicate(g);y==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let b=l.block.getParent(m);if(b==null)throw new Error("Parent not found");if(!(b!=null&&l.block.getType(b)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(b))&&y!=="//ly.img.ubq/page"){let C=l.block.getWidth(b),f=l.block.getHeight(b),v=.02*Math.min(C,f)*1;l.block.setPositionX(m,l.block.getPositionX(m)+v),l.block.setPositionY(m,l.block.getPositionY(m)+v)}let k=await L(m,l,{throwErrorIfSvg:!0});await a({prompt:p,uri:k},{blockIds:[m]}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else i.Button(`${q}.button`,{label:Ye(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),rr=ud;var Xe="combineImages",G=`ly.img.${Xe}`,nr=`ly.img.plugin-ai-image-generation-web.quickAction.${Xe}`,Et=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Xe}`;function Ke(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Xe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var dd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Et}.apply`]:"Combine",[`${Et}`]:"Combine Images...",[`${Et}.prompt`]:"Image Combination Instructions",[`${nr}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:G,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${nr}`,enable:i=>{let r=i.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(n=>{if(i.engine.block.getType(n)!=="//ly.img.ubq/graphic"&&!i.engine.block.supportsFill(n))return!1;let o=i.engine.block.getFill(n);if(i.engine.block.getType(o)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:i.engine})||!i.engine.block.isAllowedByScope(n,"lifecycle/duplicate"))return!1;let a=i.engine.block.getParent(n);return!(a!=null&&i.engine.block.getType(a)==="//ly.img.ubq/track"&&i.engine.block.isPageDurationSource(a)||i.engine.block.getType(n)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${G}.prompt`,"");i.TextArea(`${G}.prompt`,{inputLabel:Ke(c,"prompt"),placeholder:Ke(c,"prompt.placeholder")[1],...d}),i.Separator(`${G}.separator`),r.builder.ButtonRow(`${G}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${G}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${G}.footer.apply`,{label:Ke(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let g=l.block.findAllSelected(),y=l.block.duplicate(g[0]);g.forEach(f=>{l.block.setSelected(f,!1)}),l.block.setSelected(y,!0);let m=l.block.getParent(y);if(m==null)throw new Error("Parent not found");let b=1,h=l.block.getWidth(m),k=l.block.getHeight(m),I=.02*Math.min(h,k)*b;l.block.setPositionX(y,l.block.getPositionX(y)+I),l.block.setPositionY(y,l.block.getPositionY(y)+I);let C=await Promise.all(g.map(f=>L(f,l,{throwErrorIfSvg:!0})));await a({prompt:p,uris:C,exportFromBlockIds:g},{blockIds:[y]}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else i.Button(`${G}.button`,{label:Ke(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),ar=dd;var Je="remixPage",or=`ly.img.${Je}`,pd=`ly.img.plugin-ai-image-generation-web.quickAction.${Je}`,gd=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Je}`;function md(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Je}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var fd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${gd}`]:"Turn Page into Image"}}),{id:or,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${pd}`,enable:({engine:i})=>{let r=i.block.findAllSelected();if(r.length!==1)return!1;let n=r[0];return i.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:i,generate:r,engine:n,close:o,providerId:a})=>{i.Button(`${or}.button`,{label:md(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[l]=n.block.findAllSelected(),u=await n.block.export(l),s=URL.createObjectURL(u),c=n.block.duplicate(l);n.block.getChildren(c).forEach(k=>{n.block.destroy(k)}),n.block.setSelected(l,!1);let d=n.block.getFrameWidth(l),p=n.block.getFrameHeight(l),g=n.block.getPositionX(l),y=n.block.getPositionY(l),m=n.block.createShape("rect"),b=n.block.create("graphic");n.block.setShape(b,m),n.block.appendChild(c,b),n.block.setWidth(b,d),n.block.setHeight(b,p),n.block.setPositionX(b,g),n.block.setPositionY(b,y);let h=n.block.createFill("image");n.block.setFill(b,h),n.block.setString(h,"fill/image/imageFileURI",s),n.block.setSelected(b,!0),n.scene.zoomToBlock(b),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:s},{blockIds:[b]}),o()}catch(l){console.error("Generation error:",l),e.ui.showNotification({type:"error",message:l.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),lr=fd;var tt="remixPageWithPrompt",H=`ly.img.${tt}`,sr=`ly.img.plugin-ai-image-generation-web.quickAction.${tt}`,Mt=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${tt}`;function et(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${tt}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var bd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Mt}`]:"Remix Page...",[`${Mt}.prompt`]:"Remix Page Prompt",[`${sr}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Mt}.apply`]:"Remix"}}),{id:H,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${sr}`,enable:({engine:i})=>{let r=i.block.findAllSelected();if(r.length!==1)return!1;let n=r[0];return i.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${H}.prompt`,"");i.TextArea(`${H}.prompt`,{inputLabel:et(c,"prompt"),placeholder:et(c,"prompt.placeholder")[1],...d}),i.Separator(`${H}.separator`),r.builder.ButtonRow(`${H}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${H}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${H}.footer.apply`,{label:et(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),y=await l.block.export(g),m=URL.createObjectURL(y),b=l.block.duplicate(g);l.block.getChildren(b).forEach(w=>{l.block.destroy(w)}),l.block.setSelected(g,!1);let h=l.block.getFrameWidth(g),k=l.block.getFrameHeight(g),I=l.block.getPositionX(g),C=l.block.getPositionY(g),f=l.block.createShape("rect"),v=l.block.create("graphic");l.block.setShape(v,f),l.block.appendChild(b,v),l.block.setWidth(v,h),l.block.setHeight(v,k),l.block.setPositionX(v,I),l.block.setPositionY(v,C);let S=l.block.createFill("image");l.block.setFill(v,S),l.block.setString(S,"fill/image/imageFileURI",m),l.block.setSelected(v,!0),l.scene.zoomToBlock(v),await a({prompt:p,uri:m},{blockIds:[v]}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else i.Button(`${H}.button`,{label:et(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),cr=bd;var Q="ly.img.ai.image-generation";function yd(e){return{async initialize({cesdk:t}){if(t==null)return;li(t,U,"0.2.10"),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 i=De.get(),r=`${U}.action.label`;t.ui.addIconSet(Ci,Si),t.i18n.setTranslations({en:{[`panel.${Q}`]:"Image Generation",[`${Q}.dock.label`]:"AI Image",[r]:"Generate Image"}});let n=i.register({type:"plugin",sceneMode:"Design",id:U,pluginId:U,label:Qi(t,r,"Generate Image"),meta:{panelId:Q},execute:()=>{t.ui.isPanelOpen(Q)?t.ui.closePanel(Q):t.ui.openPanel(Q)}});hd(e),i.register(Yi({cesdk:t})),i.register(Ki({cesdk:t})),i.register(Ji({cesdk:t})),i.register(tr({cesdk:t})),i.register(rr({cesdk:t})),i.register(ar({cesdk:t})),i.register(lr({cesdk:t})),i.register(cr({cesdk:t}));let o=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,l=await Promise.all(xt(o).map(p=>p({cesdk:t}))),u=await Promise.all(xt(a).map(p=>p({cesdk:t})));if(!(l.length>0||u.length>0)){n();return}let c=await ki("image",{fromText:l,fromImage:u},{cesdk:t},e),d=await Ai({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Re});c.history?.assetSourceId!=null,d.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",d.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Ie})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(Q,c.panel.builderRenderFunction),si({cesdk:t,panelId:Q})):n()}}}function hd(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 ur=yd;var vd=e=>({name:U,version:"0.2.10",...ur(e)}),Gp=vd;export{Re as DEFAULT_IMAGE_QUICK_ACTION_ORDER,Gp as default};
80
+ `,Si=ts;var is=typeof global=="object"&&global&&global.Object===Object&&global,zi=is,rs=typeof self=="object"&&self&&self.Object===Object&&self,ns=zi||rs||Function("return this")(),R=ns,as=R.Symbol,oe=as,Ui=Object.prototype,os=Ui.hasOwnProperty,ls=Ui.toString,Ae=oe?oe.toStringTag:void 0;function ss(e){var t=os.call(e,Ae),i=e[Ae];try{e[Ae]=void 0;var r=!0}catch{}var n=ls.call(e);return r&&(t?e[Ae]=i:delete e[Ae]),n}var cs=ss,us=Object.prototype,ds=us.toString;function ps(e){return ds.call(e)}var gs=ps,ms="[object Null]",fs="[object Undefined]",$i=oe?oe.toStringTag:void 0;function bs(e){return e==null?e===void 0?fs:ms:$i&&$i in Object(e)?cs(e):gs(e)}var xe=bs;function ys(e){return e!=null&&typeof e=="object"}var $t=ys,Ud=Array.isArray;function hs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bi=hs,vs="[object AsyncFunction]",ks="[object Function]",ws="[object GeneratorFunction]",Is="[object Proxy]";function As(e){if(!Bi(e))return!1;var t=xe(e);return t==ks||t==ws||t==vs||t==Is}var Cs=As,Ss=R["__core-js_shared__"],vt=Ss,xi=function(){var e=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function $s(e){return!!xi&&xi in e}var xs=$s,Es=Function.prototype,Ms=Es.toString;function Ts(e){if(e!=null){try{return Ms.call(e)}catch{}try{return e+""}catch{}}return""}var K=Ts,Ps=/[\\^$.*+?()[\]{}|]/g,js=/^\[object .+?Constructor\]$/,_s=Function.prototype,Ls=Object.prototype,Ds=_s.toString,Ns=Ls.hasOwnProperty,Os=RegExp("^"+Ds.call(Ns).replace(Ps,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fs(e){if(!Bi(e)||xs(e))return!1;var t=Cs(e)?Os:js;return t.test(K(e))}var Rs=Fs;function zs(e,t){return e?.[t]}var Us=zs;function Bs(e,t){var i=Us(e,t);return Rs(i)?i:void 0}var le=Bs,Vs=le(R,"WeakMap"),wt=Vs;function qs(e,t){return e===t||e!==e&&t!==t}var Gs=qs,Hs=9007199254740991;function Qs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hs}var Zs=Qs;var Bd=Object.prototype;var Ys="[object Arguments]";function Ws(e){return $t(e)&&xe(e)==Ys}var Ei=Ws,Vi=Object.prototype,Ks=Vi.hasOwnProperty,Xs=Vi.propertyIsEnumerable,Vd=Ei(function(){return arguments}())?Ei:function(e){return $t(e)&&Ks.call(e,"callee")&&!Xs.call(e,"callee")};var qi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Mi=qi&&typeof module=="object"&&module&&!module.nodeType&&module,Js=Mi&&Mi.exports===qi,Ti=Js?R.Buffer:void 0,qd=Ti?Ti.isBuffer:void 0;var ec="[object Arguments]",tc="[object Array]",ic="[object Boolean]",rc="[object Date]",nc="[object Error]",ac="[object Function]",oc="[object Map]",lc="[object Number]",sc="[object Object]",cc="[object RegExp]",uc="[object Set]",dc="[object String]",pc="[object WeakMap]",gc="[object ArrayBuffer]",mc="[object DataView]",fc="[object Float32Array]",bc="[object Float64Array]",yc="[object Int8Array]",hc="[object Int16Array]",vc="[object Int32Array]",kc="[object Uint8Array]",wc="[object Uint8ClampedArray]",Ic="[object Uint16Array]",Ac="[object Uint32Array]",M={};M[fc]=M[bc]=M[yc]=M[hc]=M[vc]=M[kc]=M[wc]=M[Ic]=M[Ac]=!0;M[ec]=M[tc]=M[gc]=M[ic]=M[mc]=M[rc]=M[nc]=M[ac]=M[oc]=M[lc]=M[sc]=M[cc]=M[uc]=M[dc]=M[pc]=!1;function Cc(e){return $t(e)&&Zs(e.length)&&!!M[xe(e)]}var Sc=Cc;function $c(e){return function(t){return e(t)}}var xc=$c,Gi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ce=Gi&&typeof module=="object"&&module&&!module.nodeType&&module,Ec=Ce&&Ce.exports===Gi,kt=Ec&&zi.process,Mc=function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||kt&&kt.binding&&kt.binding("util")}catch{}}(),Pi=Mc,ji=Pi&&Pi.isTypedArray,Gd=ji?xc(ji):Sc;var Tc=Object.prototype,Hd=Tc.hasOwnProperty;function Pc(e,t){return function(i){return e(t(i))}}var jc=Pc,Qd=jc(Object.keys,Object);var _c=Object.prototype,Zd=_c.hasOwnProperty;var Lc=le(Object,"create"),Se=Lc;function Dc(){this.__data__=Se?Se(null):{},this.size=0}var Nc=Dc;function Oc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Fc=Oc,Rc="__lodash_hash_undefined__",zc=Object.prototype,Uc=zc.hasOwnProperty;function Bc(e){var t=this.__data__;if(Se){var i=t[e];return i===Rc?void 0:i}return Uc.call(t,e)?t[e]:void 0}var Vc=Bc,qc=Object.prototype,Gc=qc.hasOwnProperty;function Hc(e){var t=this.__data__;return Se?t[e]!==void 0:Gc.call(t,e)}var Qc=Hc,Zc="__lodash_hash_undefined__";function Yc(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=Se&&t===void 0?Zc:t,this}var Wc=Yc;function se(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=Nc;se.prototype.delete=Fc;se.prototype.get=Vc;se.prototype.has=Qc;se.prototype.set=Wc;var _i=se;function Kc(){this.__data__=[],this.size=0}var Xc=Kc;function Jc(e,t){for(var i=e.length;i--;)if(Gs(e[i][0],t))return i;return-1}var Ne=Jc,eu=Array.prototype,tu=eu.splice;function iu(e){var t=this.__data__,i=Ne(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():tu.call(t,i,1),--this.size,!0}var ru=iu;function nu(e){var t=this.__data__,i=Ne(t,e);return i<0?void 0:t[i][1]}var au=nu;function ou(e){return Ne(this.__data__,e)>-1}var lu=ou;function su(e,t){var i=this.__data__,r=Ne(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var cu=su;function ce(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=Xc;ce.prototype.delete=ru;ce.prototype.get=au;ce.prototype.has=lu;ce.prototype.set=cu;var Oe=ce,uu=le(R,"Map"),$e=uu;function du(){this.size=0,this.__data__={hash:new _i,map:new($e||Oe),string:new _i}}var pu=du;function gu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mu=gu;function fu(e,t){var i=e.__data__;return mu(t)?i[typeof t=="string"?"string":"hash"]:i.map}var Fe=fu;function bu(e){var t=Fe(this,e).delete(e);return this.size-=t?1:0,t}var yu=bu;function hu(e){return Fe(this,e).get(e)}var vu=hu;function ku(e){return Fe(this,e).has(e)}var wu=ku;function Iu(e,t){var i=Fe(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Au=Iu;function ue(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ue.prototype.clear=pu;ue.prototype.delete=yu;ue.prototype.get=vu;ue.prototype.has=wu;ue.prototype.set=Au;var Hi=ue;function Cu(){this.__data__=new Oe,this.size=0}var Su=Cu;function $u(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var xu=$u;function Eu(e){return this.__data__.get(e)}var Mu=Eu;function Tu(e){return this.__data__.has(e)}var Pu=Tu,ju=200;function _u(e,t){var i=this.__data__;if(i instanceof Oe){var r=i.__data__;if(!$e||r.length<ju-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Hi(r)}return i.set(e,t),this.size=i.size,this}var Lu=_u;function Ee(e){var t=this.__data__=new Oe(e);this.size=t.size}Ee.prototype.clear=Su;Ee.prototype.delete=xu;Ee.prototype.get=Mu;Ee.prototype.has=Pu;Ee.prototype.set=Lu;var Du=Object.prototype,Yd=Du.propertyIsEnumerable;var Nu=le(R,"DataView"),It=Nu,Ou=le(R,"Promise"),At=Ou,Fu=le(R,"Set"),Ct=Fu,Li="[object Map]",Ru="[object Object]",Di="[object Promise]",Ni="[object Set]",Oi="[object WeakMap]",Fi="[object DataView]",zu=K(It),Uu=K($e),Bu=K(At),Vu=K(Ct),qu=K(wt),ae=xe;(It&&ae(new It(new ArrayBuffer(1)))!=Fi||$e&&ae(new $e)!=Li||At&&ae(At.resolve())!=Di||Ct&&ae(new Ct)!=Ni||wt&&ae(new wt)!=Oi)&&(ae=function(e){var t=xe(e),i=t==Ru?e.constructor:void 0,r=i?K(i):"";if(r)switch(r){case zu:return Fi;case Uu:return Li;case Bu:return Di;case Vu:return Ni;case qu:return Oi}return t});var Wd=R.Uint8Array;var Gu="__lodash_hash_undefined__";function Hu(e){return this.__data__.set(e,Gu),this}var Qu=Hu;function Zu(e){return this.__data__.has(e)}var Yu=Zu;function St(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Hi;++t<i;)this.add(e[t])}St.prototype.add=St.prototype.push=Qu;St.prototype.has=Yu;var Ri=oe?oe.prototype:void 0,Kd=Ri?Ri.valueOf:void 0;var Wu=Object.prototype,Xd=Wu.hasOwnProperty;var Ku=Object.prototype,Jd=Ku.hasOwnProperty;var ep=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),tp=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ip=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Xu(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),a=new Uint8Array(n),o=new Blob([a],{type:i});return URL.createObjectURL(o)}else return e}async function L(e,t,i){let r,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=o.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Xu(r,t)}function Ju(e){return e==null?[]:Array.isArray(e)?e:[e]}var xt=Ju;function ed(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function td(e){return typeof e?.translate=="function"}function Qi(e,t,i){return e&&ed(e)&&td(e.i18n)?e.i18n.translate(t):i}var B="@imgly/plugin-ai-image-generation-web",Re=["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"];var Be="editImage",V=`ly.img.${Be}`,Zi=`ly.img.plugin-ai-image-generation-web.quickAction.${Be}`,ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Be}`;function Ue(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Be}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var id=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${ze}`]:"Edit Image...",[`${ze}.description`]:"Change image based on description",[`${ze}.prompt`]:"Edit Image...",[`${Zi}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${ze}.apply`]:"Change"}}),{id:V,type:"quick",kind:"image",label:`${Zi}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:a,generate:o,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${V}.prompt`,"");i.TextArea(`${V}.prompt`,{inputLabel:Ue(c,"prompt"),placeholder:Ue(c,"prompt.placeholder")[1],...d}),i.Separator(`${V}.separator`),r.builder.ButtonRow(`${V}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${V}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${V}.footer.apply`,{label:Ue(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),b=await L(g,l,{throwErrorIfSvg:!0});await o({prompt:p,uri:b}),a(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else i.Button(`${V}.button`,{label:Ue(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:a})}}),Yi=id;var Ge="swapBackground",q=`ly.img.${Ge}`,Wi=`ly.img.plugin-ai-image-generation-web.quickAction.${Ge}`,Ve=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ge}`;function qe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ge}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var rd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${Ve}`]:"Swap Background...",[`${Ve}.description`]:"Change the background of the image",[`${Ve}.prompt`]:"Swap Background...",[`${Wi}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Ve}.apply`]:"Change"}}),{id:q,type:"quick",kind:"image",label:`${Wi}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:a,generate:o,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${q}.prompt`,"");i.TextArea(`${q}.prompt`,{inputLabel:qe(c,"prompt"),placeholder:qe(c,"prompt.placeholder")[1],...d}),i.Separator(`${q}.separator`),r.builder.ButtonRow(`${q}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${q}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${q}.footer.apply`,{label:qe(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),b=await L(g,l,{throwErrorIfSvg:!0});await o({prompt:`Swap the background to ${p}`,uri:b}),a(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else i.Button(`${q}.button`,{label:qe(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:a})}}),Ki=rd;var He="styleTransfer",Me=`ly.img.${He}`,nd=`ly.img.plugin-ai-image-generation-web.quickAction.${He}`,O=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${He}`;function Xi(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${He}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ad=[{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."}],od=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${O}`]:"Change Art Style",[`${O}.description`]:"Transform image into different art styles",[`${O}.water`]:"Watercolor Painting",[`${O}.oil`]:"Oil Painting",[`${O}.charcoal`]:"Charcoal Sketch",[`${O}.pencil`]:"Pencil Drawing",[`${O}.pastel`]:"Pastel Artwork",[`${O}.ink`]:"Ink Wash",[`${O}.stained-glass`]:"Stained Glass Window",[`${O}.japanese`]:"Japanese Woodblock Print"}}),{id:Me,type:"quick",kind:"image",label:`${nd}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:a,close:o,providerId:l})=>{r.builder.Popover(`${Me}.popover`,{label:Xi(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Me}.popover.section`,{children:()=>{r.builder.Menu(`${Me}.popover.menu`,{children:()=>{ad.forEach(u=>{i.Button(`${Me}.popover.menu.${u.id}`,{label:Xi(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=a.block.findAllSelected(),c=await L(s,a,{throwErrorIfSvg:!0});await n({style:u.prompt,uri:c}),o()}catch(s){console.error("Generation error:",s),e.ui.showNotification({type:"error",message:s.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),Ji=od;var Qe="artistTransfer",Te=`ly.img.${Qe}`,ld=`ly.img.plugin-ai-image-generation-web.quickAction.${Qe}`,_=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Qe}`;function er(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Qe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var sd=[{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."}],cd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${_}`]:"Painted By",[`${_}.description`]:"Transform image in the style of famous artists",[`${_}.van-gogh`]:"Van Gogh",[`${_}.monet`]:"Monet",[`${_}.picasso`]:"Picasso",[`${_}.dali`]:"Dal\xED",[`${_}.matisse`]:"Matisse",[`${_}.warhol`]:"Warhol",[`${_}.michelangelo`]:"Michelangelo",[`${_}.da-vinci`]:"Da Vinci",[`${_}.rembrandt`]:"Rembrandt",[`${_}.mondrian`]:"Mondrian",[`${_}.kahlo`]:"Frida Kahlo",[`${_}.hokusai`]:"Hokusai"}}),{id:Te,type:"quick",kind:"image",label:`${ld}`,enable:N(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:a,close:o,providerId:l})=>{r.builder.Popover(`${Te}.popover`,{label:er(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Te}.popover.section`,{children:()=>{r.builder.Menu(`${Te}.popover.menu`,{children:()=>{sd.forEach(u=>{i.Button(`${Te}.popover.menu.${u.id}`,{label:er(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=a.block.findAllSelected(),c=await L(s,a,{throwErrorIfSvg:!0});await n({artist:u.prompt,uri:c}),o()}catch(s){console.error("Generation error:",s),e.ui.showNotification({type:"error",message:s.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),tr=cd;var We="createVariant",G=`ly.img.${We}`,ir=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,Ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function Ye(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${We}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ud=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Ze}`]:"Create Variant...",[`${Ze}.description`]:"Create a variation of the image",[`${Ze}.prompt`]:"Create Variant...",[`${ir}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ze}.apply`]:"Create"}}),{id:G,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${ir}`,enable:i=>{if(!N()(i))return!1;let[r]=i.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:i.engine})||!i.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:a,generate:o,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${G}.prompt`,"");i.TextArea(`${G}.prompt`,{inputLabel:Ye(c,"prompt"),placeholder:Ye(c,"prompt.placeholder")[1],...d}),i.Separator(`${G}.separator`),r.builder.ButtonRow(`${G}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${G}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${G}.footer.apply`,{label:Ye(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),b=l.block.getType(g),m=l.block.duplicate(g);b==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let y=l.block.getParent(m);if(y==null)throw new Error("Parent not found");if(!(y!=null&&l.block.getType(y)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(y))&&b!=="//ly.img.ubq/page"){let C=l.block.getWidth(y),f=l.block.getHeight(y),h=.02*Math.min(C,f)*1;l.block.setPositionX(m,l.block.getPositionX(m)+h),l.block.setPositionY(m,l.block.getPositionY(m)+h)}let k=await L(m,l,{throwErrorIfSvg:!0});await o({prompt:p,uri:k},{blockIds:[m]}),a(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else i.Button(`${G}.button`,{label:Ye(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:a})}}),rr=ud;var Xe="combineImages",H=`ly.img.${Xe}`,nr=`ly.img.plugin-ai-image-generation-web.quickAction.${Xe}`,Et=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Xe}`;function Ke(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Xe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var dd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Et}.apply`]:"Combine",[`${Et}`]:"Combine Images...",[`${Et}.prompt`]:"Image Combination Instructions",[`${nr}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:H,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${nr}`,enable:i=>{let r=i.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(n=>{if(i.engine.block.getType(n)!=="//ly.img.ubq/graphic"&&!i.engine.block.supportsFill(n))return!1;let a=i.engine.block.getFill(n);if(i.engine.block.getType(a)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:i.engine})||!i.engine.block.isAllowedByScope(n,"lifecycle/duplicate"))return!1;let o=i.engine.block.getParent(n);return!(o!=null&&i.engine.block.getType(o)==="//ly.img.ubq/track"&&i.engine.block.isPageDurationSource(o)||i.engine.block.getType(n)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:a,generate:o,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${H}.prompt`,"");i.TextArea(`${H}.prompt`,{inputLabel:Ke(c,"prompt"),placeholder:Ke(c,"prompt.placeholder")[1],...d}),i.Separator(`${H}.separator`),r.builder.ButtonRow(`${H}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${H}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${H}.footer.apply`,{label:Ke(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let g=l.block.findAllSelected(),b=l.block.duplicate(g[0]);g.forEach(f=>{l.block.setSelected(f,!1)}),l.block.setSelected(b,!0);let m=l.block.getParent(b);if(m==null)throw new Error("Parent not found");let y=1,v=l.block.getWidth(m),k=l.block.getHeight(m),I=.02*Math.min(v,k)*y;l.block.setPositionX(b,l.block.getPositionX(b)+I),l.block.setPositionY(b,l.block.getPositionY(b)+I);let C=await Promise.all(g.map(f=>L(f,l,{throwErrorIfSvg:!0})));await o({prompt:p,uris:C,exportFromBlockIds:g},{blockIds:[b]}),a(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else i.Button(`${H}.button`,{label:Ke(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:a})}}),ar=dd;var Je="remixPage",or=`ly.img.${Je}`,pd=`ly.img.plugin-ai-image-generation-web.quickAction.${Je}`,gd=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Je}`;function md(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Je}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var fd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${gd}`]:"Turn Page into Image"}}),{id:or,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${pd}`,enable:({engine:i})=>{let r=i.block.findAllSelected();if(r.length!==1)return!1;let n=r[0];return i.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:i,generate:r,engine:n,close:a,providerId:o})=>{i.Button(`${or}.button`,{label:md(o),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[l]=n.block.findAllSelected(),u=await n.block.export(l),s=URL.createObjectURL(u),c=n.block.duplicate(l);n.block.getChildren(c).forEach(k=>{n.block.destroy(k)}),n.block.setSelected(l,!1);let d=n.block.getFrameWidth(l),p=n.block.getFrameHeight(l),g=n.block.getPositionX(l),b=n.block.getPositionY(l),m=n.block.createShape("rect"),y=n.block.create("graphic");n.block.setShape(y,m),n.block.appendChild(c,y),n.block.setWidth(y,d),n.block.setHeight(y,p),n.block.setPositionX(y,g),n.block.setPositionY(y,b);let v=n.block.createFill("image");n.block.setFill(y,v),n.block.setString(v,"fill/image/imageFileURI",s),n.block.setSelected(y,!0),n.scene.zoomToBlock(y),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:s},{blockIds:[y]}),a()}catch(l){console.error("Generation error:",l),e.ui.showNotification({type:"error",message:l.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),lr=fd;var tt="remixPageWithPrompt",Q=`ly.img.${tt}`,sr=`ly.img.plugin-ai-image-generation-web.quickAction.${tt}`,Mt=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${tt}`;function et(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${tt}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var bd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Mt}`]:"Remix Page...",[`${Mt}.prompt`]:"Remix Page Prompt",[`${sr}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Mt}.apply`]:"Remix"}}),{id:Q,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${sr}`,enable:({engine:i})=>{let r=i.block.findAllSelected();if(r.length!==1)return!1;let n=r[0];return i.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:i,experimental:r,isExpanded:n,toggleExpand:a,generate:o,engine:l,state:u,close:s,providerId:c})=>{if(n){let d=u(`${Q}.prompt`,"");i.TextArea(`${Q}.prompt`,{inputLabel:et(c,"prompt"),placeholder:et(c,"prompt.placeholder")[1],...d}),i.Separator(`${Q}.separator`),r.builder.ButtonRow(`${Q}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${Q}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${Q}.footer.apply`,{label:et(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),b=await l.block.export(g),m=URL.createObjectURL(b),y=l.block.duplicate(g);l.block.getChildren(y).forEach(w=>{l.block.destroy(w)}),l.block.setSelected(g,!1);let v=l.block.getFrameWidth(g),k=l.block.getFrameHeight(g),I=l.block.getPositionX(g),C=l.block.getPositionY(g),f=l.block.createShape("rect"),h=l.block.create("graphic");l.block.setShape(h,f),l.block.appendChild(y,h),l.block.setWidth(h,v),l.block.setHeight(h,k),l.block.setPositionX(h,I),l.block.setPositionY(h,C);let S=l.block.createFill("image");l.block.setFill(h,S),l.block.setString(S,"fill/image/imageFileURI",m),l.block.setSelected(h,!0),l.scene.zoomToBlock(h),await o({prompt:p,uri:m},{blockIds:[h]}),a(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else i.Button(`${Q}.button`,{label:et(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:a})}}),cr=bd;var Z="ly.img.ai.image-generation";function yd(e){return{async initialize({cesdk:t}){if(t==null)return;li(t,B,"0.2.11"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let i=De.get(),r=`${B}.action.label`;t.ui.addIconSet(Ci,Si),t.i18n.setTranslations({en:{[`panel.${Z}`]:"Image Generation",[`${Z}.dock.label`]:"AI Image",[r]:"Generate Image"}});let n=i.register({type:"plugin",sceneMode:"Design",id:B,pluginId:B,label:Qi(t,r,"Generate Image"),meta:{panelId:Z},execute:()=>{t.ui.isPanelOpen(Z)?t.ui.closePanel(Z):t.ui.openPanel(Z)}});hd(e),i.register(Yi({cesdk:t})),i.register(Ki({cesdk:t})),i.register(Ji({cesdk:t})),i.register(tr({cesdk:t})),i.register(rr({cesdk:t})),i.register(ar({cesdk:t})),i.register(lr({cesdk:t})),i.register(cr({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,l=await Promise.all(xt(a).map(p=>p({cesdk:t}))),u=await Promise.all(xt(o).map(p=>p({cesdk:t})));if(!(l.length>0||u.length>0)){n();return}let c=await ki("image",{fromText:l,fromImage:u},{cesdk:t},e),d=await Ai({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Re});c.history?.assetSourceId!=null,d.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",d.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Ie})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(Z,c.panel.builderRenderFunction),si({cesdk:t,panelId:Z})):n()}}}function hd(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 ur=yd;var vd=e=>({name:B,version:"0.2.11",...ur(e)}),Gp=vd;export{Re as DEFAULT_IMAGE_QUICK_ACTION_ORDER,Gp as default};
81
81
  /*! Bundled license information:
82
82
 
83
83
  lodash-es/lodash.js: