@imgly/plugin-ai-image-generation-web 1.73.0-rc.2 → 1.73.0-rc.3

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 yr=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 br=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")}},hr=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)}},Jt=hr,vr=typeof global=="object"&&global&&global.Object===Object&&global,ei=vr,wr=typeof self=="object"&&self&&self.Object===Object&&self,kr=ei||wr||Function("return this")(),R=kr,Ir=R.Symbol,te=Ir,ti=Object.prototype,Ar=ti.hasOwnProperty,Cr=ti.toString,pe=te?te.toStringTag:void 0;function Sr(e){var t=Ar.call(e,pe),i=e[pe];try{e[pe]=void 0;var r=!0}catch{}var n=Cr.call(e);return r&&(t?e[pe]=i:delete e[pe]),n}var $r=Sr,xr=Object.prototype,Er=xr.toString;function Mr(e){return Er.call(e)}var Tr=Mr,Pr="[object Null]",jr="[object Undefined]",Pt=te?te.toStringTag:void 0;function _r(e){return e==null?e===void 0?jr:Pr:Pt&&Pt in Object(e)?$r(e):Tr(e)}var ve=_r;function Lr(e){return e!=null&&typeof e=="object"}var yt=Lr,Id=Array.isArray;function Dr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ii=Dr,Nr="[object AsyncFunction]",Or="[object Function]",Fr="[object GeneratorFunction]",Rr="[object Proxy]";function zr(e){if(!ii(e))return!1;var t=ve(e);return t==Or||t==Fr||t==Nr||t==Rr}var Ur=zr,Br=R["__core-js_shared__"],nt=Br,jt=function(){var e=/[^.]+$/.exec(nt&&nt.keys&&nt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Vr(e){return!!jt&&jt in e}var Gr=Vr,qr=Function.prototype,Hr=qr.toString;function Qr(e){if(e!=null){try{return Hr.call(e)}catch{}try{return e+""}catch{}}return""}var K=Qr,Wr=/[\\^$.*+?()[\]{}|]/g,Zr=/^\[object .+?Constructor\]$/,Yr=Function.prototype,Kr=Object.prototype,Xr=Yr.toString,Jr=Kr.hasOwnProperty,en=RegExp("^"+Xr.call(Jr).replace(Wr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tn(e){if(!ii(e)||Gr(e))return!1;var t=Ur(e)?en:Zr;return t.test(K(e))}var rn=tn;function nn(e,t){return e?.[t]}var an=nn;function on(e,t){var i=an(e,t);return rn(i)?i:void 0}var ie=on,ln=ie(R,"WeakMap"),ct=ln;function sn(e,t){return e===t||e!==e&&t!==t}var cn=sn,un=9007199254740991;function dn(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=un}var pn=dn,Ad=Object.prototype,gn="[object Arguments]";function mn(e){return yt(e)&&ve(e)==gn}var _t=mn,ri=Object.prototype,fn=ri.hasOwnProperty,yn=ri.propertyIsEnumerable,Cd=_t(function(){return arguments}())?_t:function(e){return yt(e)&&fn.call(e,"callee")&&!yn.call(e,"callee")},ni=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lt=ni&&typeof module=="object"&&module&&!module.nodeType&&module,bn=Lt&&Lt.exports===ni,Dt=bn?R.Buffer:void 0,Sd=Dt?Dt.isBuffer:void 0,hn="[object Arguments]",vn="[object Array]",wn="[object Boolean]",kn="[object Date]",In="[object Error]",An="[object Function]",Cn="[object Map]",Sn="[object Number]",$n="[object Object]",xn="[object RegExp]",En="[object Set]",Mn="[object String]",Tn="[object WeakMap]",Pn="[object ArrayBuffer]",jn="[object DataView]",_n="[object Float32Array]",Ln="[object Float64Array]",Dn="[object Int8Array]",Nn="[object Int16Array]",On="[object Int32Array]",Fn="[object Uint8Array]",Rn="[object Uint8ClampedArray]",zn="[object Uint16Array]",Un="[object Uint32Array]",E={};E[_n]=E[Ln]=E[Dn]=E[Nn]=E[On]=E[Fn]=E[Rn]=E[zn]=E[Un]=!0;E[hn]=E[vn]=E[Pn]=E[wn]=E[jn]=E[kn]=E[In]=E[An]=E[Cn]=E[Sn]=E[$n]=E[xn]=E[En]=E[Mn]=E[Tn]=!1;function Bn(e){return yt(e)&&pn(e.length)&&!!E[ve(e)]}var Vn=Bn;function Gn(e){return function(t){return e(t)}}var qn=Gn,ai=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ye=ai&&typeof module=="object"&&module&&!module.nodeType&&module,Hn=ye&&ye.exports===ai,at=Hn&&ei.process,Qn=function(){try{var e=ye&&ye.require&&ye.require("util").types;return e||at&&at.binding&&at.binding("util")}catch{}}(),Nt=Qn,Ot=Nt&&Nt.isTypedArray,$d=Ot?qn(Ot):Vn,Wn=Object.prototype,xd=Wn.hasOwnProperty;function Zn(e,t){return function(i){return e(t(i))}}var Yn=Zn,Ed=Yn(Object.keys,Object),Kn=Object.prototype,Md=Kn.hasOwnProperty,Xn=ie(Object,"create"),be=Xn;function Jn(){this.__data__=be?be(null):{},this.size=0}var ea=Jn;function ta(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ia=ta,ra="__lodash_hash_undefined__",na=Object.prototype,aa=na.hasOwnProperty;function oa(e){var t=this.__data__;if(be){var i=t[e];return i===ra?void 0:i}return aa.call(t,e)?t[e]:void 0}var la=oa,sa=Object.prototype,ca=sa.hasOwnProperty;function ua(e){var t=this.__data__;return be?t[e]!==void 0:ca.call(t,e)}var da=ua,pa="__lodash_hash_undefined__";function ga(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=be&&t===void 0?pa:t,this}var ma=ga;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=ea;re.prototype.delete=ia;re.prototype.get=la;re.prototype.has=da;re.prototype.set=ma;var Ft=re;function fa(){this.__data__=[],this.size=0}var ya=fa;function ba(e,t){for(var i=e.length;i--;)if(cn(e[i][0],t))return i;return-1}var je=ba,ha=Array.prototype,va=ha.splice;function wa(e){var t=this.__data__,i=je(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():va.call(t,i,1),--this.size,!0}var ka=wa;function Ia(e){var t=this.__data__,i=je(t,e);return i<0?void 0:t[i][1]}var Aa=Ia;function Ca(e){return je(this.__data__,e)>-1}var Sa=Ca;function $a(e,t){var i=this.__data__,r=je(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var xa=$a;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=ya;ne.prototype.delete=ka;ne.prototype.get=Aa;ne.prototype.has=Sa;ne.prototype.set=xa;var _e=ne,Ea=ie(R,"Map"),he=Ea;function Ma(){this.size=0,this.__data__={hash:new Ft,map:new(he||_e),string:new Ft}}var Ta=Ma;function Pa(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ja=Pa;function _a(e,t){var i=e.__data__;return ja(t)?i[typeof t=="string"?"string":"hash"]:i.map}var Le=_a;function La(e){var t=Le(this,e).delete(e);return this.size-=t?1:0,t}var Da=La;function Na(e){return Le(this,e).get(e)}var Oa=Na;function Fa(e){return Le(this,e).has(e)}var Ra=Fa;function za(e,t){var i=Le(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Ua=za;function ae(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])}}ae.prototype.clear=Ta;ae.prototype.delete=Da;ae.prototype.get=Oa;ae.prototype.has=Ra;ae.prototype.set=Ua;var oi=ae;function Ba(){this.__data__=new _e,this.size=0}var Va=Ba;function Ga(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var qa=Ga;function Ha(e){return this.__data__.get(e)}var Qa=Ha;function Wa(e){return this.__data__.has(e)}var Za=Wa,Ya=200;function Ka(e,t){var i=this.__data__;if(i instanceof _e){var r=i.__data__;if(!he||r.length<Ya-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new oi(r)}return i.set(e,t),this.size=i.size,this}var Xa=Ka;function we(e){var t=this.__data__=new _e(e);this.size=t.size}we.prototype.clear=Va;we.prototype.delete=qa;we.prototype.get=Qa;we.prototype.has=Za;we.prototype.set=Xa;var Ja=Object.prototype,Td=Ja.propertyIsEnumerable,eo=ie(R,"DataView"),ut=eo,to=ie(R,"Promise"),dt=to,io=ie(R,"Set"),pt=io,Rt="[object Map]",ro="[object Object]",zt="[object Promise]",Ut="[object Set]",Bt="[object WeakMap]",Vt="[object DataView]",no=K(ut),ao=K(he),oo=K(dt),lo=K(pt),so=K(ct),J=ve;(ut&&J(new ut(new ArrayBuffer(1)))!=Vt||he&&J(new he)!=Rt||dt&&J(dt.resolve())!=zt||pt&&J(new pt)!=Ut||ct&&J(new ct)!=Bt)&&(J=function(e){var t=ve(e),i=t==ro?e.constructor:void 0,r=i?K(i):"";if(r)switch(r){case no:return Vt;case ao:return Rt;case oo:return zt;case lo:return Ut;case so:return Bt}return t});var Pd=R.Uint8Array,co="__lodash_hash_undefined__";function uo(e){return this.__data__.set(e,co),this}var po=uo;function go(e){return this.__data__.has(e)}var mo=go;function gt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new oi;++t<i;)this.add(e[t])}gt.prototype.add=gt.prototype.push=po;gt.prototype.has=mo;var Gt=te?te.prototype:void 0,jd=Gt?Gt.valueOf:void 0,fo=Object.prototype,_d=fo.hasOwnProperty,yo=Object.prototype,Ld=yo.hasOwnProperty,Dd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Nd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Od=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function li(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 li(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 bo(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 li(r,t)}function ho(e){return e!==void 0}var De=ho;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 ke(e,t){let i=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:i}}function Ie(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 Ne=class si{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 si),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))}},ci=class ui{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ui),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 vo(e){let t=e.filter(i=>!!i);return i=>async(r,n)=>{let o=[],a=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return i(c,d);let p=t[s],g=async(m,y)=>l(s+1,m,y),f={...d,addDisposer:a};return p(c,f,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 wo({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 ko=wo;var ot="ly.img.ai.temp";async function Io(e,t){return e.engine.asset.findAllSources().includes(ot)||e.engine.asset.addLocalSource(ot),e.engine.asset.apply(ot,t)}function Ao(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 di(){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 Co(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 So(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function bt(e){return e instanceof Error&&e.name==="AbortError"}function $o(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function pi(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!
1
+ var br=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 hr=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")}},vr=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)}},ei=vr,wr=typeof global=="object"&&global&&global.Object===Object&&global,ti=wr,kr=typeof self=="object"&&self&&self.Object===Object&&self,Ir=ti||kr||Function("return this")(),R=Ir,Ar=R.Symbol,te=Ar,ii=Object.prototype,Sr=ii.hasOwnProperty,Cr=ii.toString,pe=te?te.toStringTag:void 0;function $r(e){var t=Sr.call(e,pe),i=e[pe];try{e[pe]=void 0;var r=!0}catch{}var n=Cr.call(e);return r&&(t?e[pe]=i:delete e[pe]),n}var xr=$r,Er=Object.prototype,Mr=Er.toString;function Tr(e){return Mr.call(e)}var Pr=Tr,jr="[object Null]",_r="[object Undefined]",jt=te?te.toStringTag:void 0;function Lr(e){return e==null?e===void 0?_r:jr:jt&&jt in Object(e)?xr(e):Pr(e)}var we=Lr;function Dr(e){return e!=null&&typeof e=="object"}var bt=Dr,Ad=Array.isArray;function Nr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ri=Nr,Or="[object AsyncFunction]",Fr="[object Function]",Rr="[object GeneratorFunction]",zr="[object Proxy]";function Ur(e){if(!ri(e))return!1;var t=we(e);return t==Fr||t==Rr||t==Or||t==zr}var Br=Ur,Vr=R["__core-js_shared__"],at=Vr,_t=function(){var e=/[^.]+$/.exec(at&&at.keys&&at.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Gr(e){return!!_t&&_t in e}var qr=Gr,Hr=Function.prototype,Qr=Hr.toString;function Wr(e){if(e!=null){try{return Qr.call(e)}catch{}try{return e+""}catch{}}return""}var K=Wr,Zr=/[\\^$.*+?()[\]{}|]/g,Yr=/^\[object .+?Constructor\]$/,Kr=Function.prototype,Xr=Object.prototype,Jr=Kr.toString,en=Xr.hasOwnProperty,tn=RegExp("^"+Jr.call(en).replace(Zr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function rn(e){if(!ri(e)||qr(e))return!1;var t=Br(e)?tn:Yr;return t.test(K(e))}var nn=rn;function an(e,t){return e?.[t]}var on=an;function ln(e,t){var i=on(e,t);return nn(i)?i:void 0}var ie=ln,sn=ie(R,"WeakMap"),ut=sn;function cn(e,t){return e===t||e!==e&&t!==t}var un=cn,dn=9007199254740991;function pn(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=dn}var gn=pn,Sd=Object.prototype,mn="[object Arguments]";function fn(e){return bt(e)&&we(e)==mn}var Lt=fn,ni=Object.prototype,yn=ni.hasOwnProperty,bn=ni.propertyIsEnumerable,Cd=Lt(function(){return arguments}())?Lt:function(e){return bt(e)&&yn.call(e,"callee")&&!bn.call(e,"callee")},ai=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dt=ai&&typeof module=="object"&&module&&!module.nodeType&&module,hn=Dt&&Dt.exports===ai,Nt=hn?R.Buffer:void 0,$d=Nt?Nt.isBuffer:void 0,vn="[object Arguments]",wn="[object Array]",kn="[object Boolean]",In="[object Date]",An="[object Error]",Sn="[object Function]",Cn="[object Map]",$n="[object Number]",xn="[object Object]",En="[object RegExp]",Mn="[object Set]",Tn="[object String]",Pn="[object WeakMap]",jn="[object ArrayBuffer]",_n="[object DataView]",Ln="[object Float32Array]",Dn="[object Float64Array]",Nn="[object Int8Array]",On="[object Int16Array]",Fn="[object Int32Array]",Rn="[object Uint8Array]",zn="[object Uint8ClampedArray]",Un="[object Uint16Array]",Bn="[object Uint32Array]",$={};$[Ln]=$[Dn]=$[Nn]=$[On]=$[Fn]=$[Rn]=$[zn]=$[Un]=$[Bn]=!0;$[vn]=$[wn]=$[jn]=$[kn]=$[_n]=$[In]=$[An]=$[Sn]=$[Cn]=$[$n]=$[xn]=$[En]=$[Mn]=$[Tn]=$[Pn]=!1;function Vn(e){return bt(e)&&gn(e.length)&&!!$[we(e)]}var Gn=Vn;function qn(e){return function(t){return e(t)}}var Hn=qn,oi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ye=oi&&typeof module=="object"&&module&&!module.nodeType&&module,Qn=ye&&ye.exports===oi,ot=Qn&&ti.process,Wn=function(){try{var e=ye&&ye.require&&ye.require("util").types;return e||ot&&ot.binding&&ot.binding("util")}catch{}}(),Ot=Wn,Ft=Ot&&Ot.isTypedArray,xd=Ft?Hn(Ft):Gn,Zn=Object.prototype,Ed=Zn.hasOwnProperty;function Yn(e,t){return function(i){return e(t(i))}}var Kn=Yn,Md=Kn(Object.keys,Object),Xn=Object.prototype,Td=Xn.hasOwnProperty,Jn=ie(Object,"create"),be=Jn;function ea(){this.__data__=be?be(null):{},this.size=0}var ta=ea;function ia(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ra=ia,na="__lodash_hash_undefined__",aa=Object.prototype,oa=aa.hasOwnProperty;function la(e){var t=this.__data__;if(be){var i=t[e];return i===na?void 0:i}return oa.call(t,e)?t[e]:void 0}var sa=la,ca=Object.prototype,ua=ca.hasOwnProperty;function da(e){var t=this.__data__;return be?t[e]!==void 0:ua.call(t,e)}var pa=da,ga="__lodash_hash_undefined__";function ma(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=be&&t===void 0?ga:t,this}var fa=ma;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=ta;re.prototype.delete=ra;re.prototype.get=sa;re.prototype.has=pa;re.prototype.set=fa;var Rt=re;function ya(){this.__data__=[],this.size=0}var ba=ya;function ha(e,t){for(var i=e.length;i--;)if(un(e[i][0],t))return i;return-1}var _e=ha,va=Array.prototype,wa=va.splice;function ka(e){var t=this.__data__,i=_e(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():wa.call(t,i,1),--this.size,!0}var Ia=ka;function Aa(e){var t=this.__data__,i=_e(t,e);return i<0?void 0:t[i][1]}var Sa=Aa;function Ca(e){return _e(this.__data__,e)>-1}var $a=Ca;function xa(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 Ea=xa;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=ba;ne.prototype.delete=Ia;ne.prototype.get=Sa;ne.prototype.has=$a;ne.prototype.set=Ea;var Le=ne,Ma=ie(R,"Map"),he=Ma;function Ta(){this.size=0,this.__data__={hash:new Rt,map:new(he||Le),string:new Rt}}var Pa=Ta;function ja(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _a=ja;function La(e,t){var i=e.__data__;return _a(t)?i[typeof t=="string"?"string":"hash"]:i.map}var De=La;function Da(e){var t=De(this,e).delete(e);return this.size-=t?1:0,t}var Na=Da;function Oa(e){return De(this,e).get(e)}var Fa=Oa;function Ra(e){return De(this,e).has(e)}var za=Ra;function Ua(e,t){var i=De(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Ba=Ua;function ae(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])}}ae.prototype.clear=Pa;ae.prototype.delete=Na;ae.prototype.get=Fa;ae.prototype.has=za;ae.prototype.set=Ba;var li=ae;function Va(){this.__data__=new Le,this.size=0}var Ga=Va;function qa(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var Ha=qa;function Qa(e){return this.__data__.get(e)}var Wa=Qa;function Za(e){return this.__data__.has(e)}var Ya=Za,Ka=200;function Xa(e,t){var i=this.__data__;if(i instanceof Le){var r=i.__data__;if(!he||r.length<Ka-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new li(r)}return i.set(e,t),this.size=i.size,this}var Ja=Xa;function ke(e){var t=this.__data__=new Le(e);this.size=t.size}ke.prototype.clear=Ga;ke.prototype.delete=Ha;ke.prototype.get=Wa;ke.prototype.has=Ya;ke.prototype.set=Ja;var eo=Object.prototype,Pd=eo.propertyIsEnumerable,to=ie(R,"DataView"),dt=to,io=ie(R,"Promise"),pt=io,ro=ie(R,"Set"),gt=ro,zt="[object Map]",no="[object Object]",Ut="[object Promise]",Bt="[object Set]",Vt="[object WeakMap]",Gt="[object DataView]",ao=K(dt),oo=K(he),lo=K(pt),so=K(gt),co=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==no?e.constructor:void 0,r=i?K(i):"";if(r)switch(r){case ao:return Gt;case oo:return zt;case lo:return Ut;case so:return Bt;case co:return Vt}return t});var jd=R.Uint8Array,uo="__lodash_hash_undefined__";function po(e){return this.__data__.set(e,uo),this}var go=po;function mo(e){return this.__data__.has(e)}var fo=mo;function mt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new li;++t<i;)this.add(e[t])}mt.prototype.add=mt.prototype.push=go;mt.prototype.has=fo;var qt=te?te.prototype:void 0,_d=qt?qt.valueOf:void 0,yo=Object.prototype,Ld=yo.hasOwnProperty,bo=Object.prototype,Dd=bo.hasOwnProperty,Nd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Od=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Fd=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function si(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 ft(e,t){let i=await si(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 ho(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 si(r,t)}function vo(e){return e!==void 0}var Ne=vo;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 ci{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 ci),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))}},ui=class di{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new di),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 wo(e){let t=e.filter(i=>!!i);return i=>async(r,n)=>{let o=[],a=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return i(c,d);let p=t[s],g=async(m,y)=>l(s+1,m,y),f={...d,addDisposer:a};return p(c,f,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 ko({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 Io=ko;var lt="ly.img.ai.temp";async function Ao(e,t){return e.engine.asset.findAllSources().includes(lt)||e.engine.asset.addLocalSource(lt),e.engine.asset.apply(lt,t)}function So(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 pi(){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 Co(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 $o(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 xo(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function gi(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
2
  Plugin "${t}" is using version ${i}, 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 xo(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 gi=xo;function Eo(){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=Eo;function Mo(e,t){let{cesdk:i,provider:r,getInput:n,middlewareOptions:o}=t;o?.defaultPrevented()||(console.error("Generation failed:",e),To(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:Ao(e)}))}function To(e,t,i){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:o}),!0}var qt=Mo,Po="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ht=Po;function jo(e,t,i){switch(t){case"image":return _o(e,i[t]);case"video":return Lo(e,i[t]);case"sticker":return Do(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _o(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:ht,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:r}}}function Lo(e,t){let i=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:ht,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:r}}}function Do(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:ht,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:r}}}var No=jo;async function Oo(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 Fo(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 Ro(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 zo(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 Uo(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Fo(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 Ro(e,t,i){let r=t.width,n=t.height,o=await Co(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 zo(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 Uo(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 mi=Oo;function Bo(e){switch(e.userFlow){case"placeholder":return Go(e);case"generation-only":return Vo(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Vo(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=di(),u=await mi(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 Go(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=di(),u=No(l,o,a);if(r=await Io(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 mi(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)&&(bt(o)?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),{status:"error",message:o instanceof Error?o.message:String(o)}}}}function U(e,t,i){return t.aborted?(i!=null&&e.engine.block.isValid(i)&&e.engine.block.destroy(i),!0):!1}var qo=Bo;function vt(e){return`${e}.generating`}function Ho(e){return`${e}.abort`}function Qo(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(Ho(d),()=>{}),f=u.global(vt(d),!1),m,y=f.value&&p,v=()=>{y&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},k;if(o.requiredInputs!=null&&o.requiredInputs.length>0){let C=r();k=o.requiredInputs.every(b=>!C.input[b])}let I=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:f.value,color:"accent",isDisabled:k,suffix:y?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=s.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{s.ui.closeDialog(b),I.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),s.ui.closeDialog(b),I.setValue(void 0)}}});I.setValue(C)}}:void 0,onClick:async()=>{m=new AbortController;let C=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:i,historyAssetSourceId:o.historyAssetSourceId,userFlow:o.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:s,debug:a.debug,dryRun:a.dryRun})(r().input);if(b.status==="aborted")return;if(b.status==="error"){qt(b.message,{cesdk:s,provider:t,getInput:r,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let h=t.output.notification;Wo(s,h,()=>({input:r().input,output:b.output}))}}catch(b){if(bt(b))return;qt(b,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,f.setValue(!1),g.setValue(()=>{}),I.value!=null&&(s.ui.closeDialog(I.value),I.setValue(void 0))}})()}}),t.output.generationHintText!=null&&l.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),c&&o.historyAssetLibraryEntryId!=null&&l.Library(`${d}.history.library`,{entries:[o.historyAssetLibraryEntryId]})}function Wo(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 fi=Qo;async function Zo({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(vt(a),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=l(u,{cesdk:o,isGenerating:c});return fi(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Yo=Zo;function yi(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 me(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=yi(e,t.$ref),n={...me(e,r,i)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(n[o]=me(e,t[o],i));return n}if(Array.isArray(t))return t.map(r=>me(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=me(e,t[n],i));return r}return t}function Ko(e){return me(e,{...e})}function Xo(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 Jo(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return el(e,t).forEach(n=>{let o=n,a=i[n]??void 0;r.push({id:o,schema:a})}),r}function el(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=tl(e,t)??n;return i!=null&&typeof i=="function"&&(o=i(o)),[...new Set(o)]}function tl(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 bi=Jo;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 hi(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 vi(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?il(e,u,i,r,n,o,a,l):wi(e,u,i,r,n,o,a,l);case"boolean":return ki(e,u,i,r,n,o,a,l);case"number":case"integer":return Ii(e,u,i,r,n,o,a,l);case"object":return ft(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 rl(e,u,i,r,n,o,a,l);break}default:console.error(`Unsupported property type: ${s}`)}}function ft(e,t,i,r,n,o,a,l){let u=bi(t.schema??{},r).reduce((s,c)=>{let d=vi(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 wi(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),f=B(t,i,a,"placeholder"),m=ke(c,n.cesdk),y=l?.properties?.[d]??o.properties?.[d],v=Ie(d,y,m,t.schema.default,""),k=s(p,v),I=nl(t.schema),C=I?.component!=null&&I?.component==="TextArea"?"TextArea":"TextInput",b=f.length>0?f:void 0;return u[C](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function il(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:f,icons:m}=hi(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:B(t,i,a,h),icon:m[h]})),v=ke(c,n.cesdk),k=l?.properties?.[d]??o.properties?.[d],I=Ie(d,k,v,t.schema.default,y[0]?.id),C=I!=null?y.find(h=>h.id===I)??y[0]:y[0],b=s(p,C);return u.Select(p,{inputLabel:g,values:y,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ki(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),f=ke(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],y=!!Ie(d,m,f,t.schema.default,!1),v=s(p,y);return u.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}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),f=t.schema.minimum,m=t.schema.maximum,y=ke(c,n.cesdk),v=l?.properties?.[d]??o.properties?.[d],k=t.schema.default;k==null&&(f!=null?k=f:m!=null?k=m:k=0);let I=Ie(d,v,y,k,k),C=s(p,I);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"]),u.Slider(p,{inputLabel:g,min:f,max:m,step:b,...C})}else u.NumberInput(p,{inputLabel:g,min:f,max:m,...C});return()=>({id:t.id,type:"integer",value:C.value})}function rl(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),f=t.schema.anyOf??[],m=[],y={},v={},{labels:k,icons:I}=hi(t.schema),C=ke(c,n.cesdk),b=l?.properties?.[d]??o.properties?.[d],h={string:wi,boolean:ki,integer:Ii,object:ft},S=(A,N)=>A.$ref?A.$ref.split("/").pop():N.split(".").pop()??N,w=(A,N)=>({id:A,label:B(t,i,a,N),icon:I[N]??I[A]});f.forEach((A,N)=>{let x=`${i.id}.${d}.anyOf[${N}]`;if(A.$ref||A.title){let j=A.$ref?A.$ref.split("/").pop():A.title;y[x]=()=>ft(e,{id:x,schema:{...A,title:k[j]||j}},i,r,n,o,a,l),m.push(w(x,j))}else if(A.type==="string"&&A.enum)A.enum.forEach(j=>{m.push(w(j,j))});else if(A.type&&h[A.type]){let j=h[A.type];y[x]=()=>j(e,{id:x,schema:{...A,title:A.title}},i,r,n,o,a,l);let rt=S(A,x);m.push(A.type==="string"&&!A.enum?{id:x,label:A.title||rt,icon:A.title&&I[A.title]||I[rt]}:w(x,rt))}});let P=Ie(d,b,C,t.schema.default,null),$=P!=null?m.find(A=>A.id===P)??m[0]:m[0],D=s(p,$);if(u.Select(p,{inputLabel:g,values:m,...D}),D.value.id in y){let A=y[D.value.id]();v[D.value.id]=A}return()=>{let A=v[D.value.id];return A!=null?{...A(),id:t.id}:{id:t.id,type:"string",value:D.value.id}}}function nl(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var al=vi,ol={"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 Ht(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Qt(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),f=d[g]||Ht(g);n[o(c,g)]=f})};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,f=c[g]||Ht(g);n[o(s.id,g)]=f}})}});let u={...ol,...n};Object.keys(u).length>0&&T(i.cesdk,{en:u})}function Wt(e){return typeof e.document=="function"?e.document():e.document}function Zt(e,t,i){let r=Ko(e),n=yi(r,t.inputReference);if(!Xo(n,i))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let o=n,a=bi(o,t);return{inputSchema:o,properties:a}}function Yt(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(m=>{let y=al(s,m,n,i,r,o,n.kind,a);y!=null&&(Array.isArray(y)?d.push(...y):d.push(y))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((y,[v,k])=>(y[v]=g(k),y),{}):m.value,f=p.reduce((m,y)=>(m[y.id]=g(y),m),{});fi(s,n,l,()=>({input:f}),()=>i.getBlockInput(f),{...r,requiredInputs:e.required,createPlaceholderBlock:i.userFlow==="placeholder"},o)}}async function ll(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=Wt(l);if(!(u instanceof Promise)){let{inputSchema:g,properties:f}=Zt(u,l,o.debug);return Qt(f,r,i,r.kind),Yt(g,f,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(Wt(l)).then(g=>{let{inputSchema:f,properties:m}=Zt(g,l,o.debug);Qt(m,r,i,r.kind),c=Yt(f,m,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:f}=g;if(c!=null){c(g);return}if(s!=null){f.Section(`${a}.schema.error`,{children:()=>{f.Text(`${a}.schema.error.text`,{content:`Failed to load schema: ${s.message}`}),f.Button(`${a}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}f.Section(`${a}.schema.loading`,{children:()=>{f.Button(`${a}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var sl=ll;async function cl(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Yo(e,t);case"schema":return sl(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var ul=cl;function dl(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 yr(a,i)),a}return r}var pl=dl;function gl(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 ml=gl,lt="@imgly/plugin-ai-generation",fl=`
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 Eo(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=Eo;function Mo(){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=Mo;function To(e,t){let{cesdk:i,provider:r,getInput:n,middlewareOptions:o}=t;o?.defaultPrevented()||(console.error("Generation failed:",e),Po(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:So(e)}))}function Po(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=To,jo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",vt=jo;function _o(e,t,i){switch(t){case"image":return Lo(e,i[t]);case"video":return Do(e,i[t]);case"sticker":return No(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Lo(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 Do(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 No(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 Oo=_o;async function Fo(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 Ro(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 zo(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 Uo(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 Bo(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Ro(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 zo(e,t,i){let r=t.width,n=t.height,o=await Co(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 Uo(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 Bo(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 fi=Fo;function Vo(e){switch(e.userFlow){case"placeholder":return qo(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: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=pi(),u=await fi(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 qo(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=pi(),u=Oo(l,o,a);if(r=await Ao(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 fi(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 Ho=Vo;function wt(e){return`${e}.generating`}function Qo(e){return`${e}.abort`}function Wo(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(Qo(d),()=>{}),f=u.global(wt(d),!1),m,y=f.value&&p,v=()=>{y&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},k;if(o.requiredInputs!=null&&o.requiredInputs.length>0){let S=r();k=o.requiredInputs.every(b=>!S.input[b])}let I=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:f.value,color:"accent",isDisabled:k,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),I.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),s.ui.closeDialog(b),I.setValue(void 0)}}});I.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 Ho({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 h=t.output.notification;Zo(s,h,()=>({input:r().input,output:b.output}))}}catch(b){if(ht(b))return;Ht(b,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,f.setValue(!1),g.setValue(()=>{}),I.value!=null&&(s.ui.closeDialog(I.value),I.setValue(void 0))}})()}}),t.output.generationHintText!=null&&l.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),c&&o.historyAssetLibraryEntryId!=null&&l.Library(`${d}.history.library`,{entries:[o.historyAssetLibraryEntryId]})}function Zo(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 yi=Wo;function ve(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function Yo({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 yi(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Ko=Yo;function bi(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 me(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=bi(e,t.$ref),n={...me(e,r,i)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(n[o]=me(e,t[o],i));return n}if(Array.isArray(t))return t.map(r=>me(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=me(e,t[n],i));return r}return t}function Xo(e){return me(e,{...e})}function Jo(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 el(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return tl(e,t).forEach(n=>{let o=n,a=i[n]??void 0;r.push({id:o,schema:a})}),r}function tl(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=il(e,t)??n;return i!=null&&typeof i=="function"&&(o=i(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 i=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return i==null?void 0:e[i]}var hi=el;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 vi(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 wi(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?rl(e,u,i,r,n,o,a,l):ki(e,u,i,r,n,o,a,l);case"boolean":return Ii(e,u,i,r,n,o,a,l);case"number":case"integer":return Ai(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 nl(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=hi(t.schema??{},r).reduce((s,c)=>{let d=wi(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 ki(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),f=B(t,i,a,"placeholder"),m=Ie(c,n.cesdk),y=l?.properties?.[d]??o.properties?.[d],v=Ae(d,y,m,t.schema.default,""),k=s(p,v),I=al(t.schema),S=I?.component!=null&&I?.component==="TextArea"?"TextArea":"TextInput",b=f.length>0?f:void 0;return u[S](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function rl(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:f,icons:m}=vi(t.schema),y=(t.schema.enum??[]).map(h=>({id:h,label:B(t,i,a,h),icon:m[h]})),v=Ie(c,n.cesdk),k=l?.properties?.[d]??o.properties?.[d],I=Ae(d,k,v,t.schema.default,y[0]?.id),S=I!=null?y.find(h=>h.id===I)??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 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),f=Ie(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],y=!!Ae(d,m,f,t.schema.default,!1),v=s(p,y);return u.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}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),f=t.schema.minimum,m=t.schema.maximum,y=Ie(c,n.cesdk),v=l?.properties?.[d]??o.properties?.[d],k=t.schema.default;k==null&&(f!=null?k=f:m!=null?k=m:k=0);let I=Ae(d,v,y,k,k),S=s(p,I);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"]),u.Slider(p,{inputLabel:g,min:f,max:m,step:b,...S})}else u.NumberInput(p,{inputLabel:g,min:f,max:m,...S});return()=>({id:t.id,type:"integer",value:S.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),f=t.schema.anyOf??[],m=[],y={},v={},{labels:k,icons:I}=vi(t.schema),S=Ie(c,n.cesdk),b=l?.properties?.[d]??o.properties?.[d],h={string:ki,boolean:Ii,integer:Ai,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:I[N]??I[A]});f.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:k[j]||j}},i,r,n,o,a,l),m.push(w(M,j))}else if(A.type==="string"&&A.enum)A.enum.forEach(j=>{m.push(w(j,j))});else if(A.type&&h[A.type]){let j=h[A.type];y[M]=()=>j(e,{id:M,schema:{...A,title:A.title}},i,r,n,o,a,l);let nt=C(A,M);m.push(A.type==="string"&&!A.enum?{id:M,label:A.title||nt,icon:A.title&&I[A.title]||I[nt]}:w(M,nt))}});let P=Ae(d,b,S,t.schema.default,null),E=P!=null?m.find(A=>A.id===P)??m[0]:m[0],D=s(p,E);if(u.Select(p,{inputLabel:g,values:m,...D}),D.value.id in y){let A=y[D.value.id]();v[D.value.id]=A}return()=>{let A=v[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 ol=wi,ll={"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),f=d[g]||Qt(g);n[o(c,g)]=f})};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,f=c[g]||Qt(g);n[o(s.id,g)]=f}})}});let u={...ll,...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=Xo(e),n=bi(r,t.inputReference);if(!Jo(n,i))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let o=n,a=hi(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(m=>{let y=ol(s,m,n,i,r,o,n.kind,a);y!=null&&(Array.isArray(y)?d.push(...y):d.push(y))})}});let p=d.map(m=>m()),g=m=>m.type==="object"?Object.entries(m.value).reduce((y,[v,k])=>(y[v]=g(k),y),{}):m.value,f=p.reduce((m,y)=>(m[y.id]=g(y),m),{});yi(s,n,l,()=>({input:f}),()=>i.getBlockInput(f),{...r,requiredInputs:e.required,createPlaceholderBlock:i.userFlow==="placeholder"},o)}}async function sl(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:f}=Yt(u,l,o.debug);return Wt(f,r,i,r.kind),Kt(g,f,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:f,properties:m}=Yt(g,l,o.debug);Wt(m,r,i,r.kind),c=Kt(f,m,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:f}=g;if(c!=null){c(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.Section(`${a}.schema.loading`,{children:()=>{f.Button(`${a}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var cl=sl;async function ul(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Ko(e,t);case"schema":return cl(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var dl=ul;function pl(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 br(a,i)),a}return r}var gl=pl;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 fl=ml,st="@imgly/plugin-ai-generation",yl=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -19,7 +19,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
19
19
  fill="none"
20
20
  xmlns="http://www.w3.org/2000/svg"
21
21
  viewBox="0 0 24 24"
22
- id="${lt}/image"
22
+ id="${st}/image"
23
23
  >
24
24
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
25
25
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -31,7 +31,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
31
31
  fill="none"
32
32
  xmlns="http://www.w3.org/2000/svg"
33
33
  viewBox="0 0 24 24"
34
- id="${lt}/video"
34
+ id="${st}/video"
35
35
  >
36
36
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
37
37
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -42,7 +42,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
42
42
  fill="none"
43
43
  xmlns="http://www.w3.org/2000/svg"
44
44
  viewBox="0 0 24 24"
45
- id="${lt}/audio"
45
+ id="${st}/audio"
46
46
  >
47
47
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
48
48
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -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
- `,yl=fl;function bl(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 Ai(2e3),await hl(t,e,i)):r(t,i)}async function hl(e,t,i){switch(t.kind){case"image":return vl(e,t,i);case"video":return wl(e,t,i);case"text":return kl(e,t,i);case"audio":return Al(e,t,i);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function vl(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 bo(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 wl(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function kl(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 Il(o,i.abortSignal)}async function*Il(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 Ai(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 Al(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:Cl(220,r),duration:r,thumbnailUrl:void 0}}function Cl(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 Sl(r,44100)}function Sl(e,t){let i=e.length,r=2,n=1,o=n*r,a=t*o,l=i*r,u=44+l,s=new ArrayBuffer(u),c=new DataView(s),d=(m,y)=>{for(let v=0;v<y.length;v++)c.setUint8(m+v,y.charCodeAt(v))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,a,!0),c.setUint16(32,o,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,l,!0);let p=44;for(let m=0;m<i;m++){let y=Math.max(-1,Math.min(1,e[m])),v=Math.round(y*32767);c.setInt16(p,v,!0),p+=2}let g=new Uint8Array(s),f="";for(let m=0;m<g.length;m++)f+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(f)}`}async function Ai(e){return new Promise(t=>{setTimeout(t,e)})}var $l=bl,Ci="USER_CANCEL";function xl(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=vo([...e.provider.output.middleware??[],...i?.middlewares??[],ko({enable:i?.debug}),$l({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}:So(a)?{status:"success",type:"async",output:a,middlewareOptions:o}:{status:"success",type:"sync",output:a,middlewareOptions:o}}catch(a){return bt(a)?{status:"aborted",message:a.message,middlewareOptions:o}:a===Ci?{status:"aborted",message:a,middlewareOptions:o}:{status:"error",message:a instanceof Error?a.message:String(a),middlewareOptions:o}}}}var El=xl;async function Ml(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=Ne.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}`;i.cesdk.feature.enable(f,!0)}})}let a=pl(o),l=ml(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let u=El({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await ul(o,u);$o(i.cesdk,"@imgly/plugin-ai-generation",yl);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:u};return ci.get().register(c),c}var st=Ml;function Tl(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 br(n,i,r);return i.engine.asset.addSource(o),o.id}var Pl=Tl;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 jl(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"}});let o,a=[];if(r.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let s=await Promise.all(t.map(c=>st(e,c,i,r)));a.push(...s),o=Ll({kind:e,prefix:e,providerInitializationResults:a,cesdk:n})}else{let s=await Promise.all(t.fromText.map(d=>st(e,d,i,r)));a.push(...s);let c=await Promise.all(t.fromImage.map(d=>st(e,d,i,r)));a.push(...c),o=_l({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}r.debug&&console.groupEnd();let l=Pl({kind:e,cesdk:i.cesdk,historAssetSourceIds:a.map(s=>s.history?.assetSourceId).filter(De)}),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 _l({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}),f;d&&i.length>0&&(!g||r.length===0)?f="fromText":g&&r.length>0&&(!d||i.length===0)?f="fromImage":d&&g&&o&&(f="fromText");let m=u.global(`${t}.fromType`,f),y=[];m.value==="fromText"?y.push(...i):m.value==="fromImage"?y.push(...r):y.push(...i,...r);let v=i.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),k=r.map(({provider:x,panel:j})=>({id:x.id,label:x.name??x.id,builderRenderFunction:j?.builderRenderFunction})),I=a.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),C=a.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(x=>x.id===I.value)??v[0],h=k.find(x=>x.id===C.value)??k[0],S=m.value==="fromText"?I:m.value==="fromImage"?C:void 0,w=m.value==="fromText"?b:m.value==="fromImage"?h:void 0,P=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,$=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&&$;if((A||N)&&l.Section(`${t}.providerSelection.section`,{children:()=>{if(A&&l.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:fe(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:fe(e,"fromText.label"),icon:m.value!=="fromText"&&Kt(i,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromText",onClick:()=>{m.setValue("fromText")}}),g&&r.length>0&&l.Button(`${t}.fromType.buttonGroup.fromImage`,{label:fe(e,"fromImage.label"),icon:m.value!=="fromImage"&&Kt(r,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),N){let x=m.value==="fromText"?v:m.value==="fromImage"?k:[...v,...k];S!=null&&w!=null&&l.Select(`${t}.providerSelect.select`,{inputLabel:fe(e,"providerSelect.label"),values:x,value:w,setValue:j=>{S.setValue(j.id)}})}}}),y.length>1)w?.builderRenderFunction?.(a);else{let x=y[0];x&&x.panel?.builderRenderFunction?.(a)}}}function Ll({kind:e,prefix:t,providerInitializationResults:i,cesdk:r}){return n=>{let{builder:o,engine:a}=n;if(i.length===0)return;let l=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?l="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(l="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let u=r.feature.isEnabled(l,{engine:a}),s=i.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),c=n.state(`${t}.selectedProvider`,s[0]?.id),d=s.find(p=>p.id===c.value)??s[0];i.length>1&&u&&c!=null&&d!=null&&o.Section(`${t}.providerSelection.section`,{children:()=>{o.Select(`${t}.providerSelect.select`,{inputLabel:fe(e,"providerSelect.label"),values:s,value:d,setValue:p=>{c.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Kt(e,t){return e.length===0?!1:e.some(({provider:i})=>i.id==null?!1:t.experimental.global(vt(i.id),!1).value)}var Si=jl,Ae="ly.img.ai.editMode",$i="ly.img.ai.metadata";async function Dl(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 Jt(n,$i),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 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(i)}var Nl=Dl;function Ol(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 Fl=Ol;function Rl(e){return`ly.img.ai.${e}.canvasMenu`}var zl=Rl;function Ul(e){let{kind:t,cesdk:i,payload:r,defaultOrder:n}=e,o=zl(t);if(r==null||!Array.isArray(r.children)){let a=i.ui.getCanvasMenuOrder().find(({id:l})=>l===o);return a!=null&&Array.isArray(a.children)?a.children:n??[]}return r.children.filter(a=>typeof a=="string")}var Bl=Ul;function Vl(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 Gl(e,t);case"image":return ql(e,t);case"video":return Hl(e,t);case"audio":return Ql(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Gl(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 ql(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),f=i.engine.block.getCropScaleY(o),m=i.engine.block.getCropTranslationX(o),y=i.engine.block.getCropTranslationY(o),v=i.engine.block.getCropRotation(o),k=()=>{i.engine.block.setCropScaleX(o,g),i.engine.block.setCropScaleY(o,f),i.engine.block.setCropTranslationX(o,m),i.engine.block.setCropTranslationY(o,y),i.engine.block.setCropRotation(o,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let I=e.output.url,C=await mt(I,t.cesdk.engine),b=C.width/C.height,h=Math.abs(p-b)>.001,S=u?[{uri:I,width:C.width,height:C.height}]:void 0,w=I;S==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",S)),await i.engine.block.forceLoadResources([a]),h?i.engine.block.setContentFillMode(o,"Cover"):k();let P=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");i.engine.block.setString(a,"fill/image/imageFileURI",s)}else i.engine.block.setSourceSet(a,"fill/image/sourceSet",l);k()},$=()=>{if(S==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",S);h?i.engine.block.setContentFillMode(o,"Cover"):k()};return{applyCallbacks:{onBefore:P,onAfter:$,onCancel:()=>{P()},onApply:()=>{$(),t.cesdk.engine.editor.addUndoStep()}}}}async function Hl(e,t){throw new Error("Function not implemented.")}async function Ql(e,t){throw new Error("Function not implemented.")}var Wl=Vl;function Zl(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 Yl=Zl,Kl=class xi{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new xi),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=Kl;function Xl(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(De)),u=new Jt(e.cesdk.engine,$i),s=e.lock??!0?Yl({engine:e.cesdk.engine,editModeToLockTo:Ae,blockIdsToLock:r}):()=>{};r.forEach(c=>{Y.get().register(c,{onCancelGeneration:()=>{a.abort(Ci),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 Wl(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(f=>{u.set(f,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(f=>{Y.get().register(f,{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 Xt=Xl;function Jl(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()===Ae)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=Bl({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=es(l).filter(b=>{if(b==="ly.img.separator")return!0;let h=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${h}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let w=b.scopes;if(w!=null&&w.length>0&&!n.every(P=>w.every($=>e.engine.block.isAllowedByScope(P,$))))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,h)=>{if(h.provider.kind!==e.kind)return b;let S=u.map(w=>{if(w==="ly.img.separator")return w;if(h.provider.input?.quickActions?.supported?.[w.id]!=null)return{definition:w};{let P=ci.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==h.provider.id).find($=>$.provider.input?.quickActions?.supported?.[w.id]!=null);if(P!=null){let $={definition:w,providerInitializationResult:P};return s.push($),$}else return}}).filter(De);return S=Fl(S),S.length===0||S.every(w=>w==="ly.img.separator")||S.every(w=>w==="ly.img.separator"||w.providerInitializationResult!=null)||b.push({providerInitializationResult:h,quickActions:S}),b},[]);if(c.length===0)if(s.length>0){let b=new Map;s.forEach(S=>{let w=S.definition.id;b.has(w)||b.set(w,S)});let h=Array.from(b.values());c.push({providerInitializationResult:h[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:h})}else return;let d=c.map(({providerInitializationResult:b})=>({id:b.provider.id,label:b.provider.name??b.provider.id})),p=r.experimental.global(`${t}.currentProvider`,d[0]),g=c.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),f=n.every(b=>r.engine.block.getState(b).type==="Ready"),{builder:m,experimental:y,state:v}=r,k=v(`${t}.isGenerating`,!1),I=v(`${t}.toggleExpandedState`,void 0),C=async(b,h,S)=>{k.setValue(!0);try{return await S(b,h)}finally{k.setValue(!1)}};y.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(I.value!==void 0){let h=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===I.value);if(h==null||h.definition.render==null)return;let S=c.filter(({quickActions:$})=>$.some(D=>D!=="ly.img.separator"&&D.definition.id===h.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:$.provider.name??$.provider.id})),w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,P=e.cesdk.feature.isEnabled(w,{engine:e.engine});S.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:S,...p})}}),m.Section(`${t}.popover.expanded.section`,{children:()=>h.definition.render({...r,toggleExpand:()=>{I.setValue(void 0)},isExpanded:!0,generate:Xt({blockIds:n,providerInitializationResult:h.providerInitializationResult??g?.providerInitializationResult,quickAction:h.definition,middlewares:[C],confirmation:h.definition.defaults?.confirmation??!0,lock:h.definition.defaults?.lock??!0,close: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`,S=e.cesdk.feature.isEnabled(h,{engine:e.engine});d.length>1&&S&&m.Section(`${t}.popover.header`,{children:()=>{m.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),m.Section(`${t}.popover.section`,{children:()=>{y.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(w=>{if(w==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}w.definition.render!=null&&w.definition.render({...r,toggleExpand:()=>{I.setValue(w.definition.id)},isExpanded:!1,generate:Xt({blockIds:n,providerInitializationResult:w.providerInitializationResult??g?.providerInitializationResult,quickAction:w.definition,middlewares:[C],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 es(e){return e.map(t=>t==="ly.img.separator"?t:Ne.get().getBy({id:t,type:"quick"})[0]).filter(De)}var ts=Jl;async function is(e){let t=await ts({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),i=await Nl({kind:e.kind,cesdk:e.cesdk});return{renderFunction:r=>{let{engine:n}=r;if(n.editor.getEditMode()===Ae){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 Ei=is;var Mi="@imgly/plugin-ai-image-generation",rs=`
65
+ `,bl=yl;function hl(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 Si(2e3),await vl(t,e,i)):r(t,i)}async function vl(e,t,i){switch(t.kind){case"image":return wl(e,t,i);case"video":return kl(e,t,i);case"text":return Il(e,t,i);case"audio":return Sl(e,t,i);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function wl(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 ho(l,i),s=await ft(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 kl(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Il(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 Al(o,i.abortSignal)}async function*Al(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 Si(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 Sl(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:Cl(220,r),duration:r,thumbnailUrl:void 0}}function Cl(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 $l(r,44100)}function $l(e,t){let i=e.length,r=2,n=1,o=n*r,a=t*o,l=i*r,u=44+l,s=new ArrayBuffer(u),c=new DataView(s),d=(m,y)=>{for(let v=0;v<y.length;v++)c.setUint8(m+v,y.charCodeAt(v))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,a,!0),c.setUint16(32,o,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,l,!0);let p=44;for(let m=0;m<i;m++){let y=Math.max(-1,Math.min(1,e[m])),v=Math.round(y*32767);c.setInt16(p,v,!0),p+=2}let g=new Uint8Array(s),f="";for(let m=0;m<g.length;m++)f+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(f)}`}async function Si(e){return new Promise(t=>{setTimeout(t,e)})}var xl=hl,Ci="USER_CANCEL";function El(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=wo([...e.provider.output.middleware??[],...i?.middlewares??[],Io({enable:i?.debug}),xl({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}:$o(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===Ci?{status:"aborted",message:a,middlewareOptions:o}:{status:"error",message:a instanceof Error?a.message:String(a),middlewareOptions:o}}}}var Ml=El;async function Tl(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 f=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;i.cesdk.feature.enable(f,!0)}})}let a=gl(o),l=fl(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let u=Ml({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await dl(o,u);xo(i.cesdk,"@imgly/plugin-ai-generation",bl);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:u};return ui.get().register(c),c}var ct=Tl;function Pl(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 hr(n,i,r);return i.engine.asset.addSource(o),o.id}var jl=Pl;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 _l(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=Dl({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=Ll({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}r.debug&&console.groupEnd();let l=jl({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 Ll({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}),f;d&&i.length>0&&(!g||r.length===0)?f="fromText":g&&r.length>0&&(!d||i.length===0)?f="fromImage":d&&g&&o&&(f="fromText");let m=u.global(`${t}.fromType`,f),y=[];m.value==="fromText"?y.push(...i):m.value==="fromImage"?y.push(...r):y.push(...i,...r);let v=i.map(({provider:M,panel:j})=>({id:M.id,label:ve(M),builderRenderFunction:j?.builderRenderFunction})),k=r.map(({provider:M,panel:j})=>({id:M.id,label:ve(M),builderRenderFunction:j?.builderRenderFunction})),I=a.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),S=a.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(M=>M.id===I.value)??v[0],h=k.find(M=>M.id===S.value)??k[0],C=m.value==="fromText"?I: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=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:fe(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:fe(e,"fromText.label"),icon:m.value!=="fromText"&&Xt(i,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromText",onClick:()=>{m.setValue("fromText")}}),g&&r.length>0&&l.Button(`${t}.fromType.buttonGroup.fromImage`,{label:fe(e,"fromImage.label"),icon:m.value!=="fromImage"&&Xt(r,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),N){let M=m.value==="fromText"?v:m.value==="fromImage"?k:[...v,...k];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 Dl({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:fe(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 $i=_l,Se="ly.img.ai.editMode",xi="ly.img.ai.metadata";async function Nl(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 ei(n,xi),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 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(i)}var Ol=Nl;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((i,r)=>(r==="ly.img.separator"&&i.length>0&&i[i.length-1]==="ly.img.separator"||i.push(r),i),[])}var Rl=Fl;function zl(e){return`ly.img.ai.${e}.canvasMenu`}var Ul=zl;function Bl(e){let{kind:t,cesdk:i,payload:r,defaultOrder:n}=e,o=Ul(t);if(r==null||!Array.isArray(r.children)){let a=i.ui.getCanvasMenuOrder().find(({id:l})=>l===o);return a!=null&&Array.isArray(a.children)?a.children:n??[]}return r.children.filter(a=>typeof a=="string")}var Vl=Bl;function Gl(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 Hl(e,t);case"video":return Ql(e,t);case"audio":return Wl(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 Hl(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 ft(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),f=i.engine.block.getCropScaleY(o),m=i.engine.block.getCropTranslationX(o),y=i.engine.block.getCropTranslationY(o),v=i.engine.block.getCropRotation(o),k=()=>{i.engine.block.setCropScaleX(o,g),i.engine.block.setCropScaleY(o,f),i.engine.block.setCropTranslationX(o,m),i.engine.block.setCropTranslationY(o,y),i.engine.block.setCropRotation(o,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let I=e.output.url,S=await ft(I,t.cesdk.engine),b=S.width/S.height,h=Math.abs(p-b)>.001,C=u?[{uri:I,width:S.width,height:S.height}]:void 0,w=I;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]),h?i.engine.block.setContentFillMode(o,"Cover"):k();let P=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");i.engine.block.setString(a,"fill/image/imageFileURI",s)}else i.engine.block.setSourceSet(a,"fill/image/sourceSet",l);k()},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);h?i.engine.block.setContentFillMode(o,"Cover"):k()};return{applyCallbacks:{onBefore:P,onAfter:E,onCancel:()=>{P()},onApply:()=>{E(),t.cesdk.engine.editor.addUndoStep()}}}}async function Ql(e,t){throw new Error("Function not implemented.")}async function Wl(e,t){throw new Error("Function not implemented.")}var Zl=Gl;function Yl(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 Kl=Yl,Xl=class Ei{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new Ei),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=Xl;function Jl(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 ei(e.cesdk.engine,xi),s=e.lock??!0?Kl({engine:e.cesdk.engine,editModeToLockTo:Se,blockIdsToLock:r}):()=>{};r.forEach(c=>{Y.get().register(c,{onCancelGeneration:()=>{a.abort(Ci),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 Zl(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(f=>{u.set(f,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(f=>{Y.get().register(f,{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 Jt=Jl;function es(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=Vl({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=ts(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=[],c=e.providerInitializationResults.reduce((b,h)=>{if(h.provider.kind!==e.kind)return b;let C=u.map(w=>{if(w==="ly.img.separator")return w;if(h.provider.input?.quickActions?.supported?.[w.id]!=null)return{definition:w};{let P=ui.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=Rl(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(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 h=Array.from(b.values());c.push({providerInitializationResult:h[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:h})}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),f=n.every(b=>r.engine.block.getState(b).type==="Ready"),{builder:m,experimental:y,state:v}=r,k=v(`${t}.isGenerating`,!1),I=v(`${t}.toggleExpandedState`,void 0),S=async(b,h,C)=>{k.setValue(!0);try{return await C(b,h)}finally{k.setValue(!1)}};y.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(I.value!==void 0){let h=g?.quickActions.find(E=>E!=="ly.img.separator"&&E.definition.id===I.value);if(h==null||h.definition.render==null)return;let C=c.filter(({quickActions:E})=>E.some(D=>D!=="ly.img.separator"&&D.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({...r,toggleExpand:()=>{I.setValue(void 0)},isExpanded:!0,generate:Jt({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({...r,toggleExpand:()=>{I.setValue(w.definition.id)},isExpanded:!1,generate:Jt({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 ts(e){return e.map(t=>t==="ly.img.separator"?t:Oe.get().getBy({id:t,type:"quick"})[0]).filter(Ne)}var is=es;async function rs(e){let t=await is({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),i=await Ol({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 Mi=rs;var Ti="@imgly/plugin-ai-image-generation",ns=`
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
- `,Ti=rs;var ns=typeof global=="object"&&global&&global.Object===Object&&global,qi=ns,as=typeof self=="object"&&self&&self.Object===Object&&self,os=qi||as||Function("return this")(),z=os,ls=z.Symbol,le=ls,Hi=Object.prototype,ss=Hi.hasOwnProperty,cs=Hi.toString,Ce=le?le.toStringTag:void 0;function us(e){var t=ss.call(e,Ce),i=e[Ce];try{e[Ce]=void 0;var r=!0}catch{}var n=cs.call(e);return r&&(t?e[Ce]=i:delete e[Ce]),n}var ds=us,ps=Object.prototype,gs=ps.toString;function ms(e){return gs.call(e)}var fs=ms,ys="[object Null]",bs="[object Undefined]",Pi=le?le.toStringTag:void 0;function hs(e){return e==null?e===void 0?bs:ys:Pi&&Pi in Object(e)?ds(e):fs(e)}var Ee=hs;function vs(e){return e!=null&&typeof e=="object"}var xt=vs,Vd=Array.isArray;function ws(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Qi=ws,ks="[object AsyncFunction]",Is="[object Function]",As="[object GeneratorFunction]",Cs="[object Proxy]";function Ss(e){if(!Qi(e))return!1;var t=Ee(e);return t==Is||t==As||t==ks||t==Cs}var $s=Ss,xs=z["__core-js_shared__"],wt=xs,ji=function(){var e=/[^.]+$/.exec(wt&&wt.keys&&wt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Es(e){return!!ji&&ji in e}var Ms=Es,Ts=Function.prototype,Ps=Ts.toString;function js(e){if(e!=null){try{return Ps.call(e)}catch{}try{return e+""}catch{}}return""}var X=js,_s=/[\\^$.*+?()[\]{}|]/g,Ls=/^\[object .+?Constructor\]$/,Ds=Function.prototype,Ns=Object.prototype,Os=Ds.toString,Fs=Ns.hasOwnProperty,Rs=RegExp("^"+Os.call(Fs).replace(_s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zs(e){if(!Qi(e)||Ms(e))return!1;var t=$s(e)?Rs:Ls;return t.test(X(e))}var Us=zs;function Bs(e,t){return e?.[t]}var Vs=Bs;function Gs(e,t){var i=Vs(e,t);return Us(i)?i:void 0}var se=Gs,qs=se(z,"WeakMap"),It=qs;function Hs(e,t){return e===t||e!==e&&t!==t}var Qs=Hs,Ws=9007199254740991;function Zs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ws}var Ys=Zs;var Gd=Object.prototype;var Ks="[object Arguments]";function Xs(e){return xt(e)&&Ee(e)==Ks}var _i=Xs,Wi=Object.prototype,Js=Wi.hasOwnProperty,ec=Wi.propertyIsEnumerable,qd=_i(function(){return arguments}())?_i:function(e){return xt(e)&&Js.call(e,"callee")&&!ec.call(e,"callee")};var Zi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Li=Zi&&typeof module=="object"&&module&&!module.nodeType&&module,tc=Li&&Li.exports===Zi,Di=tc?z.Buffer:void 0,Hd=Di?Di.isBuffer:void 0;var ic="[object Arguments]",rc="[object Array]",nc="[object Boolean]",ac="[object Date]",oc="[object Error]",lc="[object Function]",sc="[object Map]",cc="[object Number]",uc="[object Object]",dc="[object RegExp]",pc="[object Set]",gc="[object String]",mc="[object WeakMap]",fc="[object ArrayBuffer]",yc="[object DataView]",bc="[object Float32Array]",hc="[object Float64Array]",vc="[object Int8Array]",wc="[object Int16Array]",kc="[object Int32Array]",Ic="[object Uint8Array]",Ac="[object Uint8ClampedArray]",Cc="[object Uint16Array]",Sc="[object Uint32Array]",M={};M[bc]=M[hc]=M[vc]=M[wc]=M[kc]=M[Ic]=M[Ac]=M[Cc]=M[Sc]=!0;M[ic]=M[rc]=M[fc]=M[nc]=M[yc]=M[ac]=M[oc]=M[lc]=M[sc]=M[cc]=M[uc]=M[dc]=M[pc]=M[gc]=M[mc]=!1;function $c(e){return xt(e)&&Ys(e.length)&&!!M[Ee(e)]}var xc=$c;function Ec(e){return function(t){return e(t)}}var Mc=Ec,Yi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Se=Yi&&typeof module=="object"&&module&&!module.nodeType&&module,Tc=Se&&Se.exports===Yi,kt=Tc&&qi.process,Pc=function(){try{var e=Se&&Se.require&&Se.require("util").types;return e||kt&&kt.binding&&kt.binding("util")}catch{}}(),Ni=Pc,Oi=Ni&&Ni.isTypedArray,Qd=Oi?Mc(Oi):xc;var jc=Object.prototype,Wd=jc.hasOwnProperty;function _c(e,t){return function(i){return e(t(i))}}var Lc=_c,Zd=Lc(Object.keys,Object);var Dc=Object.prototype,Yd=Dc.hasOwnProperty;var Nc=se(Object,"create"),$e=Nc;function Oc(){this.__data__=$e?$e(null):{},this.size=0}var Fc=Oc;function Rc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var zc=Rc,Uc="__lodash_hash_undefined__",Bc=Object.prototype,Vc=Bc.hasOwnProperty;function Gc(e){var t=this.__data__;if($e){var i=t[e];return i===Uc?void 0:i}return Vc.call(t,e)?t[e]:void 0}var qc=Gc,Hc=Object.prototype,Qc=Hc.hasOwnProperty;function Wc(e){var t=this.__data__;return $e?t[e]!==void 0:Qc.call(t,e)}var Zc=Wc,Yc="__lodash_hash_undefined__";function Kc(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=$e&&t===void 0?Yc:t,this}var Xc=Kc;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=Fc;ce.prototype.delete=zc;ce.prototype.get=qc;ce.prototype.has=Zc;ce.prototype.set=Xc;var Fi=ce;function Jc(){this.__data__=[],this.size=0}var eu=Jc;function tu(e,t){for(var i=e.length;i--;)if(Qs(e[i][0],t))return i;return-1}var Oe=tu,iu=Array.prototype,ru=iu.splice;function nu(e){var t=this.__data__,i=Oe(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():ru.call(t,i,1),--this.size,!0}var au=nu;function ou(e){var t=this.__data__,i=Oe(t,e);return i<0?void 0:t[i][1]}var lu=ou;function su(e){return Oe(this.__data__,e)>-1}var cu=su;function uu(e,t){var i=this.__data__,r=Oe(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var du=uu;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=eu;ue.prototype.delete=au;ue.prototype.get=lu;ue.prototype.has=cu;ue.prototype.set=du;var Fe=ue,pu=se(z,"Map"),xe=pu;function gu(){this.size=0,this.__data__={hash:new Fi,map:new(xe||Fe),string:new Fi}}var mu=gu;function fu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yu=fu;function bu(e,t){var i=e.__data__;return yu(t)?i[typeof t=="string"?"string":"hash"]:i.map}var Re=bu;function hu(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t}var vu=hu;function wu(e){return Re(this,e).get(e)}var ku=wu;function Iu(e){return Re(this,e).has(e)}var Au=Iu;function Cu(e,t){var i=Re(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Su=Cu;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=mu;de.prototype.delete=vu;de.prototype.get=ku;de.prototype.has=Au;de.prototype.set=Su;var Ki=de;function $u(){this.__data__=new Fe,this.size=0}var xu=$u;function Eu(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var Mu=Eu;function Tu(e){return this.__data__.get(e)}var Pu=Tu;function ju(e){return this.__data__.has(e)}var _u=ju,Lu=200;function Du(e,t){var i=this.__data__;if(i instanceof Fe){var r=i.__data__;if(!xe||r.length<Lu-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Ki(r)}return i.set(e,t),this.size=i.size,this}var Nu=Du;function Me(e){var t=this.__data__=new Fe(e);this.size=t.size}Me.prototype.clear=xu;Me.prototype.delete=Mu;Me.prototype.get=Pu;Me.prototype.has=_u;Me.prototype.set=Nu;var Ou=Object.prototype,Kd=Ou.propertyIsEnumerable;var Fu=se(z,"DataView"),At=Fu,Ru=se(z,"Promise"),Ct=Ru,zu=se(z,"Set"),St=zu,Ri="[object Map]",Uu="[object Object]",zi="[object Promise]",Ui="[object Set]",Bi="[object WeakMap]",Vi="[object DataView]",Bu=X(At),Vu=X(xe),Gu=X(Ct),qu=X(St),Hu=X(It),oe=Ee;(At&&oe(new At(new ArrayBuffer(1)))!=Vi||xe&&oe(new xe)!=Ri||Ct&&oe(Ct.resolve())!=zi||St&&oe(new St)!=Ui||It&&oe(new It)!=Bi)&&(oe=function(e){var t=Ee(e),i=t==Uu?e.constructor:void 0,r=i?X(i):"";if(r)switch(r){case Bu:return Vi;case Vu:return Ri;case Gu:return zi;case qu:return Ui;case Hu:return Bi}return t});var Xd=z.Uint8Array;var Qu="__lodash_hash_undefined__";function Wu(e){return this.__data__.set(e,Qu),this}var Zu=Wu;function Yu(e){return this.__data__.has(e)}var Ku=Yu;function $t(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Ki;++t<i;)this.add(e[t])}$t.prototype.add=$t.prototype.push=Zu;$t.prototype.has=Ku;var Gi=le?le.prototype:void 0,Jd=Gi?Gi.valueOf:void 0;var Xu=Object.prototype,ep=Xu.hasOwnProperty;var Ju=Object.prototype,tp=Ju.hasOwnProperty;var ip=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),rp=new RegExp(/[A-Fa-f0-9]{1}/,"g"),np=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ed(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 ed(r,t)}function td(e){return e==null?[]:Array.isArray(e)?e:[e]}var Et=td;function id(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function rd(e){return typeof e?.translate=="function"}function Xi(e,t,i){return e&&id(e)&&rd(e.i18n)?e.i18n.translate(t):i}var V="@imgly/plugin-ai-image-generation-web",ze=["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 Ve="editImage",G=`ly.img.${Ve}`,Ji=`ly.img.plugin-ai-image-generation-web.quickAction.${Ve}`,Ue=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ve}`;function Be(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ve}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var nd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),T(e,{en:{[`${Ue}`]:"Edit Image...",[`${Ue}.description`]:"Change image based on description",[`${Ue}.prompt`]:"Edit Image...",[`${Ji}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${Ue}.apply`]:"Change"}}),{id:G,type:"quick",kind:"image",label:`${Ji}`,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:Be(c,"prompt"),placeholder:Be(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:Be(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(),f=await L(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 i.Button(`${G}.button`,{label:Be(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),er=nd;var He="swapBackground",q=`ly.img.${He}`,tr=`ly.img.plugin-ai-image-generation-web.quickAction.${He}`,Ge=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${He}`;function qe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${He}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ad=({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...",[`${tr}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Ge}.apply`]:"Change"}}),{id:q,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(`${q}.prompt`,"");i.TextArea(`${q}.prompt`,{inputLabel:qe(c,"prompt"),placeholder:qe(c,"prompt.placeholder")[1],...d}),i.Separator(`${q}.separator`),r.builder.ButtonRow(`${q}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${q}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${q}.footer.apply`,{label:qe(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=await L(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 i.Button(`${q}.button`,{label:qe(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),ir=ad;var Qe="styleTransfer",Te=`ly.img.${Qe}`,od=`ly.img.plugin-ai-image-generation-web.quickAction.${Qe}`,F=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Qe}`;function rr(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 ld=[{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."}],sd=({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:Te,type:"quick",kind:"image",label:`${od}`,enable:O(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Te}.popover`,{label:rr(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Te}.popover.section`,{children:()=>{r.builder.Menu(`${Te}.popover.menu`,{children:()=>{ld.forEach(u=>{i.Button(`${Te}.popover.menu.${u.id}`,{label:rr(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"})}}})})}})}})}})}}),nr=sd;var We="artistTransfer",Pe=`ly.img.${We}`,cd=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,_=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function ar(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:"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."}],dd=({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: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:ar(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:ar(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"})}}})})}})}})}})}}),or=dd;var Ke="createVariant",H=`ly.img.${Ke}`,lr=`ly.img.plugin-ai-image-generation-web.quickAction.${Ke}`,Ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ke}`;function Ye(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ke}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var pd=({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...",[`${lr}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ze}.apply`]:"Create"}}),{id:H,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${lr}`,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:Ye(c,"prompt"),placeholder:Ye(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:Ye(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=l.block.getType(g),m=l.block.duplicate(g);f==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let y=l.block.getParent(m);if(y==null)throw new Error("Parent not found");if(!(y!=null&&l.block.getType(y)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(y))&&f!=="//ly.img.ubq/page"){let C=l.block.getWidth(y),b=l.block.getHeight(y),h=.02*Math.min(C,b)*1;l.block.setPositionX(m,l.block.getPositionX(m)+h),l.block.setPositionY(m,l.block.getPositionY(m)+h)}let k=await L(m,l,{throwErrorIfSvg:!0});await a({prompt:p,uri:k},{blockIds:[m]}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else i.Button(`${H}.button`,{label:Ye(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),sr=pd;var Je="combineImages",Q=`ly.img.${Je}`,cr=`ly.img.plugin-ai-image-generation-web.quickAction.${Je}`,Mt=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Je}`;function Xe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Je}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var gd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),T(e,{en:{[`${Mt}.apply`]:"Combine",[`${Mt}`]:"Combine Images...",[`${Mt}.prompt`]:"Image Combination Instructions",[`${cr}.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:`${cr}`,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:Xe(c,"prompt"),placeholder:Xe(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:Xe(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(),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),k=l.block.getHeight(m),I=.02*Math.min(v,k)*y;l.block.setPositionX(f,l.block.getPositionX(f)+I),l.block.setPositionY(f,l.block.getPositionY(f)+I);let C=await Promise.all(g.map(b=>L(b,l,{throwErrorIfSvg:!0})));await a({prompt:p,uris:C,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 i.Button(`${Q}.button`,{label:Xe(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),ur=gd;var et="remixPage",dr=`ly.img.${et}`,md=`ly.img.plugin-ai-image-generation-web.quickAction.${et}`,fd=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${et}`;function yd(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 bd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),T(e,{en:{[`${fd}`]:"Turn Page into Image"}}),{id:dr,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${md}`,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(`${dr}.button`,{label:yd(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[l]=n.block.findAllSelected(),u=await n.block.export(l),s=URL.createObjectURL(u),c=n.block.duplicate(l);n.block.getChildren(c).forEach(k=>{n.block.destroy(k)}),n.block.setSelected(l,!1);let d=n.block.getFrameWidth(l),p=n.block.getFrameHeight(l),g=n.block.getPositionX(l),f=n.block.getPositionY(l),m=n.block.createShape("rect"),y=n.block.create("graphic");n.block.setShape(y,m),n.block.appendChild(c,y),n.block.setWidth(y,d),n.block.setHeight(y,p),n.block.setPositionX(y,g),n.block.setPositionY(y,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 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"})}}})}}),pr=bd;var it="remixPageWithPrompt",W=`ly.img.${it}`,gr=`ly.img.plugin-ai-image-generation-web.quickAction.${it}`,Tt=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${it}`;function tt(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${it}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var hd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),T(e,{en:{[`${Tt}`]:"Remix Page...",[`${Tt}.prompt`]:"Remix Page Prompt",[`${gr}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Tt}.apply`]:"Remix"}}),{id:W,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${gr}`,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:tt(c,"prompt"),placeholder:tt(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:tt(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(),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),k=l.block.getFrameHeight(g),I=l.block.getPositionX(g),C=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,k),l.block.setPositionX(h,I),l.block.setPositionY(h,C);let S=l.block.createFill("image");l.block.setFill(h,S),l.block.setString(S,"fill/image/imageFileURI",m),l.block.setSelected(h,!0),l.scene.zoomToBlock(h),await 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 i.Button(`${W}.button`,{label:tt(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),mr=hd;var Z="ly.img.ai.image-generation";function vd(e){return{async initialize({cesdk:t}){if(t==null)return;pi(t,V,"1.73.0-rc.2"),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=Ne.get(),r=`${V}.action.label`;t.ui.addIconSet(Mi,Ti),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:Xi(t,r,"Generate Image"),labelKey:r,meta:{panelId:Z},execute:()=>{t.ui.isPanelOpen(Z)?t.ui.closePanel(Z):t.ui.openPanel(Z)}});wd(e),i.register(er({cesdk:t})),i.register(ir({cesdk:t})),i.register(nr({cesdk:t})),i.register(or({cesdk:t})),i.register(sr({cesdk:t})),i.register(ur({cesdk:t})),i.register(pr({cesdk:t})),i.register(mr({cesdk:t}));let o=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,l=await Promise.all(Et(o).map(p=>p({cesdk:t}))),u=await Promise.all(Et(a).map(p=>p({cesdk:t})));if(!(l.length>0||u.length>0)){n();return}let c=await Si("image",{fromText:l,fromImage:u},{cesdk:t},e),d=await Ei({kind:"image",providerInitializationResults:c.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:ze});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:Ae})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(Z,c.panel.builderRenderFunction),gi({cesdk:t,panelId:Z})):n()}}}function wd(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 fr=vd;var kd=e=>({name:V,version:"1.73.0-rc.2",...fr(e)}),Jp=kd;export{ze as DEFAULT_IMAGE_QUICK_ACTION_ORDER,Jp as default};
80
+ `,Pi=ns;var as=typeof global=="object"&&global&&global.Object===Object&&global,Hi=as,os=typeof self=="object"&&self&&self.Object===Object&&self,ls=Hi||os||Function("return this")(),z=ls,ss=z.Symbol,le=ss,Qi=Object.prototype,cs=Qi.hasOwnProperty,us=Qi.toString,Ce=le?le.toStringTag:void 0;function ds(e){var t=cs.call(e,Ce),i=e[Ce];try{e[Ce]=void 0;var r=!0}catch{}var n=us.call(e);return r&&(t?e[Ce]=i:delete e[Ce]),n}var ps=ds,gs=Object.prototype,ms=gs.toString;function fs(e){return ms.call(e)}var ys=fs,bs="[object Null]",hs="[object Undefined]",ji=le?le.toStringTag:void 0;function vs(e){return e==null?e===void 0?hs:bs:ji&&ji in Object(e)?ps(e):ys(e)}var Me=vs;function ws(e){return e!=null&&typeof e=="object"}var Et=ws,Gd=Array.isArray;function ks(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Wi=ks,Is="[object AsyncFunction]",As="[object Function]",Ss="[object GeneratorFunction]",Cs="[object Proxy]";function $s(e){if(!Wi(e))return!1;var t=Me(e);return t==As||t==Ss||t==Is||t==Cs}var xs=$s,Es=z["__core-js_shared__"],kt=Es,_i=function(){var e=/[^.]+$/.exec(kt&&kt.keys&&kt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ms(e){return!!_i&&_i in e}var Ts=Ms,Ps=Function.prototype,js=Ps.toString;function _s(e){if(e!=null){try{return js.call(e)}catch{}try{return e+""}catch{}}return""}var X=_s,Ls=/[\\^$.*+?()[\]{}|]/g,Ds=/^\[object .+?Constructor\]$/,Ns=Function.prototype,Os=Object.prototype,Fs=Ns.toString,Rs=Os.hasOwnProperty,zs=RegExp("^"+Fs.call(Rs).replace(Ls,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Us(e){if(!Wi(e)||Ts(e))return!1;var t=xs(e)?zs:Ds;return t.test(X(e))}var Bs=Us;function Vs(e,t){return e?.[t]}var Gs=Vs;function qs(e,t){var i=Gs(e,t);return Bs(i)?i:void 0}var se=qs,Hs=se(z,"WeakMap"),At=Hs;function Qs(e,t){return e===t||e!==e&&t!==t}var Ws=Qs,Zs=9007199254740991;function Ys(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Zs}var Ks=Ys;var qd=Object.prototype;var Xs="[object Arguments]";function Js(e){return Et(e)&&Me(e)==Xs}var Li=Js,Zi=Object.prototype,ec=Zi.hasOwnProperty,tc=Zi.propertyIsEnumerable,Hd=Li(function(){return arguments}())?Li:function(e){return Et(e)&&ec.call(e,"callee")&&!tc.call(e,"callee")};var Yi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Di=Yi&&typeof module=="object"&&module&&!module.nodeType&&module,ic=Di&&Di.exports===Yi,Ni=ic?z.Buffer:void 0,Qd=Ni?Ni.isBuffer:void 0;var rc="[object Arguments]",nc="[object Array]",ac="[object Boolean]",oc="[object Date]",lc="[object Error]",sc="[object Function]",cc="[object Map]",uc="[object Number]",dc="[object Object]",pc="[object RegExp]",gc="[object Set]",mc="[object String]",fc="[object WeakMap]",yc="[object ArrayBuffer]",bc="[object DataView]",hc="[object Float32Array]",vc="[object Float64Array]",wc="[object Int8Array]",kc="[object Int16Array]",Ic="[object Int32Array]",Ac="[object Uint8Array]",Sc="[object Uint8ClampedArray]",Cc="[object Uint16Array]",$c="[object Uint32Array]",x={};x[hc]=x[vc]=x[wc]=x[kc]=x[Ic]=x[Ac]=x[Sc]=x[Cc]=x[$c]=!0;x[rc]=x[nc]=x[yc]=x[ac]=x[bc]=x[oc]=x[lc]=x[sc]=x[cc]=x[uc]=x[dc]=x[pc]=x[gc]=x[mc]=x[fc]=!1;function xc(e){return Et(e)&&Ks(e.length)&&!!x[Me(e)]}var Ec=xc;function Mc(e){return function(t){return e(t)}}var Tc=Mc,Ki=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$e=Ki&&typeof module=="object"&&module&&!module.nodeType&&module,Pc=$e&&$e.exports===Ki,It=Pc&&Hi.process,jc=function(){try{var e=$e&&$e.require&&$e.require("util").types;return e||It&&It.binding&&It.binding("util")}catch{}}(),Oi=jc,Fi=Oi&&Oi.isTypedArray,Wd=Fi?Tc(Fi):Ec;var _c=Object.prototype,Zd=_c.hasOwnProperty;function Lc(e,t){return function(i){return e(t(i))}}var Dc=Lc,Yd=Dc(Object.keys,Object);var Nc=Object.prototype,Kd=Nc.hasOwnProperty;var Oc=se(Object,"create"),xe=Oc;function Fc(){this.__data__=xe?xe(null):{},this.size=0}var Rc=Fc;function zc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Uc=zc,Bc="__lodash_hash_undefined__",Vc=Object.prototype,Gc=Vc.hasOwnProperty;function qc(e){var t=this.__data__;if(xe){var i=t[e];return i===Bc?void 0:i}return Gc.call(t,e)?t[e]:void 0}var Hc=qc,Qc=Object.prototype,Wc=Qc.hasOwnProperty;function Zc(e){var t=this.__data__;return xe?t[e]!==void 0:Wc.call(t,e)}var Yc=Zc,Kc="__lodash_hash_undefined__";function Xc(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=xe&&t===void 0?Kc:t,this}var Jc=Xc;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=Rc;ce.prototype.delete=Uc;ce.prototype.get=Hc;ce.prototype.has=Yc;ce.prototype.set=Jc;var Ri=ce;function eu(){this.__data__=[],this.size=0}var tu=eu;function iu(e,t){for(var i=e.length;i--;)if(Ws(e[i][0],t))return i;return-1}var Fe=iu,ru=Array.prototype,nu=ru.splice;function au(e){var t=this.__data__,i=Fe(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():nu.call(t,i,1),--this.size,!0}var ou=au;function lu(e){var t=this.__data__,i=Fe(t,e);return i<0?void 0:t[i][1]}var su=lu;function cu(e){return Fe(this.__data__,e)>-1}var uu=cu;function du(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 pu=du;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=tu;ue.prototype.delete=ou;ue.prototype.get=su;ue.prototype.has=uu;ue.prototype.set=pu;var Re=ue,gu=se(z,"Map"),Ee=gu;function mu(){this.size=0,this.__data__={hash:new Ri,map:new(Ee||Re),string:new Ri}}var fu=mu;function yu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var bu=yu;function hu(e,t){var i=e.__data__;return bu(t)?i[typeof t=="string"?"string":"hash"]:i.map}var ze=hu;function vu(e){var t=ze(this,e).delete(e);return this.size-=t?1:0,t}var wu=vu;function ku(e){return ze(this,e).get(e)}var Iu=ku;function Au(e){return ze(this,e).has(e)}var Su=Au;function Cu(e,t){var i=ze(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var $u=Cu;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=fu;de.prototype.delete=wu;de.prototype.get=Iu;de.prototype.has=Su;de.prototype.set=$u;var Xi=de;function xu(){this.__data__=new Re,this.size=0}var Eu=xu;function Mu(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var Tu=Mu;function Pu(e){return this.__data__.get(e)}var ju=Pu;function _u(e){return this.__data__.has(e)}var Lu=_u,Du=200;function Nu(e,t){var i=this.__data__;if(i instanceof Re){var r=i.__data__;if(!Ee||r.length<Du-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Xi(r)}return i.set(e,t),this.size=i.size,this}var Ou=Nu;function Te(e){var t=this.__data__=new Re(e);this.size=t.size}Te.prototype.clear=Eu;Te.prototype.delete=Tu;Te.prototype.get=ju;Te.prototype.has=Lu;Te.prototype.set=Ou;var Fu=Object.prototype,Xd=Fu.propertyIsEnumerable;var Ru=se(z,"DataView"),St=Ru,zu=se(z,"Promise"),Ct=zu,Uu=se(z,"Set"),$t=Uu,zi="[object Map]",Bu="[object Object]",Ui="[object Promise]",Bi="[object Set]",Vi="[object WeakMap]",Gi="[object DataView]",Vu=X(St),Gu=X(Ee),qu=X(Ct),Hu=X($t),Qu=X(At),oe=Me;(St&&oe(new St(new ArrayBuffer(1)))!=Gi||Ee&&oe(new Ee)!=zi||Ct&&oe(Ct.resolve())!=Ui||$t&&oe(new $t)!=Bi||At&&oe(new At)!=Vi)&&(oe=function(e){var t=Me(e),i=t==Bu?e.constructor:void 0,r=i?X(i):"";if(r)switch(r){case Vu:return Gi;case Gu:return zi;case qu:return Ui;case Hu:return Bi;case Qu:return Vi}return t});var Jd=z.Uint8Array;var Wu="__lodash_hash_undefined__";function Zu(e){return this.__data__.set(e,Wu),this}var Yu=Zu;function Ku(e){return this.__data__.has(e)}var Xu=Ku;function xt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Xi;++t<i;)this.add(e[t])}xt.prototype.add=xt.prototype.push=Yu;xt.prototype.has=Xu;var qi=le?le.prototype:void 0,ep=qi?qi.valueOf:void 0;var Ju=Object.prototype,tp=Ju.hasOwnProperty;var ed=Object.prototype,ip=ed.hasOwnProperty;var rp=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),np=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ap=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function td(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 td(r,t)}function id(e){return e==null?[]:Array.isArray(e)?e:[e]}var Mt=id;function rd(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function nd(e){return typeof e?.translate=="function"}function Ji(e,t,i){return e&&rd(e)&&nd(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}`,er=`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 ad=({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...",[`${er}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${Be}.apply`]:"Change"}}),{id:G,type:"quick",kind:"image",label:`${er}`,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(),f=await L(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 i.Button(`${G}.button`,{label:Ve(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),tr=ad;var Qe="swapBackground",q=`ly.img.${Qe}`,ir=`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 od=({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...",[`${ir}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${qe}.apply`]:"Change"}}),{id:q,type:"quick",kind:"image",label:`${ir}`,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(),f=await L(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 i.Button(`${q}.button`,{label:He(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),rr=od;var We="styleTransfer",Pe=`ly.img.${We}`,ld=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,F=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function nr(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 sd=[{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."}],cd=({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:`${ld}`,enable:O(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Pe}.popover`,{label:nr(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:()=>{sd.forEach(u=>{i.Button(`${Pe}.popover.menu.${u.id}`,{label:nr(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=cd;var Ze="artistTransfer",je=`ly.img.${Ze}`,ud=`ly.img.plugin-ai-image-generation-web.quickAction.${Ze}`,_=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ze}`;function or(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 dd=[{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."}],pd=({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:`${ud}`,enable:O(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${je}.popover`,{label:or(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:()=>{dd.forEach(u=>{i.Button(`${je}.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({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"})}}})})}})}})}})}}),lr=pd;var Xe="createVariant",H=`ly.img.${Xe}`,sr=`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 gd=({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...",[`${sr}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ye}.apply`]:"Create"}}),{id:H,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${sr}`,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(),f=l.block.getType(g),m=l.block.duplicate(g);f==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let y=l.block.getParent(m);if(y==null)throw new Error("Parent not found");if(!(y!=null&&l.block.getType(y)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(y))&&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 k=await L(m,l,{throwErrorIfSvg:!0});await a({prompt:p,uri:k},{blockIds:[m]}),o(),s()}catch(p){console.error("Generation error:",p),e.ui.showNotification({type:"error",message:p.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else i.Button(`${H}.button`,{label:Ke(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),cr=gd;var et="combineImages",Q=`ly.img.${et}`,ur=`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 md=({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",[`${ur}.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:`${ur}`,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(),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),k=l.block.getHeight(m),I=.02*Math.min(v,k)*y;l.block.setPositionX(f,l.block.getPositionX(f)+I),l.block.setPositionY(f,l.block.getPositionY(f)+I);let S=await Promise.all(g.map(b=>L(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 i.Button(`${Q}.button`,{label:Je(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),dr=md;var tt="remixPage",pr=`ly.img.${tt}`,fd=`ly.img.plugin-ai-image-generation-web.quickAction.${tt}`,yd=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${tt}`;function bd(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 hd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),T(e,{en:{[`${yd}`]:"Turn Page into Image"}}),{id:pr,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${fd}`,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(`${pr}.button`,{label:bd(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[l]=n.block.findAllSelected(),u=await n.block.export(l),s=URL.createObjectURL(u),c=n.block.duplicate(l);n.block.getChildren(c).forEach(k=>{n.block.destroy(k)}),n.block.setSelected(l,!1);let d=n.block.getFrameWidth(l),p=n.block.getFrameHeight(l),g=n.block.getPositionX(l),f=n.block.getPositionY(l),m=n.block.createShape("rect"),y=n.block.create("graphic");n.block.setShape(y,m),n.block.appendChild(c,y),n.block.setWidth(y,d),n.block.setHeight(y,p),n.block.setPositionX(y,g),n.block.setPositionY(y,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 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"})}}})}}),gr=hd;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 vd=({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(),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),k=l.block.getFrameHeight(g),I=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,k),l.block.setPositionX(h,I),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 i.Button(`${W}.button`,{label:it(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),fr=vd;var Z="ly.img.ai.image-generation";function wd(e){return{async initialize({cesdk:t}){if(t==null)return;gi(t,V,"1.73.0-rc.3"),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(Ti,Pi),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:Ji(t,r,"Generate Image"),labelKey:r,meta:{panelId:Z},execute:()=>{t.ui.isPanelOpen(Z)?t.ui.closePanel(Z):t.ui.openPanel(Z)}});kd(e),i.register(tr({cesdk:t})),i.register(rr({cesdk:t})),i.register(ar({cesdk:t})),i.register(lr({cesdk:t})),i.register(cr({cesdk:t})),i.register(dr({cesdk:t})),i.register(gr({cesdk:t})),i.register(fr({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 $i("image",{fromText:l,fromImage:u},{cesdk:t},e),d=await Mi({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 kd(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 yr=wd;var Id=e=>({name:V,version:"1.73.0-rc.3",...yr(e)}),eg=Id;export{Ue as DEFAULT_IMAGE_QUICK_ACTION_ORDER,eg as default};
81
81
  /*! Bundled license information:
82
82
 
83
83
  lodash-es/lodash.js: