@imgly/plugin-ai-image-generation-web 1.79.0 → 1.80.0-hotfix-mcp.0

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