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