@imgly/plugin-ai-image-generation-web 0.2.6 → 0.2.8
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 +29 -0
- package/README.md +315 -3
- package/dist/.tsbuildinfo +1 -0
- package/dist/fal-ai/QwenImageEdit.d.ts +21 -0
- package/dist/fal-ai/Recraft20b.d.ts +5 -14
- package/dist/fal-ai/RecraftV3.d.ts +4 -12
- package/dist/fal-ai/SeedreamV4.constants.d.ts +4 -0
- package/dist/fal-ai/SeedreamV4.d.ts +23 -0
- package/dist/fal-ai/SeedreamV4Edit.d.ts +22 -0
- package/dist/fal-ai/index.d.ts +6 -0
- package/dist/fal-ai/index.mjs +20 -43
- package/dist/fal-ai/index.mjs.map +4 -4
- package/dist/fal-ai/recraftTypes.d.ts +59 -0
- package/dist/fal-ai/recraftUtils.d.ts +29 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.mjs +19 -42
- package/dist/index.mjs.map +4 -4
- package/dist/open-ai/index.mjs +15 -38
- package/dist/open-ai/index.mjs.map +4 -4
- package/package.json +7 -17
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var nr=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;W(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=()=>{W(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 W(e,r=>{i.add(r)}),await Promise.all([...i].map(async r=>{let n=await this.createBlobUrlFromStore(r);t[r]=n})),W(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 W(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]=W(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]=W(n,t,a)}return e}var or=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")}},ar=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)}},Bt=ar,lr=typeof global=="object"&&global&&global.Object===Object&&global,Vt=lr,sr=typeof self=="object"&&self&&self.Object===Object&&self,cr=Vt||sr||Function("return this")(),L=cr,ur=L.Symbol,X=ur,qt=Object.prototype,dr=qt.hasOwnProperty,pr=qt.toString,se=X?X.toStringTag:void 0;function gr(e){var t=dr.call(e,se),i=e[se];try{e[se]=void 0;var r=!0}catch{}var n=pr.call(e);return r&&(t?e[se]=i:delete e[se]),n}var mr=gr,fr=Object.prototype,br=fr.toString;function yr(e){return br.call(e)}var hr=yr,vr="[object Null]",kr="[object Undefined]",Ct=X?X.toStringTag:void 0;function wr(e){return e==null?e===void 0?kr:vr:Ct&&Ct in Object(e)?mr(e):hr(e)}var fe=wr;function Ir(e){return e!=null&&typeof e=="object"}var ct=Ir,dd=Array.isArray;function Ar(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Gt=Ar,Cr="[object AsyncFunction]",Sr="[object Function]",$r="[object GeneratorFunction]",xr="[object Proxy]";function Er(e){if(!Gt(e))return!1;var t=fe(e);return t==Sr||t==$r||t==Cr||t==xr}var Mr=Er,Pr=L["__core-js_shared__"],Xe=Pr,St=function(){var e=/[^.]+$/.exec(Xe&&Xe.keys&&Xe.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Tr(e){return!!St&&St in e}var jr=Tr,_r=Function.prototype,Lr=_r.toString;function Dr(e){if(e!=null){try{return Lr.call(e)}catch{}try{return e+""}catch{}}return""}var G=Dr,Nr=/[\\^$.*+?()[\]{}|]/g,Or=/^\[object .+?Constructor\]$/,Fr=Function.prototype,Rr=Object.prototype,zr=Fr.toString,Ur=Rr.hasOwnProperty,Br=RegExp("^"+zr.call(Ur).replace(Nr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Vr(e){if(!Gt(e)||jr(e))return!1;var t=Mr(e)?Br:Or;return t.test(G(e))}var qr=Vr;function Gr(e,t){return e?.[t]}var Hr=Gr;function Qr(e,t){var i=Hr(e,t);return qr(i)?i:void 0}var K=Qr,Zr=K(L,"WeakMap"),it=Zr;function Yr(e,t){return e===t||e!==e&&t!==t}var Wr=Yr,Xr=9007199254740991;function Kr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Xr}var Jr=Kr,pd=Object.prototype,en="[object Arguments]";function tn(e){return ct(e)&&fe(e)==en}var $t=tn,Ht=Object.prototype,rn=Ht.hasOwnProperty,nn=Ht.propertyIsEnumerable,gd=$t(function(){return arguments}())?$t:function(e){return ct(e)&&rn.call(e,"callee")&&!nn.call(e,"callee")},Qt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xt=Qt&&typeof module=="object"&&module&&!module.nodeType&&module,on=xt&&xt.exports===Qt,Et=on?L.Buffer:void 0,md=Et?Et.isBuffer:void 0,an="[object Arguments]",ln="[object Array]",sn="[object Boolean]",cn="[object Date]",un="[object Error]",dn="[object Function]",pn="[object Map]",gn="[object Number]",mn="[object Object]",fn="[object RegExp]",bn="[object Set]",yn="[object String]",hn="[object WeakMap]",vn="[object ArrayBuffer]",kn="[object DataView]",wn="[object Float32Array]",In="[object Float64Array]",An="[object Int8Array]",Cn="[object Int16Array]",Sn="[object Int32Array]",$n="[object Uint8Array]",xn="[object Uint8ClampedArray]",En="[object Uint16Array]",Mn="[object Uint32Array]",S={};S[wn]=S[In]=S[An]=S[Cn]=S[Sn]=S[$n]=S[xn]=S[En]=S[Mn]=!0;S[an]=S[ln]=S[vn]=S[sn]=S[kn]=S[cn]=S[un]=S[dn]=S[pn]=S[gn]=S[mn]=S[fn]=S[bn]=S[yn]=S[hn]=!1;function Pn(e){return ct(e)&&Jr(e.length)&&!!S[fe(e)]}var Tn=Pn;function jn(e){return function(t){return e(t)}}var _n=jn,Zt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pe=Zt&&typeof module=="object"&&module&&!module.nodeType&&module,Ln=pe&&pe.exports===Zt,Ke=Ln&&Vt.process,Dn=function(){try{var e=pe&&pe.require&&pe.require("util").types;return e||Ke&&Ke.binding&&Ke.binding("util")}catch{}}(),Mt=Dn,Pt=Mt&&Mt.isTypedArray,fd=Pt?_n(Pt):Tn,Nn=Object.prototype,bd=Nn.hasOwnProperty;function On(e,t){return function(i){return e(t(i))}}var Fn=On,yd=Fn(Object.keys,Object),Rn=Object.prototype,hd=Rn.hasOwnProperty,zn=K(Object,"create"),ge=zn;function Un(){this.__data__=ge?ge(null):{},this.size=0}var Bn=Un;function Vn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qn=Vn,Gn="__lodash_hash_undefined__",Hn=Object.prototype,Qn=Hn.hasOwnProperty;function Zn(e){var t=this.__data__;if(ge){var i=t[e];return i===Gn?void 0:i}return Qn.call(t,e)?t[e]:void 0}var Yn=Zn,Wn=Object.prototype,Xn=Wn.hasOwnProperty;function Kn(e){var t=this.__data__;return ge?t[e]!==void 0:Xn.call(t,e)}var Jn=Kn,eo="__lodash_hash_undefined__";function to(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=ge&&t===void 0?eo:t,this}var io=to;function J(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])}}J.prototype.clear=Bn;J.prototype.delete=qn;J.prototype.get=Yn;J.prototype.has=Jn;J.prototype.set=io;var Tt=J;function ro(){this.__data__=[],this.size=0}var no=ro;function oo(e,t){for(var i=e.length;i--;)if(Wr(e[i][0],t))return i;return-1}var $e=oo,ao=Array.prototype,lo=ao.splice;function so(e){var t=this.__data__,i=$e(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():lo.call(t,i,1),--this.size,!0}var co=so;function uo(e){var t=this.__data__,i=$e(t,e);return i<0?void 0:t[i][1]}var po=uo;function go(e){return $e(this.__data__,e)>-1}var mo=go;function fo(e,t){var i=this.__data__,r=$e(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var bo=fo;function ee(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])}}ee.prototype.clear=no;ee.prototype.delete=co;ee.prototype.get=po;ee.prototype.has=mo;ee.prototype.set=bo;var xe=ee,yo=K(L,"Map"),me=yo;function ho(){this.size=0,this.__data__={hash:new Tt,map:new(me||xe),string:new Tt}}var vo=ho;function ko(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wo=ko;function Io(e,t){var i=e.__data__;return wo(t)?i[typeof t=="string"?"string":"hash"]:i.map}var Ee=Io;function Ao(e){var t=Ee(this,e).delete(e);return this.size-=t?1:0,t}var Co=Ao;function So(e){return Ee(this,e).get(e)}var $o=So;function xo(e){return Ee(this,e).has(e)}var Eo=xo;function Mo(e,t){var i=Ee(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Po=Mo;function te(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])}}te.prototype.clear=vo;te.prototype.delete=Co;te.prototype.get=$o;te.prototype.has=Eo;te.prototype.set=Po;var Yt=te;function To(){this.__data__=new xe,this.size=0}var jo=To;function _o(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var Lo=_o;function Do(e){return this.__data__.get(e)}var No=Do;function Oo(e){return this.__data__.has(e)}var Fo=Oo,Ro=200;function zo(e,t){var i=this.__data__;if(i instanceof xe){var r=i.__data__;if(!me||r.length<Ro-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Yt(r)}return i.set(e,t),this.size=i.size,this}var Uo=zo;function be(e){var t=this.__data__=new xe(e);this.size=t.size}be.prototype.clear=jo;be.prototype.delete=Lo;be.prototype.get=No;be.prototype.has=Fo;be.prototype.set=Uo;var Bo=Object.prototype,vd=Bo.propertyIsEnumerable,Vo=K(L,"DataView"),rt=Vo,qo=K(L,"Promise"),nt=qo,Go=K(L,"Set"),ot=Go,jt="[object Map]",Ho="[object Object]",_t="[object Promise]",Lt="[object Set]",Dt="[object WeakMap]",Nt="[object DataView]",Qo=G(rt),Zo=G(me),Yo=G(nt),Wo=G(ot),Xo=G(it),Y=fe;(rt&&Y(new rt(new ArrayBuffer(1)))!=Nt||me&&Y(new me)!=jt||nt&&Y(nt.resolve())!=_t||ot&&Y(new ot)!=Lt||it&&Y(new it)!=Dt)&&(Y=function(e){var t=fe(e),i=t==Ho?e.constructor:void 0,r=i?G(i):"";if(r)switch(r){case Qo:return Nt;case Zo:return jt;case Yo:return _t;case Wo:return Lt;case Xo:return Dt}return t});var kd=L.Uint8Array,Ko="__lodash_hash_undefined__";function Jo(e){return this.__data__.set(e,Ko),this}var ea=Jo;function ta(e){return this.__data__.has(e)}var ia=ta;function at(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Yt;++t<i;)this.add(e[t])}at.prototype.add=at.prototype.push=ea;at.prototype.has=ia;var Ot=X?X.prototype:void 0,wd=Ot?Ot.valueOf:void 0,ra=Object.prototype,Id=ra.hasOwnProperty,na=Object.prototype,Ad=na.hasOwnProperty,Cd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Sd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),$d=new RegExp(/[A-Fa-f0-9]{2}/,"g");function oa(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function Wt(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 lt(e,t){let i=await Wt(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 aa(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 Wt(r,t)}function la(e){return e!==void 0}var Me=la;var Pe=class Xt{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 Xt),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))}},Kt=class Jt{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new Jt),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 sa(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,b)=>l(s+1,m,b),f={...d,addDisposer:o};return p(c,f,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 ca({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 ua=ca;var Je="ly.img.ai.temp";async function da(e,t){return e.engine.asset.findAllSources().includes(Je)||e.engine.asset.addLocalSource(Je),e.engine.asset.apply(Je,t)}function pa(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 ei(){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 ga(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 ma(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 ut(e){return e instanceof Error&&e.name==="AbortError"}function fa(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function ti(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 ur=class{constructor(e,t,i){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=i?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=i?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let i=indexedDB.open(this.dbName,this.dbVersion);i.onerror=r=>{t(new Error(`Failed to open IndexedDB: ${r.target.error}`))},i.onupgradeneeded=r=>{let n=r.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},i.onsuccess=r=>{this.db=r.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((u,s)=>{let c=e.locale??"en",d="",p=[];s.label!=null&&typeof s.label=="object"&&s.label[c]&&(d=s.label[c]),s.tags!=null&&typeof s.tags=="object"&&s.tags[c]&&(p=s.tags[c]);let g={...s,label:d,tags:p};return this.filterAsset(g,e)&&u.push(g),u},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:i,perPage:r}=e,n=i*r,o=n+r,a=t.slice(n,o),l=o<t.length?i+1:void 0;return{assets:a,currentPage:i,nextPage:l,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let r=new Set;i.result.forEach(o=>{o.groups&&Array.isArray(o.groups)&&o.groups.forEach(a=>r.add(a))});let n=[...r];e(n)},i.onerror=()=>{t(new Error(`Failed to get groups: ${i.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),i=t.objectStore(this.assetStoreName),r=new Set;J(e,o=>{r.add(o)}),setTimeout(()=>{this.storeBlobUrls([...r])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};i.put(n),t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.assetStoreName,"readwrite");i.objectStore(this.assetStoreName).delete(e),i.oncomplete=()=>{J(t,r=>{this.removeBlob(r)}),this.engine.asset.assetSourceContentsChanged(this.id)},i.onerror=()=>{console.error(`Failed to remove asset: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let n=r.result;n.sort((o,a)=>{let l=o.meta?.insertedAt||o._insertedAt||Date.now(),u=a.meta?.insertedAt||a._insertedAt||Date.now();return e==="asc"?l-u:u-l}),t(n)},r.onerror=()=>{i(new Error(`Failed to get assets: ${r.error}`))}})}async getAsset(e){return new Promise((t,i)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.error}`))}})}async getBlob(e){return new Promise((t,i)=>{let r=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);r.onsuccess=()=>{t(r.result)},r.onerror=()=>{i(new Error(`Failed to get blob: ${r.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async i=>{let r=await(await fetch(i)).blob();t[i]=r})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let i=this.db.transaction(this.blobStoreName,"readwrite"),r=i.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,o])=>{let a={id:n,blob:o};r.put(a)}),i.onerror=()=>{console.error(`Failed to add blobs: ${i.error}`)}}).catch(i=>{console.error("Error initializing database:",i)})}async restoreBlobUrls(e){let t={},i=new Set;return J(e,r=>{i.add(r)}),await Promise.all([...i].map(async r=>{let n=await this.createBlobUrlFromStore(r);t[r]=n})),J(e,r=>t[r]??r)}filterAsset(e,t){let{query:i,tags:r,groups:n,excludeGroups:o}=t;if(i&&i.trim()!==""){let a=i.trim().toLowerCase().split(" "),l=e.label?.toLowerCase()??"",u=e.tags?.map(s=>s.toLowerCase())??[];if(!a.every(s=>l.includes(s)||u.some(c=>c.includes(s))))return!1}if(r){let a=Array.isArray(r)?r:[r];if(a.length>0&&(!e.tags||!a.every(l=>e.tags?.includes(l))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(a=>e.groups?.includes(a)))||o&&o.length>0&&e.groups&&e.groups.some(a=>o.includes(a)))}sortAssets(e,t){let{sortingOrder:i,sortKey:r,sortActiveFirst:n}=t,o=[...e];return!i||i==="None"||(r?o.sort((a,l)=>{let u,s;return r==="id"?(u=a.id,s=l.id):(u=a.meta?.[r]??null,s=l.meta?.[r]??null),u==null?i==="Ascending"?-1:1:s==null?i==="Ascending"?1:-1:typeof u=="string"&&typeof s=="string"?i==="Ascending"?u.localeCompare(s):s.localeCompare(u):i==="Ascending"?u<s?-1:u>s?1:0:u>s?-1:u<s?1:0}):i==="Descending"&&o.reverse(),n&&o.sort((a,l)=>a.active&&!l.active?-1:!a.active&&l.active?1:0)),o}};function J(e,t,i=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let r=0;r<e.length;r++){let n=i?`${i}[${r}]`:`[${r}]`;if(typeof e[r]=="string"&&e[r].startsWith("blob:")){let o=t(e[r],n);typeof o=="string"&&(e[r]=o)}else e[r]=J(e[r],t,n)}return e}for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let n=e[r],o=i?`${i}.${r}`:r;if(typeof n=="string"&&n.startsWith("blob:")){let a=t(n,o);typeof a=="string"&&(e[r]=a)}else e[r]=J(n,t,o)}return e}var dr=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")}},pr=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Zt=pr,gr=typeof global=="object"&&global&&global.Object===Object&&global,Yt=gr,mr=typeof self=="object"&&self&&self.Object===Object&&self,fr=Yt||mr||Function("return this")(),D=fr,br=D.Symbol,ee=br,Wt=Object.prototype,hr=Wt.hasOwnProperty,yr=Wt.toString,de=ee?ee.toStringTag:void 0;function vr(e){var t=hr.call(e,de),i=e[de];try{e[de]=void 0;var r=!0}catch{}var n=yr.call(e);return r&&(t?e[de]=i:delete e[de]),n}var kr=vr,wr=Object.prototype,Ir=wr.toString;function Ar(e){return Ir.call(e)}var Cr=Ar,Sr="[object Null]",$r="[object Undefined]",Pt=ee?ee.toStringTag:void 0;function xr(e){return e==null?e===void 0?$r:Sr:Pt&&Pt in Object(e)?kr(e):Cr(e)}var ye=xr;function Er(e){return e!=null&&typeof e=="object"}var ft=Er,hd=Array.isArray;function Mr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xt=Mr,Pr="[object AsyncFunction]",Tr="[object Function]",jr="[object GeneratorFunction]",_r="[object Proxy]";function Lr(e){if(!Xt(e))return!1;var t=ye(e);return t==Tr||t==jr||t==Pr||t==_r}var Dr=Lr,Nr=D["__core-js_shared__"],rt=Nr,Tt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Or(e){return!!Tt&&Tt in e}var Fr=Or,Rr=Function.prototype,zr=Rr.toString;function Ur(e){if(e!=null){try{return zr.call(e)}catch{}try{return e+""}catch{}}return""}var Y=Ur,Br=/[\\^$.*+?()[\]{}|]/g,Vr=/^\[object .+?Constructor\]$/,qr=Function.prototype,Gr=Object.prototype,Hr=qr.toString,Qr=Gr.hasOwnProperty,Zr=RegExp("^"+Hr.call(Qr).replace(Br,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yr(e){if(!Xt(e)||Fr(e))return!1;var t=Dr(e)?Zr:Vr;return t.test(Y(e))}var Wr=Yr;function Xr(e,t){return e?.[t]}var Kr=Xr;function Jr(e,t){var i=Kr(e,t);return Wr(i)?i:void 0}var te=Jr,en=te(D,"WeakMap"),st=en;function tn(e,t){return e===t||e!==e&&t!==t}var rn=tn,nn=9007199254740991;function on(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=nn}var an=on,yd=Object.prototype,ln="[object Arguments]";function sn(e){return ft(e)&&ye(e)==ln}var jt=sn,Kt=Object.prototype,cn=Kt.hasOwnProperty,un=Kt.propertyIsEnumerable,vd=jt(function(){return arguments}())?jt:function(e){return ft(e)&&cn.call(e,"callee")&&!un.call(e,"callee")},Jt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_t=Jt&&typeof module=="object"&&module&&!module.nodeType&&module,dn=_t&&_t.exports===Jt,Lt=dn?D.Buffer:void 0,kd=Lt?Lt.isBuffer:void 0,pn="[object Arguments]",gn="[object Array]",mn="[object Boolean]",fn="[object Date]",bn="[object Error]",hn="[object Function]",yn="[object Map]",vn="[object Number]",kn="[object Object]",wn="[object RegExp]",In="[object Set]",An="[object String]",Cn="[object WeakMap]",Sn="[object ArrayBuffer]",$n="[object DataView]",xn="[object Float32Array]",En="[object Float64Array]",Mn="[object Int8Array]",Pn="[object Int16Array]",Tn="[object Int32Array]",jn="[object Uint8Array]",_n="[object Uint8ClampedArray]",Ln="[object Uint16Array]",Dn="[object Uint32Array]",E={};E[xn]=E[En]=E[Mn]=E[Pn]=E[Tn]=E[jn]=E[_n]=E[Ln]=E[Dn]=!0;E[pn]=E[gn]=E[Sn]=E[mn]=E[$n]=E[fn]=E[bn]=E[hn]=E[yn]=E[vn]=E[kn]=E[wn]=E[In]=E[An]=E[Cn]=!1;function Nn(e){return ft(e)&&an(e.length)&&!!E[ye(e)]}var On=Nn;function Fn(e){return function(t){return e(t)}}var Rn=Fn,ei=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fe=ei&&typeof module=="object"&&module&&!module.nodeType&&module,zn=fe&&fe.exports===ei,nt=zn&&Yt.process,Un=function(){try{var e=fe&&fe.require&&fe.require("util").types;return e||nt&&nt.binding&&nt.binding("util")}catch{}}(),Dt=Un,Nt=Dt&&Dt.isTypedArray,wd=Nt?Rn(Nt):On,Bn=Object.prototype,Id=Bn.hasOwnProperty;function Vn(e,t){return function(i){return e(t(i))}}var qn=Vn,Ad=qn(Object.keys,Object),Gn=Object.prototype,Cd=Gn.hasOwnProperty,Hn=te(Object,"create"),be=Hn;function Qn(){this.__data__=be?be(null):{},this.size=0}var Zn=Qn;function Yn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Wn=Yn,Xn="__lodash_hash_undefined__",Kn=Object.prototype,Jn=Kn.hasOwnProperty;function eo(e){var t=this.__data__;if(be){var i=t[e];return i===Xn?void 0:i}return Jn.call(t,e)?t[e]:void 0}var to=eo,io=Object.prototype,ro=io.hasOwnProperty;function no(e){var t=this.__data__;return be?t[e]!==void 0:ro.call(t,e)}var oo=no,ao="__lodash_hash_undefined__";function lo(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=be&&t===void 0?ao:t,this}var so=lo;function ie(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ie.prototype.clear=Zn;ie.prototype.delete=Wn;ie.prototype.get=to;ie.prototype.has=oo;ie.prototype.set=so;var Ot=ie;function co(){this.__data__=[],this.size=0}var uo=co;function po(e,t){for(var i=e.length;i--;)if(rn(e[i][0],t))return i;return-1}var Te=po,go=Array.prototype,mo=go.splice;function fo(e){var t=this.__data__,i=Te(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():mo.call(t,i,1),--this.size,!0}var bo=fo;function ho(e){var t=this.__data__,i=Te(t,e);return i<0?void 0:t[i][1]}var yo=ho;function vo(e){return Te(this.__data__,e)>-1}var ko=vo;function wo(e,t){var i=this.__data__,r=Te(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var Io=wo;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=uo;re.prototype.delete=bo;re.prototype.get=yo;re.prototype.has=ko;re.prototype.set=Io;var je=re,Ao=te(D,"Map"),he=Ao;function Co(){this.size=0,this.__data__={hash:new Ot,map:new(he||je),string:new Ot}}var So=Co;function $o(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xo=$o;function Eo(e,t){var i=e.__data__;return xo(t)?i[typeof t=="string"?"string":"hash"]:i.map}var _e=Eo;function Mo(e){var t=_e(this,e).delete(e);return this.size-=t?1:0,t}var Po=Mo;function To(e){return _e(this,e).get(e)}var jo=To;function _o(e){return _e(this,e).has(e)}var Lo=_o;function Do(e,t){var i=_e(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var No=Do;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=So;ne.prototype.delete=Po;ne.prototype.get=jo;ne.prototype.has=Lo;ne.prototype.set=No;var ti=ne;function Oo(){this.__data__=new je,this.size=0}var Fo=Oo;function Ro(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var zo=Ro;function Uo(e){return this.__data__.get(e)}var Bo=Uo;function Vo(e){return this.__data__.has(e)}var qo=Vo,Go=200;function Ho(e,t){var i=this.__data__;if(i instanceof je){var r=i.__data__;if(!he||r.length<Go-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new ti(r)}return i.set(e,t),this.size=i.size,this}var Qo=Ho;function ve(e){var t=this.__data__=new je(e);this.size=t.size}ve.prototype.clear=Fo;ve.prototype.delete=zo;ve.prototype.get=Bo;ve.prototype.has=qo;ve.prototype.set=Qo;var Zo=Object.prototype,Sd=Zo.propertyIsEnumerable,Yo=te(D,"DataView"),ct=Yo,Wo=te(D,"Promise"),ut=Wo,Xo=te(D,"Set"),dt=Xo,Ft="[object Map]",Ko="[object Object]",Rt="[object Promise]",zt="[object Set]",Ut="[object WeakMap]",Bt="[object DataView]",Jo=Y(ct),ea=Y(he),ta=Y(ut),ia=Y(dt),ra=Y(st),K=ye;(ct&&K(new ct(new ArrayBuffer(1)))!=Bt||he&&K(new he)!=Ft||ut&&K(ut.resolve())!=Rt||dt&&K(new dt)!=zt||st&&K(new st)!=Ut)&&(K=function(e){var t=ye(e),i=t==Ko?e.constructor:void 0,r=i?Y(i):"";if(r)switch(r){case Jo:return Bt;case ea:return Ft;case ta:return Rt;case ia:return zt;case ra:return Ut}return t});var $d=D.Uint8Array,na="__lodash_hash_undefined__";function oa(e){return this.__data__.set(e,na),this}var aa=oa;function la(e){return this.__data__.has(e)}var sa=la;function pt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new ti;++t<i;)this.add(e[t])}pt.prototype.add=pt.prototype.push=aa;pt.prototype.has=sa;var Vt=ee?ee.prototype:void 0,xd=Vt?Vt.valueOf:void 0,ca=Object.prototype,Ed=ca.hasOwnProperty,ua=Object.prototype,Md=ua.hasOwnProperty,Pd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Td=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jd=new RegExp(/[A-Fa-f0-9]{2}/,"g");function da(e){return{"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif","image/svg+xml":"svg"}[e]??"png"}async function ii(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),o=new Uint8Array(n),a=new Blob([o],{type:i});return URL.createObjectURL(a)}else return e}async function gt(e,t){let i=await ii(e,t);return new Promise((r,n)=>{let o=new Image;o.onload=()=>{r({width:o.width,height:o.height})},o.onerror=n,o.src=i})}async function pa(e,t,i){let r,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=a.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return ii(r,t)}function ga(e){return e!==void 0}var Le=ga;function ke(e,t){let i=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:i}}function we(e,t,i,r,n){if(t?.default!==void 0){let o=t.default;return typeof o!="function"?o:o(i)}return r!==void 0?r:n}var De=class ri{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new ri),i[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(i=>this.matchesFilters(i,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,i){return this.subscribers.set(i,t),()=>{this.subscribers.delete(i)}}notifySubscribers(t,i){this.subscribers.forEach((r,n)=>{if(r===null){n(t,i);return}this.matchesFilters(t,r)&&n(t,i)})}matchesFilters(t,i){return!(i.type&&t.type!==i.type||i.pluginId&&t.type==="plugin"&&t.pluginId!==i.pluginId||i.id&&t.id!==i.id||i.kind&&(t.type!=="quick"||t.kind!==i.kind))}},ni=class 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 ma(e){let t=e.filter(i=>!!i);return i=>async(r,n)=>{let o=[],a=s=>{o.push(s)},l=async(s,c,d)=>{if(s>=t.length)return i(c,d);let p=t[s],g=async(m,b)=>l(s+1,m,b),h={...d,addDisposer:a};return p(c,h,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 fa({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 ba=fa;var ot="ly.img.ai.temp";async function ha(e,t){return e.engine.asset.findAllSources().includes(ot)||e.engine.asset.addLocalSource(ot),e.engine.asset.apply(ot,t)}function ya(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 ai(){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 va(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 ka(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function bt(e){return e instanceof Error&&e.name==="AbortError"}function wa(e,t,i){let r=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(r)||(e.ui.addIconSet(t,i),e.ui.experimental.setGlobalStateValue(r,!0))}function li(e,t,i){let r="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let o=e.ui.experimental.getGlobalStateValue(r);o?o!==i&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
|
|
2
|
+
Plugin "${t}" is using version ${i}, but other AI plugins are using version ${o}.
|
|
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 ba(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 ii=ba;function ya(){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 j=ya;function ha(e,t){let{cesdk:i,provider:r,getInput:n}=t;console.error("Generation failed:",e),va(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:pa(e)})}function va(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 Ft=ha,ka="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",dt=ka;function wa(e,t,i){switch(t){case"image":return Ia(e,i[t]);case"video":return Aa(e,i[t]);case"sticker":return Ca(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Ia(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:dt,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:r}}}function Aa(e,t){let i=t.width,r=t.height;return{id:e,label:t.label,meta:{previewUri:dt,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:r}}}function Ca(e,t){let i=t.width,r=t.height;return{id:e,meta:{previewUri:dt,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:r}}}var Sa=wa;async function $a(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 xa(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 Ea(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 Ma(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 Pa(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function xa(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 Ea(e,t,i){let r=t.width,n=t.height,a=await ga(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 Ma(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 Pa(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 ri=$a;function Ta(e){switch(e.userFlow){case"placeholder":return _a(e);case"generation-only":return ja(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function ja(e){let{cesdk:t,abortSignal:i}=e;return async r=>{try{let n=e.kind,a=await e.getBlockInput(r);if(N(t,i))return{status:"aborted"};let o=await e.generate(r,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(N(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(N(t,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let l=ei(),u=await ri(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 _a(e){let{cesdk:t,abortSignal:i}=e,r;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(N(t,i))return{status:"aborted"};let l=ei(),u=Sa(l,a,o);if(r=await da(t,u),N(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,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(N(t,i,r))return{status:"aborted"};if(s.status!=="success")return 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 ri(l,a,o,s.output);if(N(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),N(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)&&(ut(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 N(e,t,i){return t.aborted?(i!=null&&e.engine.block.isValid(i)&&e.engine.block.destroy(i),!0):!1}var La=Ta;function pt(e){return`${e}.generating`}function Da(e){return`${e}.abort`}function Na(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(Da(d),()=>{}),f=u.global(pt(d),!1),m,b=f.value&&p,k=()=>{b&&(g.value(),f.setValue(!1),g.setValue(()=>{}))},C;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let E=r();C=a.requiredInputs.every(y=>!E.input[y])}let A=u.global(`${d}.confirmationDialogId`,void 0);l.Section(`${d}.generate.section`,{children:()=>{l.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:f.value,color:"accent",isDisabled:C,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let E=s.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:y})=>{s.ui.closeDialog(y),A.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:y})=>{k(),s.ui.closeDialog(y),A.setValue(void 0)}}});A.setValue(E)}}:void 0,onClick:async()=>{m=new AbortController;let E=m.signal;await(async()=>{try{f.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),m?.abort()});let y=await La({kind:t.kind,generate:i,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:E,cesdk:s,debug:o.debug,dryRun:o.dryRun})(r().input);if(y.status==="aborted")return;if(y.status==="error"){Ft(y.message,{cesdk:s,provider:t,getInput:r});return}if(y.status==="success"&&y.type==="sync"){let v=t.output.notification;Oa(s,v,()=>({input:r().input,output:y.output}))}}catch(y){if(ut(y))return;Ft(y,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,f.setValue(!1),g.setValue(()=>{}),A.value!=null&&(s.ui.closeDialog(A.value),A.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 Oa(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 ni=Na;async function Fa({options:e,provider:t,panelInput:i,config:r},n){if(i==null)return;let{cesdk:a}=e,{id:o}=t,l=i.render;return u=>{let{state:s}=u,c=s(pt(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=l(u,{cesdk:a,isGenerating:c});return ni(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Ra=Fa;function oi(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 ue(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=oi(e,t.$ref),n={...ue(e,r,i)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=ue(e,t[a],i));return n}if(Array.isArray(t))return t.map(r=>ue(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=ue(e,t[n],i));return r}return t}function za(e){return ue(e,{...e})}function Ua(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 Ba(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return Va(e,t).forEach(n=>{let a=n,o=i[n]??void 0;r.push({id:a,schema:o})}),r}function Va(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=qa(e,t)??n;return i!=null&&typeof i=="function"&&(a=i(a)),[...new Set(a)]}function qa(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 ai=Ba;function q(e,t,i,r){let n=`property.${e.id}${r?`.${r}`:""}`;return[`ly.img.plugin-ai-${i}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function li(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 si(e,t,i,r,n,a,o){if(t.schema==null)return r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null?r.renderCustomProperty[t.id](e,t):void 0;let l=t,u=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null)return r.renderCustomProperty[t.id](e,t);switch(u){case"string":return t.schema.enum!=null?Ga(e,l,i,r,n,a,o):ci(e,l,i,r,n,a,o);case"boolean":return ui(e,l,i,r,n,a,o);case"number":case"integer":return di(e,l,i,r,n,a,o);case"object":return st(e,l,i,r,n,a,o);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Ha(e,l,i,r,n,a,o);break}default:console.error(`Unsupported property type: ${u}`)}}function st(e,t,i,r,n,a,o){let l=ai(t.schema??{},r).reduce((u,s)=>{let c=si(e,s,i,r,n,a,o);return c!=null&&(u[s.id]=c()),u},{});return()=>({id:t.id,type:"object",value:l})}function ci(e,t,i,r,n,a,o){let{builder:l,experimental:{global:u}}=e,{id:s}=t,c=`${i.id}.${s}`,d=q(t,i,o),p=u(c,t.schema.default??""),g=Qa(t.schema),f=g?.component!=null&&g?.component==="TextArea"?"TextArea":"TextInput";return l[f](c,{inputLabel:d,placeholder:n.i18n?.prompt,...p}),()=>({id:t.id,type:"string",value:p.value})}function Ga(e,t,i,r,n,a,o){let{builder:l,experimental:{global:u}}=e,{id:s}=t,c=`${i.id}.${s}`,d=q(t,i,o),{labels:p,icons:g}=li(t.schema),f=(t.schema.enum??[]).map(k=>({id:k,label:q(t,i,o,k),icon:g[k]})),m=t.schema.default!=null?f.find(k=>k.id===t.schema.default)??f[0]:f[0],b=u(c,m);return l.Select(c,{inputLabel:d,values:f,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function ui(e,t,i,r,n,a,o){let{builder:l,experimental:{global:u}}=e,{id:s}=t,c=`${i.id}.${s}`,d=q(t,i,o),p=!!t.schema.default,g=u(c,p);return l.Checkbox(c,{inputLabel:d,...g}),()=>({id:t.id,type:"boolean",value:g.value})}function di(e,t,i,r,n,a,o){let{builder:l,experimental:{global:u}}=e,{id:s}=t,c=`${i.id}.${s}`,d=q(t,i,o),p=t.schema.minimum,g=t.schema.maximum,f=t.schema.default;f==null&&(p!=null?f=p:g!=null?f=g:f=0);let m=u(c,f);if(p!=null&&g!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),l.Slider(c,{inputLabel:d,min:p,max:g,step:b,...m})}else l.NumberInput(c,{inputLabel:d,min:p,max:g,...m});return()=>({id:t.id,type:"integer",value:m.value})}function Ha(e,t,i,r,n,a,o){let{builder:l,experimental:{global:u}}=e,{id:s}=t,c=`${i.id}.${s}`,d=q(t,i,o),p=t.schema.anyOf??[],g=[],f={},m={},{labels:b,icons:k}=li(t.schema),C={string:ci,boolean:ui,integer:di,object:st},A=(h,w)=>h.$ref?h.$ref.split("/").pop():w.split(".").pop()??w,E=(h,w)=>({id:h,label:q(t,i,o,w),icon:k[w]??k[h]});p.forEach((h,w)=>{let x=`${i.id}.${s}.anyOf[${w}]`;if(h.$ref||h.title){let I=h.$ref?h.$ref.split("/").pop():h.title;f[x]=()=>st(e,{id:x,schema:{...h,title:b[I]||I}},i,r,n,a,o),g.push(E(x,I))}else if(h.type==="string"&&h.enum)h.enum.forEach(I=>{g.push(E(I,I))});else if(h.type&&C[h.type]){let I=C[h.type];f[x]=()=>I(e,{id:x,schema:{...h,title:h.title}},i,r,n,a,o);let M=A(h,x);g.push(h.type==="string"&&!h.enum?{id:x,label:h.title||M,icon:h.title&&k[h.title]||k[M]}:E(x,M))}});let y=t.schema.default!=null?g.find(h=>h.id===t.schema.default)??g[0]:g[0],v=u(c,y);if(l.Select(c,{inputLabel:d,values:g,...v}),v.value.id in f){let h=f[v.value.id]();m[v.value.id]=h}return()=>{let h=m[v.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:v.value.id}}}function Qa(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Za=si,Ya={"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 Rt(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Wa(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),f=d[g]||Rt(g);n[a(c,g)]=f})};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,f=c[g]||Rt(g);n[a(s.id,g)]=f}})}});let u={...Ya,...n};Object.keys(u).length>0&&i.cesdk.i18n.setTranslations({en:u})}async function Xa({options:e,provider:t,panelInput:i,config:r},n){let{id:a}=t;if(i==null)return;r.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let o=za(i.document),l=oi(o,i.inputReference);if(!Ua(l,r.debug))throw new Error(`Input reference '${i.inputReference}' does not resolve to a valid OpenAPI schema`);let u=l,s=ai(u,i);return Wa(s,t,e,t.kind),c=>{let{builder:d}=c,p=[];d.Section(`${a}.schema.section`,{children:()=>{s.forEach(b=>{let k=Za(c,b,t,i,e,r,t.kind);k!=null&&(Array.isArray(k)?p.push(...k):p.push(k))})}});let g=p.map(b=>b()),f=b=>b.type==="object"?Object.entries(b.value).reduce((k,[C,A])=>(k[C]=f(A),k),{}):b.value,m=g.reduce((b,k)=>(b[k.id]=f(k),b),{});ni(c,t,n,()=>({input:m}),()=>i.getBlockInput(m),{...e,requiredInputs:u.required,createPlaceholderBlock:i.userFlow==="placeholder"},r)}}var Ka=Xa;async function Ja(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Ra(e,t);case"schema":return Ka(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var el=Ja;function tl(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 nr(o,i)),o}return r}var il=tl;function rl(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 nl=rl,et="@imgly/plugin-ai-generation",ol=`
|
|
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 Ia(e){let{cesdk:t,panelId:i}=e;i.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${i}" was provided.`);let r=`${i}.dock`;t.ui.registerComponent(r,({builder:n})=>{let o=t.ui.isPanelOpen(i);n.Button(`${i}.dock.button`,{label:`${i}.dock.label`,isSelected:o,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(a=>{a.startsWith("ly.img.ai.")&&t.ui.closePanel(a),!o&&a==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(a)}),o?t.ui.closePanel(i):t.ui.openPanel(i)}})})}var si=Ia;function Aa(){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 _=Aa;function Ca(e,t){let{cesdk:i,provider:r,getInput:n}=t;console.error("Generation failed:",e),Sa(i,r.output.notification,()=>({input:n?.().input,error:e}))||i.ui.showNotification({type:"error",message:ya(e)})}function Sa(e,t,i){let r=t?.error;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.failed",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:o}),!0}var qt=Ca,$a="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ht=$a;function xa(e,t,i){switch(t){case"image":return Ea(e,i[t]);case"video":return Ma(e,i[t]);case"sticker":return Pa(e,i[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Ea(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 Ma(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 Pa(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 Ta=xa;async function ja(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 _a(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 La(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 Da(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 Na(e,i[t],r)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _a(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 La(e,t,i){let r=t.width,n=t.height,o=await va(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 Da(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 Na(e,t,i){let r=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:i.url,thumbUri:i.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:n},payload:{sourceSet:[{uri:i.url,width:r,height:n}]}}}var ci=ja;function Oa(e){switch(e.userFlow){case"placeholder":return Ra(e);case"generation-only":return Fa(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Fa(e){let{cesdk:t,abortSignal:i}=e;return async r=>{try{let n=e.kind,o=await e.getBlockInput(r);if(R(t,i))return{status:"aborted"};let a=await e.generate(r,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(R(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(R(t,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let l=ai(),u=await ci(l,n,o,a.output),s={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,s)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return a}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Ra(e){let{cesdk:t,abortSignal:i}=e,r;return async n=>{try{let o=e.kind,a=await e.getBlockInput(n);if(R(t,i))return{status:"aborted"};let l=ai(),u=Ta(l,o,a);if(r=await ha(t,u),R(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,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:i});if(R(t,i,r))return{status:"aborted"};if(s.status!=="success")return s;if(s.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(r))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let c=await ci(l,o,a,s.output);if(R(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),R(t,i,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(r)&&t.engine.block.setState(r,{type:"Ready"}),s}catch(o){return r!=null&&t.engine.block.isValid(r)&&(bt(o)?t.engine.block.destroy(r):t.engine.block.setState(r,{type:"Error",error:"Unknown"})),{status:"error",message:o instanceof Error?o.message:String(o)}}}}function R(e,t,i){return t.aborted?(i!=null&&e.engine.block.isValid(i)&&e.engine.block.destroy(i),!0):!1}var za=Oa;function yt(e){return`${e}.generating`}function Ua(e){return`${e}.abort`}function Ba(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(Ua(d),()=>{}),h=u.global(yt(d),!1),m,b=h.value&&p,v=()=>{b&&(g.value(),h.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 A=u.global(`${d}.confirmationDialogId`,void 0);l.Section(`${d}.generate.section`,{children:()=>{l.Button(`${d}.generate`,{label:["common.generate",`panel.${d}.generate`],isLoading:h.value,color:"accent",isDisabled:k,suffix:b?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let C=s.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:f})=>{s.ui.closeDialog(f),A.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:f})=>{v(),s.ui.closeDialog(f),A.setValue(void 0)}}});A.setValue(C)}}:void 0,onClick:async()=>{m=new AbortController;let C=m.signal;await(async()=>{try{h.setValue(!0),g.setValue(()=>{a.debug&&console.log("Aborting generation"),m?.abort()});let f=await za({kind:t.kind,generate:i,historyAssetSourceId:o.historyAssetSourceId,userFlow:o.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:C,cesdk:s,debug:a.debug,dryRun:a.dryRun})(r().input);if(f.status==="aborted")return;if(f.status==="error"){qt(f.message,{cesdk:s,provider:t,getInput:r});return}if(f.status==="success"&&f.type==="sync"){let y=t.output.notification;Va(s,y,()=>({input:r().input,output:f.output}))}}catch(f){if(bt(f))return;qt(f,{cesdk:s,provider:t,getInput:r})}finally{m=void 0,h.setValue(!1),g.setValue(()=>{}),A.value!=null&&(s.ui.closeDialog(A.value),A.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 Va(e,t,i){let r=t?.success;if(r==null||!(typeof r.show=="function"?r.show(i()):r.show))return!1;let n=typeof r.message=="function"?r.message(i()):r.message??"common.ai-generation.success",o=r.action!=null?{label:typeof r.action.label=="function"?r.action.label(i()):r.action.label,onClick:()=>{r?.action?.onClick(i())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:o,duration:r.duration}),!0}var ui=Ba;async function qa({options:e,provider:t,panelInput:i,config:r},n){if(i==null)return;let{cesdk:o}=e,{id:a}=t,l=i.render;return u=>{let{state:s}=u,c=s(yt(a),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=l(u,{cesdk:o,isGenerating:c});return ui(u,t,n,d,p,{...e,includeHistoryLibrary:i.includeHistoryLibrary??!0,createPlaceholderBlock:i.userFlow==="placeholder"},r),d}}var Ga=qa;function di(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let i=t.substring(2).split("/"),r=e;for(let n of i){if(r==null)throw new Error(`Invalid reference path: ${t}`);r=r[n]}if(r===void 0)throw new Error(`Reference not found: ${t}`);return r}function ge(e,t,i=new Set){if(t==null||i.has(t))return t;if(i.add(t),t.$ref&&typeof t.$ref=="string"){let r=di(e,t.$ref),n={...ge(e,r,i)};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&o!=="$ref"&&(n[o]=ge(e,t[o],i));return n}if(Array.isArray(t))return t.map(r=>ge(e,r,i));if(typeof t=="object"){let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=ge(e,t[n],i));return r}return t}function Ha(e){return ge(e,{...e})}function Qa(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 Za(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,r=[];return Ya(e,t).forEach(n=>{let o=n,a=i[n]??void 0;r.push({id:o,schema:a})}),r}function Ya(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=Wa(e,t)??n;return i!=null&&typeof i=="function"&&(o=i(o)),[...new Set(o)]}function Wa(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let i=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(r=>r in e);return i==null?void 0:e[i]}var pi=Za;function Z(e,t,i,r){let n=`property.${e.id}${r?`.${r}`:""}`;return[`ly.img.plugin-ai-${i}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`]}function gi(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},i="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:i}}function mi(e,t,i,r,n,o,a,l){if(t.schema==null)if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:o};return r.renderCustomProperty[t.id](c,t)}else return;let u=t,s=t.schema.type;if(r.renderCustomProperty!=null&&r.renderCustomProperty[t.id]!=null){let c={...e,providerConfig:l,config:o};return r.renderCustomProperty[t.id](c,t)}switch(s){case"string":return t.schema.enum!=null?Xa(e,u,i,r,n,o,a,l):fi(e,u,i,r,n,o,a,l);case"boolean":return bi(e,u,i,r,n,o,a,l);case"number":case"integer":return hi(e,u,i,r,n,o,a,l);case"object":return mt(e,u,i,r,n,o,a,l);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return Ka(e,u,i,r,n,o,a,l);break}default:console.error(`Unsupported property type: ${s}`)}}function mt(e,t,i,r,n,o,a,l){let u=pi(t.schema??{},r).reduce((s,c)=>{let d=mi(e,c,i,r,n,o,a,l);return d!=null&&(s[c.id]=d()),s},{});return()=>({id:t.id,type:"object",value:u})}function fi(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Z(t,i,a),h=ke(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],b=we(d,m,h,t.schema.default,""),v=s(p,b),k=Ja(t.schema),A=k?.component!=null&&k?.component==="TextArea"?"TextArea":"TextInput";return u[A](p,{inputLabel:g,placeholder:n.i18n?.prompt,...v}),()=>({id:t.id,type:"string",value:v.value})}function Xa(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=Z(t,i,a),{labels:h,icons:m}=gi(t.schema),b=(t.schema.enum??[]).map(y=>({id:y,label:Z(t,i,a,y),icon:m[y]})),v=ke(c,n.cesdk),k=l?.properties?.[d]??o.properties?.[d],A=we(d,k,v,t.schema.default,b[0]?.id),C=A!=null?b.find(y=>y.id===A)??b[0]:b[0],f=s(p,C);return u.Select(p,{inputLabel:g,values:b,...f}),()=>({id:t.id,type:"string",value:f.value.id})}function bi(e,t,i,r,n,o,a,l){let{builder:u,experimental:{global:s},engine:c}=e,{id:d}=t,p=`${i.id}.${d}`,g=Z(t,i,a),h=ke(c,n.cesdk),m=l?.properties?.[d]??o.properties?.[d],b=!!we(d,m,h,t.schema.default,!1),v=s(p,b);return u.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.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=Z(t,i,a),h=t.schema.minimum,m=t.schema.maximum,b=ke(c,n.cesdk),v=l?.properties?.[d]??o.properties?.[d],k=t.schema.default;k==null&&(h!=null?k=h:m!=null?k=m:k=0);let A=we(d,v,b,k,k),C=s(p,A);if(h!=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:h,max:m,step:f,...C})}else u.NumberInput(p,{inputLabel:g,min:h,max:m,...C});return()=>({id:t.id,type:"integer",value:C.value})}function Ka(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=Z(t,i,a),h=t.schema.anyOf??[],m=[],b={},v={},{labels:k,icons:A}=gi(t.schema),C=ke(c,n.cesdk),f=l?.properties?.[d]??o.properties?.[d],y={string:fi,boolean:bi,integer:hi,object:mt},S=(w,H)=>w.$ref?w.$ref.split("/").pop():H.split(".").pop()??H,I=(w,H)=>({id:w,label:Z(t,i,a,H),icon:A[H]??A[w]});h.forEach((w,H)=>{let O=`${i.id}.${d}.anyOf[${H}]`;if(w.$ref||w.title){let F=w.$ref?w.$ref.split("/").pop():w.title;b[O]=()=>mt(e,{id:O,schema:{...w,title:k[F]||F}},i,r,n,o,a,l),m.push(I(O,F))}else if(w.type==="string"&&w.enum)w.enum.forEach(F=>{m.push(I(F,F))});else if(w.type&&y[w.type]){let F=y[w.type];b[O]=()=>F(e,{id:O,schema:{...w,title:w.title}},i,r,n,o,a,l);let it=S(w,O);m.push(w.type==="string"&&!w.enum?{id:O,label:w.title||it,icon:w.title&&A[w.title]||A[it]}:I(O,it))}});let P=we(d,f,C,t.schema.default,null),$=P!=null?m.find(w=>w.id===P)??m[0]:m[0],x=s(p,$);if(u.Select(p,{inputLabel:g,values:m,...x}),x.value.id in b){let w=b[x.value.id]();v[x.value.id]=w}return()=>{let w=v[x.value.id];return w!=null?{...w(),id:t.id}:{id:t.id,type:"string",value:x.value.id}}}function Ja(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var el=mi,tl={"ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Gt(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function il(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),h=d[g]||Gt(g);n[o(c,g)]=h})};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,h=c[g]||Gt(g);n[o(s.id,g)]=h}})}});let u={...tl,...n};Object.keys(u).length>0&&i.cesdk.i18n.setTranslations({en:u})}async function rl({options:e,provider:t,panelInput:i,config:r,providerConfig:n},o){let{id:a}=t;if(i==null)return;r.debug&&console.log(`Registering schema-based panel input for provider ${a}`);let l=Ha(i.document),u=di(l,i.inputReference);if(!Qa(u,r.debug))throw new Error(`Input reference '${i.inputReference}' does not resolve to a valid OpenAPI schema`);let s=u,c=pi(s,i);return il(c,t,e,t.kind),d=>{let{builder:p}=d,g=[];p.Section(`${a}.schema.section`,{children:()=>{c.forEach(v=>{let k=el(d,v,t,i,e,r,t.kind,n);k!=null&&(Array.isArray(k)?g.push(...k):g.push(k))})}});let h=g.map(v=>v()),m=v=>v.type==="object"?Object.entries(v.value).reduce((k,[A,C])=>(k[A]=m(C),k),{}):v.value,b=h.reduce((v,k)=>(v[k.id]=m(k),v),{});ui(d,t,o,()=>({input:b}),()=>i.getBlockInput(b),{...e,requiredInputs:s.required,createPlaceholderBlock:i.userFlow==="placeholder"},r)}}var nl=rl;async function ol(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Ga(e,t);case"schema":return nl(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var al=ol;function ll(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 ur(a,i)),a}return r}var sl=ll;function cl(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 ul=cl,at="@imgly/plugin-ai-generation",dl=`
|
|
5
5
|
<svg>
|
|
6
6
|
<symbol
|
|
7
7
|
fill="none"
|
|
@@ -19,7 +19,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
19
19
|
fill="none"
|
|
20
20
|
xmlns="http://www.w3.org/2000/svg"
|
|
21
21
|
viewBox="0 0 24 24"
|
|
22
|
-
id="${
|
|
22
|
+
id="${at}/image"
|
|
23
23
|
>
|
|
24
24
|
<path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
|
|
25
25
|
<path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
|
|
@@ -31,7 +31,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
31
31
|
fill="none"
|
|
32
32
|
xmlns="http://www.w3.org/2000/svg"
|
|
33
33
|
viewBox="0 0 24 24"
|
|
34
|
-
id="${
|
|
34
|
+
id="${at}/video"
|
|
35
35
|
>
|
|
36
36
|
<path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
|
|
37
37
|
<path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
|
|
@@ -42,7 +42,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
42
42
|
fill="none"
|
|
43
43
|
xmlns="http://www.w3.org/2000/svg"
|
|
44
44
|
viewBox="0 0 24 24"
|
|
45
|
-
id="${
|
|
45
|
+
id="${at}/audio"
|
|
46
46
|
>
|
|
47
47
|
<path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
|
|
48
48
|
<path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
|
|
@@ -62,8 +62,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
62
62
|
|
|
63
63
|
</symbol>
|
|
64
64
|
</svg>
|
|
65
|
-
`,
|
|
66
|
-
`,"+")}`}}async function ul(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function dl(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=ce(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=ce(n,o)}else"customPrompt"in e?a=ce(n,"custom"):a=ce(n,"improved");else a=ce(n,"generated");return pl(a,i.abortSignal)}async function*pl(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 pi(100)}return{kind:"text",text:e}}function ce(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 gl(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:ml(220,r),duration:r,thumbnailUrl:void 0}}function ml(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 fl(r,44100)}function fl(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,b)=>{for(let k=0;k<b.length;k++)c.setUint8(m+k,b.charCodeAt(k))};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 b=Math.max(-1,Math.min(1,e[m])),k=Math.round(b*32767);c.setInt16(p,k,!0),p+=2}let g=new Uint8Array(s),f="";for(let m=0;m<g.length;m++)f+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(f)}`}async function pi(e){return new Promise(t=>{setTimeout(t,e)})}var bl=ll,gi="USER_CANCEL";function yl(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=sa([...e.provider.output.middleware??[],...i?.middlewares??[],ua({enable:i?.debug}),bl({enable:i?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await r(e.provider.output.generate)(t,{abortSignal:i?.abortSignal,engine:e.engine,cesdk:e.cesdk});return i?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:ma(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return ut(n)?{status:"aborted",message:n.message}:n===gi?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var hl=yl;async function vl(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};if(await t.initialize?.({...i,engine:i.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Pe.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let f=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;i.cesdk.feature.enable(f,!0)}})}let o=il(a),l=nl(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=l;let u=hl({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await el(a,u);fa(i.cesdk,"@imgly/plugin-ai-generation",al);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:o,assetLibraryEntryId:l},generate:u};return Kt.get().register(c),c}var tt=vl;function kl(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 or(n,i,r);return i.engine.asset.addSource(a),a.id}var wl=kl;function de(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 Il(e,t,i,r){let{cesdk:n}=i;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(Array.isArray(t)){let s=await Promise.all(t.map(c=>tt(e,c,i,r)));o.push(...s),a=Cl({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let s=await Promise.all(t.fromText.map(d=>tt(e,d,i,r)));o.push(...s);let c=await Promise.all(t.fromImage.map(d=>tt(e,d,i,r)));o.push(...c),a=Al({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}let l=wl({kind:e,cesdk:i.cesdk,historAssetSourceIds:o.map(s=>s.history?.assetSourceId).filter(Me)}),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 Al({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}),f;d&&i.length>0&&(!g||r.length===0)?f="fromText":g&&r.length>0&&(!d||i.length===0)?f="fromImage":d&&g&&a&&(f="fromText");let m=u.global(`${t}.fromType`,f),b=[];m.value==="fromText"?b.push(...i):m.value==="fromImage"?b.push(...r):b.push(...i,...r);let k=i.map(({provider:M,panel:Z})=>({id:M.id,label:M.name??M.id,builderRenderFunction:Z?.builderRenderFunction})),C=r.map(({provider:M,panel:Z})=>({id:M.id,label:M.name??M.id,builderRenderFunction:Z?.builderRenderFunction})),A=o.experimental.global(`${t}.selectedProvider.fromText`,k[0]),E=o.experimental.global(`${t}.selectedProvider.fromImage`,C[0]),y=m.value==="fromText"?A:m.value==="fromImage"?E:void 0,v=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,h=n.feature.isEnabled(v,{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 w=d&&g&&i.length>0&&r.length>0,x=a&&w,I=b.length>1&&h;if((x||I)&&l.Section(`${t}.providerSelection.section`,{children:()=>{if(x&&l.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:de(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:de(e,"fromText.label"),icon:m.value!=="fromText"&&zt(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:de(e,"fromImage.label"),icon:m.value!=="fromImage"&&zt(r,o)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),I){let M=m.value==="fromText"?k:m.value==="fromImage"?C:[...k,...C];y!=null&&l.Select(`${t}.providerSelect.select`,{inputLabel:de(e,"providerSelect.label"),values:M,...y})}}}),b.length>1)y?.value.builderRenderFunction?.(o);else{let M=b[0];M&&M.panel?.builderRenderFunction?.(o)}}}function Cl({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:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),c=n.state(`${t}.selectedProvider`,s[0]);i.length>1&&u&&c!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:de(e,"providerSelect.label"),values:s,...c})}}),c.value.builderRenderFunction?.(n)}}function zt(e,t){return e.length===0?!1:e.some(({provider:i})=>i.id==null?!1:t.experimental.global(pt(i.id),!1).value)}var mi=Il,ye="ly.img.ai.editMode",fi="ly.img.ai.metadata";async function Sl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let i=r=>{let{engine:n,builder:a,state:o,payload:l}=r;if(l==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let s=new Bt(n,fi),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 f=l.applyCallbacks?.onBefore,m=l.applyCallbacks?.onAfter;f!=null&&m!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{f(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{m(),p.setValue("after")}})}});let b=l.applyCallbacks?.onApply;b!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let k=e.cesdk.engine.editor;typeof k._update=="function"&&k._update(),b()}});break}default:}};return Promise.resolve(i)}var $l=Sl;function xl(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 El=xl;function Ml(e){return`ly.img.ai.${e}.canvasMenu`}var Pl=Ml;function Tl(e){let{kind:t,cesdk:i,payload:r,defaultOrder:n}=e,a=Pl(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 jl=Tl;function _l(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 Ll(e,t);case"image":return Dl(e,t);case"video":return Nl(e,t);case"audio":return Ol(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function Ll(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 Dl(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 lt(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),f=i.engine.block.getCropScaleY(a),m=i.engine.block.getCropTranslationX(a),b=i.engine.block.getCropTranslationY(a),k=i.engine.block.getCropRotation(a),C=()=>{i.engine.block.setCropScaleX(a,g),i.engine.block.setCropScaleY(a,f),i.engine.block.setCropTranslationX(a,m),i.engine.block.setCropTranslationY(a,b),i.engine.block.setCropRotation(a,k)};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 A=e.output.url,E=await i.engine.editor.getMimeType(A),y=await Fl(i,A,E),v=await lt(y,t.cesdk.engine),h=v.width/v.height,w=Math.abs(p-h)>.001,x=u?[{uri:y,width:v.width,height:v.height}]:void 0,I=y;x==null?i.engine.block.setString(o,"fill/image/imageFileURI",I):(i.engine.block.setString(o,"fill/image/imageFileURI",""),i.engine.block.setSourceSet(o,"fill/image/sourceSet",x)),await i.engine.block.forceLoadResources([o]),w?i.engine.block.setContentFillMode(a,"Cover"):C();let M=()=>{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);C()},Z=()=>{if(x==null){if(I==null)throw new Error("No image URI found");i.engine.block.setString(o,"fill/image/imageFileURI",I)}else i.engine.block.setSourceSet(o,"fill/image/sourceSet",x);w?i.engine.block.setContentFillMode(a,"Cover"):C()};return{applyCallbacks:{onBefore:M,onAfter:Z,onCancel:()=>{M()},onApply:()=>{Z(),t.cesdk.engine.editor.addUndoStep()}}}}async function Nl(e,t){throw new Error("Function not implemented.")}async function Ol(e,t){throw new Error("Function not implemented.")}async function Fl(e,t,i){let r=await(await fetch(t)).blob(),n=new File([r],`image.${oa(i)}`,{type:i}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Rl=_l;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 Ul=zl,Bl=class bi{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new bi),i[t]}register(t,i){let r=this.actions.get(t)??{};this.actions.set(t,{...r,...i})}get(t){return this.actions.get(t)??{}}},V=Bl;function Vl(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(Me)),u=new Bt(e.cesdk.engine,fi),s=e.lock??!0?Ul({engine:e.cesdk.engine,editModeToLockTo:ye,blockIdsToLock:r}):()=>{};r.forEach(c=>{V.get().register(c,{onCancelGeneration:()=>{o.abort(gi),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),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:l}),d=c.status;switch(d){case"success":{let{applyCallbacks:p}=await Rl(c,{kind:e.providerInitializationResult.provider.kind,blockIds:r,cesdk:e.cesdk,abortSignal:l});if(r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){r.forEach(f=>{u.set(f,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(f=>{V.get().register(f,{applyCallbacks:g})})}else r.forEach(g=>{e.cesdk.engine.block.isValid(g)&&u.clear(g)}),p.onApply(),s();return c}case"aborted":return e.debug&&console.log("Generation was aborted"),s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c;case"error":return s(),r.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),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 Ut=Vl;function ql(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let i=r=>{if(r.engine.editor.getEditMode()===ye)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=jl({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=Gl(l).filter(y=>{if(y==="ly.img.separator")return!0;let v=y.id.replace("ly.img.",""),h=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${v}`;if(!e.cesdk.feature.isEnabled(h,{engine:e.engine}))return!1;let w=y.scopes;if(w!=null&&w.length>0&&!n.every(x=>w.every(I=>e.engine.block.isAllowedByScope(x,I))))return!1;if(y.enable!=null){if(typeof y.enable=="function")return y.enable({engine:e.engine});if(typeof y.enable=="boolean")return y.enable}return!0}),s=[],c=e.providerInitializationResults.reduce((y,v)=>{if(v.provider.kind!==e.kind)return y;let h=u.map(w=>{if(w==="ly.img.separator")return w;if(v.provider.input?.quickActions?.supported?.[w.id]!=null)return{definition:w};{let x=Kt.get().getAll().filter(I=>I.provider.kind!==e.kind&&I.provider.id!==v.provider.id).find(I=>I.provider.input?.quickActions?.supported?.[w.id]!=null);if(x!=null){let I={definition:w,providerInitializationResult:x};return s.push(I),I}else return}}).filter(Me);return h=El(h),h.length===0||h.every(w=>w==="ly.img.separator")||h.every(w=>w==="ly.img.separator"||w.providerInitializationResult!=null)||y.push({providerInitializationResult:v,quickActions:h}),y},[]);if(c.length===0)if(s.length>0){let y=new Map;s.forEach(h=>{let w=h.definition.id;y.has(w)||y.set(w,h)});let v=Array.from(y.values());c.push({providerInitializationResult:v[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:v})}else return;let d=c.map(({providerInitializationResult:y})=>({id:y.provider.id,label:y.provider.name??y.provider.id})),p=r.experimental.global(`${t}.currentProvider`,d[0]),g=c.find(({providerInitializationResult:{provider:{id:y}}})=>y===p.value?.id),f=n.every(y=>r.engine.block.getState(y).type==="Ready"),{builder:m,experimental:b,state:k}=r,C=k(`${t}.isGenerating`,!1),A=k(`${t}.toggleExpandedState`,void 0),E=async(y,v,h)=>{C.setValue(!0);try{return await h(y,v)}finally{C.setValue(!1)}};b.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!f,isLoading:C.value,trailingIcon:null,children:({close:y})=>{if(A.value!==void 0){let v=g?.quickActions.find(I=>I!=="ly.img.separator"&&I.definition.id===A.value);if(v==null||v.definition.render==null)return;let h=c.filter(({quickActions:I})=>I.some(M=>M!=="ly.img.separator"&&M.definition.id===v.definition.id)).map(({providerInitializationResult:I})=>({id:I.provider.id,label:I.provider.name??I.provider.id})),w=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,x=e.cesdk.feature.isEnabled(w,{engine:e.engine});h.length>1&&x&&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:h,...p})}}),m.Section(`${t}.popover.expanded.section`,{children:()=>v.definition.render({...r,toggleExpand:()=>{A.setValue(void 0)},isExpanded:!0,generate:Ut({blockIds:n,providerInitializationResult:v.providerInitializationResult??g?.providerInitializationResult,quickAction:v.definition,middlewares:[E],confirmation:v.definition.defaults?.confirmation??!0,lock:v.definition.defaults?.lock??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}else{let v=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,h=e.cesdk.feature.isEnabled(v,{engine:e.engine});d.length>1&&h&&m.Section(`${t}.popover.header`,{children:()=>{m.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),m.Section(`${t}.popover.section`,{children:()=>{b.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(w=>{if(w==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}w.definition.render!=null&&w.definition.render({...r,toggleExpand:()=>{A.setValue(w.definition.id)},isExpanded:!1,generate:Ut({blockIds:n,providerInitializationResult:w.providerInitializationResult??g?.providerInitializationResult,quickAction:w.definition,middlewares:[E],confirmation:w.definition.defaults?.confirmation??!0,close:y,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:y,providerId:p.value.id})})}})}})}}})};return Promise.resolve(i)}function Gl(e){return e.map(t=>t==="ly.img.separator"?t:Pe.get().getBy({id:t,type:"quick"})[0]).filter(Me)}var Hl=ql;async function Ql(e){let t=await Hl({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()===ye){let a=r.engine.block.findAllSelected();i({...r,payload:{...r.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{V.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{V.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{V.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{V.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{V.get().get(o).onCancelGeneration?.()})}}});return}t(r)}}}var yi=Ql;var hi="@imgly/plugin-ai-image-generation",Zl=`
|
|
65
|
+
`,pl=dl;function gl(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 yi(2e3),await ml(t,e,i)):r(t,i)}async function ml(e,t,i){switch(t.kind){case"image":return fl(e,t,i);case"video":return bl(e,t,i);case"text":return hl(e,t,i);case"audio":return vl(e,t,i);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function fl(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 pa(l,i),s=await gt(u,i);r=s.width,n=s.height}else r=512,n=512;return{kind:"image",url:`https://placehold.co/${r}x${n}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
66
|
+
`,"+")}`}}async function bl(e,t,i){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function hl(e,t,i){let r="";if(t.blockIds&&t.blockIds.length>0){let[a]=t.blockIds;i.engine.block.isValid(a)&&(r=i.engine.block.getString(a,"text/text"))}if(!r&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let a=e.prompt,l=a.match(/text:\s*"([^"]+)"/i)||a.match(/content:\s*"([^"]+)"/i)||a.match(/"([^"]+)"/);l&&l[1]&&(r=l[1])}let n=r.length||50,o="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")o=pe(n,"translation");else if("type"in e&&typeof e.type=="string"){let a=e.type;o=pe(n,a)}else"customPrompt"in e?o=pe(n,"custom"):o=pe(n,"improved");else o=pe(n,"generated");return yl(o,i.abortSignal)}async function*yl(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 yi(100)}return{kind:"text",text:e}}function pe(e,t){let i="[DRY RUN - Dummy Text] ",r=i.length;if(e<=r)return i.substring(0,e);let n=e-r,o={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},a=o[t]||o.generated,l="";if(n<=a.length)l=a.substring(0,n);else{l=a;let u=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],s=0;for(;l.length<n;){let c=u[s%u.length];if(l.length+c.length<=n)l+=c;else{l+=c.substring(0,n-l.length);break}s++}}return i+l}async function vl(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:kl(220,r),duration:r,thumbnailUrl:void 0}}function kl(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 wl(r,44100)}function wl(e,t){let i=e.length,r=2,n=1,o=n*r,a=t*o,l=i*r,u=44+l,s=new ArrayBuffer(u),c=new DataView(s),d=(m,b)=>{for(let v=0;v<b.length;v++)c.setUint8(m+v,b.charCodeAt(v))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,a,!0),c.setUint16(32,o,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,l,!0);let p=44;for(let m=0;m<i;m++){let b=Math.max(-1,Math.min(1,e[m])),v=Math.round(b*32767);c.setInt16(p,v,!0),p+=2}let g=new Uint8Array(s),h="";for(let m=0;m<g.length;m++)h+=String.fromCharCode(g[m]);return`data:audio/wav;base64,${btoa(h)}`}async function yi(e){return new Promise(t=>{setTimeout(t,e)})}var Il=gl,vi="USER_CANCEL";function Al(e){return async(t,i)=>{if(i?.abortSignal?.aborted)return{status:"aborted"};let r=ma([...e.provider.output.middleware??[],...i?.middlewares??[],ba({enable:i?.debug}),Il({enable:i?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await r(e.provider.output.generate)(t,{abortSignal:i?.abortSignal,engine:e.engine,cesdk:e.cesdk});return i?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:ka(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return bt(n)?{status:"aborted",message:n.message}:n===vi?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var Cl=Al;async function Sl(e,t,i,r){let n={...r,provider:t},o={provider:t,panelInput:t.input?.panel,options:{cesdk:i.cesdk,engine:i.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...i,engine:i.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=De.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let h=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;i.cesdk.feature.enable(h,!0)}})}let a=sl(o),l=ul(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let u=Cl({provider:t,cesdk:i.cesdk,engine:i.cesdk.engine}),s=await al(o,u);wa(i.cesdk,"@imgly/plugin-ai-generation",pl);let c={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:u};return ni.get().register(c),c}var lt=Sl;function $l(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 dr(n,i,r);return i.engine.asset.addSource(o),o.id}var xl=$l;function me(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function El(e,t,i,r){let{cesdk:n}=i;n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let o,a=[];if(Array.isArray(t)){let s=await Promise.all(t.map(c=>lt(e,c,i,r)));a.push(...s),o=Pl({kind:e,prefix:e,providerInitializationResults:a,cesdk:n})}else{let s=await Promise.all(t.fromText.map(d=>lt(e,d,i,r)));a.push(...s);let c=await Promise.all(t.fromImage.map(d=>lt(e,d,i,r)));a.push(...c),o=Ml({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:c,cesdk:n})}let l=xl({kind:e,cesdk:i.cesdk,historAssetSourceIds:a.map(s=>s.history?.assetSourceId).filter(Le)}),u;return l!=null&&(u=l,i.cesdk.ui.addAssetLibraryEntry({id:u,sourceIds:[l],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:o},history:{assetSourceId:l,assetLibraryEntryId:u},providerInitializationResults:a}}function Ml({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}),h;d&&i.length>0&&(!g||r.length===0)?h="fromText":g&&r.length>0&&(!d||i.length===0)?h="fromImage":d&&g&&o&&(h="fromText");let m=u.global(`${t}.fromType`,h),b=[];m.value==="fromText"?b.push(...i):m.value==="fromImage"?b.push(...r):b.push(...i,...r);let v=i.map(({provider:x,panel:w})=>({id:x.id,label:x.name??x.id,builderRenderFunction:w?.builderRenderFunction})),k=r.map(({provider:x,panel:w})=>({id:x.id,label:x.name??x.id,builderRenderFunction:w?.builderRenderFunction})),A=a.experimental.global(`${t}.selectedProvider.fromText`,v[0]),C=a.experimental.global(`${t}.selectedProvider.fromImage`,k[0]),f=m.value==="fromText"?A:m.value==="fromImage"?C:void 0,y=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,S=n.feature.isEnabled(y,{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 I=d&&g&&i.length>0&&r.length>0,P=o&&I,$=b.length>1&&S;if((P||$)&&l.Section(`${t}.providerSelection.section`,{children:()=>{if(P&&l.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:me(e,"fromType.label"),children:()=>{d&&i.length>0&&l.Button(`${t}.fromType.buttonGroup.fromText`,{label:me(e,"fromText.label"),icon:m.value!=="fromText"&&Ht(i,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromText",onClick:()=>{m.setValue("fromText")}}),g&&r.length>0&&l.Button(`${t}.fromType.buttonGroup.fromImage`,{label:me(e,"fromImage.label"),icon:m.value!=="fromImage"&&Ht(r,a)?"@imgly/LoadingSpinner":void 0,isActive:m.value==="fromImage",onClick:()=>{m.setValue("fromImage")}})}}),$){let x=m.value==="fromText"?v:m.value==="fromImage"?k:[...v,...k];f!=null&&l.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:x,...f})}}}),b.length>1)f?.value.builderRenderFunction?.(a);else{let x=b[0];x&&x.panel?.builderRenderFunction?.(a)}}}function Pl({kind:e,prefix:t,providerInitializationResults:i,cesdk:r}){return n=>{let{builder:o,engine:a}=n;if(i.length===0)return;let l=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?l="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(l="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let u=r.feature.isEnabled(l,{engine:a}),s=i.map(({provider:d,panel:p})=>({id:d.id,label:d.name??d.id,builderRenderFunction:p?.builderRenderFunction})),c=n.state(`${t}.selectedProvider`,s[0]);i.length>1&&u&&c!=null&&o.Section(`${t}.providerSelection.section`,{children:()=>{o.Select(`${t}.providerSelect.select`,{inputLabel:me(e,"providerSelect.label"),values:s,...c})}}),c.value.builderRenderFunction?.(n)}}function Ht(e,t){return e.length===0?!1:e.some(({provider:i})=>i.id==null?!1:t.experimental.global(yt(i.id),!1).value)}var ki=El,Ie="ly.img.ai.editMode",wi="ly.img.ai.metadata";async function Tl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let i=r=>{let{engine:n,builder:o,state:a,payload:l}=r;if(l==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let s=new Zt(n,wi),c=s.get(u[0]);if(c==null)return null;let d=()=>{u.forEach(p=>{s.clear(p)})};switch(c.status){case"processing":{o.Button(`${t}.spinner`,{label:[`ly.img.ai.${c.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),o.Separator(`${t}.separator`),o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{l.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=a(`${t}.comparing`,"after"),g=l.applyCallbacks?.onCancel;g!=null&&o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let h=l.applyCallbacks?.onBefore,m=l.applyCallbacks?.onAfter;h!=null&&m!=null&&o.ButtonGroup(`${t}.compare`,{children:()=>{o.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{h(),p.setValue("before")}}),o.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{m(),p.setValue("after")}})}});let b=l.applyCallbacks?.onApply;b!=null&&o.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),b()}});break}default:}};return Promise.resolve(i)}var jl=Tl;function _l(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 Ll=_l;function Dl(e){return`ly.img.ai.${e}.canvasMenu`}var Nl=Dl;function Ol(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 Fl=Ol;function Rl(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 zl(e,t);case"image":return Ul(e,t);case"video":return Bl(e,t);case"audio":return Vl(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function zl(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 Ul(e,t){let{cesdk:i,blockIds:r,abortSignal:n}=t;if(r.length!==1)throw new Error("Only one block is supported for image generation");let[o]=r,a=i.engine.block.getFill(o),l=i.engine.block.getSourceSet(a,"fill/image/sourceSet"),[u]=l,s;u==null&&(s=i.engine.block.getString(a,"fill/image/imageFileURI"));let c=await i.engine.editor.getMimeType(u?.uri??s),d=await gt(u?.uri??s,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let g=i.engine.block.getCropScaleX(o),h=i.engine.block.getCropScaleY(o),m=i.engine.block.getCropTranslationX(o),b=i.engine.block.getCropTranslationY(o),v=i.engine.block.getCropRotation(o),k=()=>{i.engine.block.setCropScaleX(o,g),i.engine.block.setCropScaleY(o,h),i.engine.block.setCropTranslationX(o,m),i.engine.block.setCropTranslationY(o,b),i.engine.block.setCropRotation(o,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let A=e.output.url,C=await i.engine.editor.getMimeType(A),f=await ql(i,A,C),y=await gt(f,t.cesdk.engine),S=y.width/y.height,I=Math.abs(p-S)>.001,P=u?[{uri:f,width:y.width,height:y.height}]:void 0,$=f;P==null?i.engine.block.setString(a,"fill/image/imageFileURI",$):(i.engine.block.setString(a,"fill/image/imageFileURI",""),i.engine.block.setSourceSet(a,"fill/image/sourceSet",P)),await i.engine.block.forceLoadResources([a]),I?i.engine.block.setContentFillMode(o,"Cover"):k();let x=()=>{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()},w=()=>{if(P==null){if($==null)throw new Error("No image URI found");i.engine.block.setString(a,"fill/image/imageFileURI",$)}else i.engine.block.setSourceSet(a,"fill/image/sourceSet",P);I?i.engine.block.setContentFillMode(o,"Cover"):k()};return{applyCallbacks:{onBefore:x,onAfter:w,onCancel:()=>{x()},onApply:()=>{w(),t.cesdk.engine.editor.addUndoStep()}}}}async function Bl(e,t){throw new Error("Function not implemented.")}async function Vl(e,t){throw new Error("Function not implemented.")}async function ql(e,t,i){let r=await(await fetch(t)).blob(),n=new File([r],`image.${da(i)}`,{type:i}),o=await e.unstable_upload(n,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Gl=Rl;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 Ii{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",i=typeof window<"u"?window:globalThis;return i[t]||(i[t]=new Ii),i[t]}register(t,i){let r=this.actions.get(t)??{};this.actions.set(t,{...r,...i})}get(t){return this.actions.get(t)??{}}},Q=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(Le)),u=new Zt(e.cesdk.engine,wi),s=e.lock??!0?Ql({engine:e.cesdk.engine,editModeToLockTo:Ie,blockIdsToLock:r}):()=>{};r.forEach(c=>{Q.get().register(c,{onCancelGeneration:()=>{a.abort(vi),s(),e.cesdk.engine.block.isValid(c)&&(e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"}),u.clear(c))}})}),r?.forEach(c=>{u.set(c,{status:"processing",quickActionId:e.quickAction.id})}),r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Pending",progress:0})});try{let c=await e.providerInitializationResult.generate(o(t),{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(h=>{u.set(h,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};r.forEach(h=>{Q.get().register(h,{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)}),console.error(`[Generate]: ${c.message}`),c;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(c){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),s(),r.forEach(d=>{e.cesdk.engine.block.isValid(d)&&u.clear(d)}),c}finally{r.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"})})}}}var Qt=Yl;function Wl(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let i=r=>{if(r.engine.editor.getEditMode()===Ie)return;let n=r.engine.block.findAllSelected();if(n.length===0)return;let o=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(o,{engine:e.engine}))return;let{payload:a}=r,l=Fl({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(l.length===0)return;let u=Xl(l).filter(f=>{if(f==="ly.img.separator")return!0;let y=f.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${y}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let I=f.scopes;if(I!=null&&I.length>0&&!n.every(P=>I.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,y)=>{if(y.provider.kind!==e.kind)return f;let S=u.map(I=>{if(I==="ly.img.separator")return I;if(y.provider.input?.quickActions?.supported?.[I.id]!=null)return{definition:I};{let P=ni.get().getAll().filter($=>$.provider.kind!==e.kind&&$.provider.id!==y.provider.id).find($=>$.provider.input?.quickActions?.supported?.[I.id]!=null);if(P!=null){let $={definition:I,providerInitializationResult:P};return s.push($),$}else return}}).filter(Le);return S=Ll(S),S.length===0||S.every(I=>I==="ly.img.separator")||S.every(I=>I==="ly.img.separator"||I.providerInitializationResult!=null)||f.push({providerInitializationResult:y,quickActions:S}),f},[]);if(c.length===0)if(s.length>0){let f=new Map;s.forEach(S=>{let I=S.definition.id;f.has(I)||f.set(I,S)});let y=Array.from(f.values());c.push({providerInitializationResult:y[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:y})}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),h=n.every(f=>r.engine.block.getState(f).type==="Ready"),{builder:m,experimental:b,state:v}=r,k=v(`${t}.isGenerating`,!1),A=v(`${t}.toggleExpandedState`,void 0),C=async(f,y,S)=>{k.setValue(!0);try{return await S(f,y)}finally{k.setValue(!1)}};b.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!h,isLoading:k.value,trailingIcon:null,children:({close:f})=>{if(A.value!==void 0){let y=g?.quickActions.find($=>$!=="ly.img.separator"&&$.definition.id===A.value);if(y==null||y.definition.render==null)return;let S=c.filter(({quickActions:$})=>$.some(x=>x!=="ly.img.separator"&&x.definition.id===y.definition.id)).map(({providerInitializationResult:$})=>({id:$.provider.id,label:$.provider.name??$.provider.id})),I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,P=e.cesdk.feature.isEnabled(I,{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:()=>y.definition.render({...r,toggleExpand:()=>{A.setValue(void 0)},isExpanded:!0,generate:Qt({blockIds:n,providerInitializationResult:y.providerInitializationResult??g?.providerInitializationResult,quickAction:y.definition,middlewares:[C],confirmation:y.definition.defaults?.confirmation??!0,lock:y.definition.defaults?.lock??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}else{let y=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(y,{engine:e.engine});d.length>1&&S&&m.Section(`${t}.popover.header`,{children:()=>{m.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),m.Section(`${t}.popover.section`,{children:()=>{b.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(I=>{if(I==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}I.definition.render!=null&&I.definition.render({...r,toggleExpand:()=>{A.setValue(I.definition.id)},isExpanded:!1,generate:Qt({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[C],confirmation:I.definition.defaults?.confirmation??!0,close:f,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:f,providerId:p.value.id})})}})}})}}})};return Promise.resolve(i)}function Xl(e){return e.map(t=>t==="ly.img.separator"?t:De.get().getBy({id:t,type:"quick"})[0]).filter(Le)}var Kl=Wl;async function Jl(e){let t=await Kl({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),i=await jl({kind:e.kind,cesdk:e.cesdk});return{renderFunction:r=>{let{engine:n}=r;if(n.editor.getEditMode()===Ie){let o=r.engine.block.findAllSelected();i({...r,payload:{...r.payload??{},applyCallbacks:{onBefore:()=>{o.forEach(a=>{Q.get().get(a).applyCallbacks?.onBefore?.()})},onAfter:()=>{o.forEach(a=>{Q.get().get(a).applyCallbacks?.onAfter?.()})},onCancel:()=>{o.forEach(a=>{Q.get().get(a).applyCallbacks?.onCancel?.()})},onApply:()=>{o.forEach(a=>{Q.get().get(a).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{o.forEach(a=>{Q.get().get(a).onCancelGeneration?.()})}}});return}t(r)}}}var Ai=Jl;var Ci="@imgly/plugin-ai-image-generation",es=`
|
|
67
67
|
<svg>
|
|
68
68
|
<symbol
|
|
69
69
|
fill="none"
|
|
@@ -77,41 +77,18 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
77
77
|
|
|
78
78
|
</symbol>
|
|
79
79
|
</svg>
|
|
80
|
-
`,vi=Zl;var Yl=typeof global=="object"&&global&&global.Object===Object&&global,Li=Yl,Wl=typeof self=="object"&&self&&self.Object===Object&&self,Xl=Li||Wl||Function("return this")(),D=Xl,Kl=D.Symbol,re=Kl,Di=Object.prototype,Jl=Di.hasOwnProperty,es=Di.toString,he=re?re.toStringTag:void 0;function ts(e){var t=Jl.call(e,he),i=e[he];try{e[he]=void 0;var r=!0}catch{}var n=es.call(e);return r&&(t?e[he]=i:delete e[he]),n}var is=ts,rs=Object.prototype,ns=rs.toString;function os(e){return ns.call(e)}var as=os,ls="[object Null]",ss="[object Undefined]",ki=re?re.toStringTag:void 0;function cs(e){return e==null?e===void 0?ss:ls:ki&&ki in Object(e)?is(e):as(e)}var Ie=cs;function us(e){return e!=null&&typeof e=="object"}var kt=us,jd=Array.isArray;function ds(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ni=ds,ps="[object AsyncFunction]",gs="[object Function]",ms="[object GeneratorFunction]",fs="[object Proxy]";function bs(e){if(!Ni(e))return!1;var t=Ie(e);return t==gs||t==ms||t==ps||t==fs}var ys=bs,hs=D["__core-js_shared__"],gt=hs,wi=function(){var e=/[^.]+$/.exec(gt&>.keys&>.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vs(e){return!!wi&&wi in e}var ks=vs,ws=Function.prototype,Is=ws.toString;function As(e){if(e!=null){try{return Is.call(e)}catch{}try{return e+""}catch{}}return""}var H=As,Cs=/[\\^$.*+?()[\]{}|]/g,Ss=/^\[object .+?Constructor\]$/,$s=Function.prototype,xs=Object.prototype,Es=$s.toString,Ms=xs.hasOwnProperty,Ps=RegExp("^"+Es.call(Ms).replace(Cs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ts(e){if(!Ni(e)||ks(e))return!1;var t=ys(e)?Ps:Ss;return t.test(H(e))}var js=Ts;function _s(e,t){return e?.[t]}var Ls=_s;function Ds(e,t){var i=Ls(e,t);return js(i)?i:void 0}var ne=Ds,Ns=ne(D,"WeakMap"),ft=Ns;function Os(e,t){return e===t||e!==e&&t!==t}var Fs=Os,Rs=9007199254740991;function zs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Rs}var Us=zs;var _d=Object.prototype;var Bs="[object Arguments]";function Vs(e){return kt(e)&&Ie(e)==Bs}var Ii=Vs,Oi=Object.prototype,qs=Oi.hasOwnProperty,Gs=Oi.propertyIsEnumerable,Ld=Ii(function(){return arguments}())?Ii:function(e){return kt(e)&&qs.call(e,"callee")&&!Gs.call(e,"callee")};var Fi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ai=Fi&&typeof module=="object"&&module&&!module.nodeType&&module,Hs=Ai&&Ai.exports===Fi,Ci=Hs?D.Buffer:void 0,Dd=Ci?Ci.isBuffer:void 0;var Qs="[object Arguments]",Zs="[object Array]",Ys="[object Boolean]",Ws="[object Date]",Xs="[object Error]",Ks="[object Function]",Js="[object Map]",ec="[object Number]",tc="[object Object]",ic="[object RegExp]",rc="[object Set]",nc="[object String]",oc="[object WeakMap]",ac="[object ArrayBuffer]",lc="[object DataView]",sc="[object Float32Array]",cc="[object Float64Array]",uc="[object Int8Array]",dc="[object Int16Array]",pc="[object Int32Array]",gc="[object Uint8Array]",mc="[object Uint8ClampedArray]",fc="[object Uint16Array]",bc="[object Uint32Array]",$={};$[sc]=$[cc]=$[uc]=$[dc]=$[pc]=$[gc]=$[mc]=$[fc]=$[bc]=!0;$[Qs]=$[Zs]=$[ac]=$[Ys]=$[lc]=$[Ws]=$[Xs]=$[Ks]=$[Js]=$[ec]=$[tc]=$[ic]=$[rc]=$[nc]=$[oc]=!1;function yc(e){return kt(e)&&Us(e.length)&&!!$[Ie(e)]}var hc=yc;function vc(e){return function(t){return e(t)}}var kc=vc,Ri=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ve=Ri&&typeof module=="object"&&module&&!module.nodeType&&module,wc=ve&&ve.exports===Ri,mt=wc&&Li.process,Ic=function(){try{var e=ve&&ve.require&&ve.require("util").types;return e||mt&&mt.binding&&mt.binding("util")}catch{}}(),Si=Ic,$i=Si&&Si.isTypedArray,Nd=$i?kc($i):hc;var Ac=Object.prototype,Od=Ac.hasOwnProperty;function Cc(e,t){return function(i){return e(t(i))}}var Sc=Cc,Fd=Sc(Object.keys,Object);var $c=Object.prototype,Rd=$c.hasOwnProperty;var xc=ne(Object,"create"),ke=xc;function Ec(){this.__data__=ke?ke(null):{},this.size=0}var Mc=Ec;function Pc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Tc=Pc,jc="__lodash_hash_undefined__",_c=Object.prototype,Lc=_c.hasOwnProperty;function Dc(e){var t=this.__data__;if(ke){var i=t[e];return i===jc?void 0:i}return Lc.call(t,e)?t[e]:void 0}var Nc=Dc,Oc=Object.prototype,Fc=Oc.hasOwnProperty;function Rc(e){var t=this.__data__;return ke?t[e]!==void 0:Fc.call(t,e)}var zc=Rc,Uc="__lodash_hash_undefined__";function Bc(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=ke&&t===void 0?Uc:t,this}var Vc=Bc;function oe(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}oe.prototype.clear=Mc;oe.prototype.delete=Tc;oe.prototype.get=Nc;oe.prototype.has=zc;oe.prototype.set=Vc;var xi=oe;function qc(){this.__data__=[],this.size=0}var Gc=qc;function Hc(e,t){for(var i=e.length;i--;)if(Fs(e[i][0],t))return i;return-1}var Te=Hc,Qc=Array.prototype,Zc=Qc.splice;function Yc(e){var t=this.__data__,i=Te(t,e);if(i<0)return!1;var r=t.length-1;return i==r?t.pop():Zc.call(t,i,1),--this.size,!0}var Wc=Yc;function Xc(e){var t=this.__data__,i=Te(t,e);return i<0?void 0:t[i][1]}var Kc=Xc;function Jc(e){return Te(this.__data__,e)>-1}var eu=Jc;function tu(e,t){var i=this.__data__,r=Te(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}var iu=tu;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=Gc;ae.prototype.delete=Wc;ae.prototype.get=Kc;ae.prototype.has=eu;ae.prototype.set=iu;var je=ae,ru=ne(D,"Map"),we=ru;function nu(){this.size=0,this.__data__={hash:new xi,map:new(we||je),string:new xi}}var ou=nu;function au(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var lu=au;function su(e,t){var i=e.__data__;return lu(t)?i[typeof t=="string"?"string":"hash"]:i.map}var _e=su;function cu(e){var t=_e(this,e).delete(e);return this.size-=t?1:0,t}var uu=cu;function du(e){return _e(this,e).get(e)}var pu=du;function gu(e){return _e(this,e).has(e)}var mu=gu;function fu(e,t){var i=_e(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var bu=fu;function le(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])}}le.prototype.clear=ou;le.prototype.delete=uu;le.prototype.get=pu;le.prototype.has=mu;le.prototype.set=bu;var zi=le;function yu(){this.__data__=new je,this.size=0}var hu=yu;function vu(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}var ku=vu;function wu(e){return this.__data__.get(e)}var Iu=wu;function Au(e){return this.__data__.has(e)}var Cu=Au,Su=200;function $u(e,t){var i=this.__data__;if(i instanceof je){var r=i.__data__;if(!we||r.length<Su-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new zi(r)}return i.set(e,t),this.size=i.size,this}var xu=$u;function Ae(e){var t=this.__data__=new je(e);this.size=t.size}Ae.prototype.clear=hu;Ae.prototype.delete=ku;Ae.prototype.get=Iu;Ae.prototype.has=Cu;Ae.prototype.set=xu;var Eu=Object.prototype,zd=Eu.propertyIsEnumerable;var Mu=ne(D,"DataView"),bt=Mu,Pu=ne(D,"Promise"),yt=Pu,Tu=ne(D,"Set"),ht=Tu,Ei="[object Map]",ju="[object Object]",Mi="[object Promise]",Pi="[object Set]",Ti="[object WeakMap]",ji="[object DataView]",_u=H(bt),Lu=H(we),Du=H(yt),Nu=H(ht),Ou=H(ft),ie=Ie;(bt&&ie(new bt(new ArrayBuffer(1)))!=ji||we&&ie(new we)!=Ei||yt&&ie(yt.resolve())!=Mi||ht&&ie(new ht)!=Pi||ft&&ie(new ft)!=Ti)&&(ie=function(e){var t=Ie(e),i=t==ju?e.constructor:void 0,r=i?H(i):"";if(r)switch(r){case _u:return ji;case Lu:return Ei;case Du:return Mi;case Nu:return Pi;case Ou:return Ti}return t});var Ud=D.Uint8Array;var Fu="__lodash_hash_undefined__";function Ru(e){return this.__data__.set(e,Fu),this}var zu=Ru;function Uu(e){return this.__data__.has(e)}var Bu=Uu;function vt(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new zi;++t<i;)this.add(e[t])}vt.prototype.add=vt.prototype.push=zu;vt.prototype.has=Bu;var _i=re?re.prototype:void 0,Bd=_i?_i.valueOf:void 0;var Vu=Object.prototype,Vd=Vu.hasOwnProperty;var qu=Object.prototype,qd=qu.hasOwnProperty;var Gd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Hd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Qd=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Gu(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 T(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 Gu(r,t)}function Hu(e){return e==null?[]:Array.isArray(e)?e:[e]}var wt=Hu;var Q="@imgly/plugin-ai-image-generation-web",Le=["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"];var Oe="editImage",O=`ly.img.${Oe}`,Ui=`ly.img.plugin-ai-image-generation-web.quickAction.${Oe}`,De=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Oe}`;function Ne(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Oe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var Qu=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${De}`]:"Edit Image...",[`${De}.description`]:"Change image based on description",[`${De}.prompt`]:"Edit Image...",[`${Ui}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${De}.apply`]:"Change"}}),{id:O,type:"quick",kind:"image",label:`${Ui}`,enable:j(),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(`${O}.prompt`,"");i.TextArea(`${O}.prompt`,{inputLabel:Ne(c,"prompt"),placeholder:Ne(c,"prompt.placeholder")[1],...d}),i.Separator(`${O}.separator`),r.builder.ButtonRow(`${O}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${O}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${O}.footer.apply`,{label:Ne(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=await T(g,l,{throwErrorIfSvg:!0});await o({prompt:p,uri:f}),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(`${O}.button`,{label:Ne(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:a})}}),Bi=Qu;var ze="swapBackground",F=`ly.img.${ze}`,Vi=`ly.img.plugin-ai-image-generation-web.quickAction.${ze}`,Fe=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${ze}`;function Re(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 Zu=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${Fe}`]:"Swap Background...",[`${Fe}.description`]:"Change the background of the image",[`${Fe}.prompt`]:"Swap Background...",[`${Vi}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Fe}.apply`]:"Change"}}),{id:F,type:"quick",kind:"image",label:`${Vi}`,enable:j(),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(`${F}.prompt`,"");i.TextArea(`${F}.prompt`,{inputLabel:Re(c,"prompt"),placeholder:Re(c,"prompt.placeholder")[1],...d}),i.Separator(`${F}.separator`),r.builder.ButtonRow(`${F}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${F}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${F}.footer.apply`,{label:Re(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=await T(g,l,{throwErrorIfSvg:!0});await o({prompt:`Swap the background to ${p}`,uri:f}),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(`${F}.button`,{label:Re(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:a})}}),qi=Zu;var Ue="styleTransfer",Ce=`ly.img.${Ue}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${Ue}`,_=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ue}`;function Gi(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ue}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var Wu=[{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."}],Xu=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${_}`]:"Change Art Style",[`${_}.description`]:"Transform image into different art styles",[`${_}.water`]:"Watercolor Painting",[`${_}.oil`]:"Oil Painting",[`${_}.charcoal`]:"Charcoal Sketch",[`${_}.pencil`]:"Pencil Drawing",[`${_}.pastel`]:"Pastel Artwork",[`${_}.ink`]:"Ink Wash",[`${_}.stained-glass`]:"Stained Glass Window",[`${_}.japanese`]:"Japanese Woodblock Print"}}),{id:Ce,type:"quick",kind:"image",label:`${Yu}`,enable:j(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:a,close:o,providerId:l})=>{r.builder.Popover(`${Ce}.popover`,{label:Gi(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Ce}.popover.section`,{children:()=>{r.builder.Menu(`${Ce}.popover.menu`,{children:()=>{Wu.forEach(u=>{i.Button(`${Ce}.popover.menu.${u.id}`,{label:Gi(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=a.block.findAllSelected(),c=await T(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"})}}})})}})}})}})}}),Hi=Xu;var Be="artistTransfer",Se=`ly.img.${Be}`,Ku=`ly.img.plugin-ai-image-generation-web.quickAction.${Be}`,P=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Be}`;function Qi(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Be}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var Ju=[{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."}],ed=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${P}`]:"Painted By",[`${P}.description`]:"Transform image in the style of famous artists",[`${P}.van-gogh`]:"Van Gogh",[`${P}.monet`]:"Monet",[`${P}.picasso`]:"Picasso",[`${P}.dali`]:"Dal\xED",[`${P}.matisse`]:"Matisse",[`${P}.warhol`]:"Warhol",[`${P}.michelangelo`]:"Michelangelo",[`${P}.da-vinci`]:"Da Vinci",[`${P}.rembrandt`]:"Rembrandt",[`${P}.mondrian`]:"Mondrian",[`${P}.kahlo`]:"Frida Kahlo",[`${P}.hokusai`]:"Hokusai"}}),{id:Se,type:"quick",kind:"image",label:`${Ku}`,enable:j(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:a,close:o,providerId:l})=>{r.builder.Popover(`${Se}.popover`,{label:Qi(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Se}.popover.section`,{children:()=>{r.builder.Menu(`${Se}.popover.menu`,{children:()=>{Ju.forEach(u=>{i.Button(`${Se}.popover.menu.${u.id}`,{label:Qi(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=a.block.findAllSelected(),c=await T(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"})}}})})}})}})}})}}),Zi=ed;var Ge="createVariant",R=`ly.img.${Ge}`,Yi=`ly.img.plugin-ai-image-generation-web.quickAction.${Ge}`,Ve=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ge}`;function qe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ge}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var td=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Ve}`]:"Create Variant...",[`${Ve}.description`]:"Create a variation of the image",[`${Ve}.prompt`]:"Create Variant...",[`${Yi}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ve}.apply`]:"Create"}}),{id:R,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Yi}`,enable:i=>{if(!j()(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(`${R}.prompt`,"");i.TextArea(`${R}.prompt`,{inputLabel:qe(c,"prompt"),placeholder:qe(c,"prompt.placeholder")[1],...d}),i.Separator(`${R}.separator`),r.builder.ButtonRow(`${R}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${R}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${R}.footer.apply`,{label:qe(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=l.block.getType(g),m=l.block.duplicate(g);f==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(A=>{l.block.destroy(A)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let b=l.block.getParent(m);if(b==null)throw new Error("Parent not found");if(!(b!=null&&l.block.getType(b)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(b))&&f!=="//ly.img.ubq/page"){let E=l.block.getWidth(b),y=l.block.getHeight(b),v=.02*Math.min(E,y)*1;l.block.setPositionX(m,l.block.getPositionX(m)+v),l.block.setPositionY(m,l.block.getPositionY(m)+v)}let C=await T(m,l,{throwErrorIfSvg:!0});await o({prompt:p,uri:C},{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(`${R}.button`,{label:qe(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:a})}}),Wi=td;var Qe="combineImages",z=`ly.img.${Qe}`,Xi=`ly.img.plugin-ai-image-generation-web.quickAction.${Qe}`,It=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Qe}`;function He(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Qe}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var id=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${It}.apply`]:"Combine",[`${It}`]:"Combine Images...",[`${It}.prompt`]:"Image Combination Instructions",[`${Xi}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:z,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Xi}`,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(`${z}.prompt`,"");i.TextArea(`${z}.prompt`,{inputLabel:He(c,"prompt"),placeholder:He(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:He(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let g=l.block.findAllSelected(),f=l.block.duplicate(g[0]);g.forEach(y=>{l.block.setSelected(y,!1)}),l.block.setSelected(f,!0);let m=l.block.getParent(f);if(m==null)throw new Error("Parent not found");let b=1,k=l.block.getWidth(m),C=l.block.getHeight(m),A=.02*Math.min(k,C)*b;l.block.setPositionX(f,l.block.getPositionX(f)+A),l.block.setPositionY(f,l.block.getPositionY(f)+A);let E=await Promise.all(g.map(y=>T(y,l,{throwErrorIfSvg:!0})));await o({prompt:p,uris:E,exportFromBlockIds:g},{blockIds:[f]}),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(`${z}.button`,{label:He(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:a})}}),Ki=id;var Ze="remixPage",Ji=`ly.img.${Ze}`,rd=`ly.img.plugin-ai-image-generation-web.quickAction.${Ze}`,nd=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ze}`;function od(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 ad=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),e.i18n.setTranslations({en:{[`${nd}`]:"Turn Page into Image"}}),{id:Ji,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${rd}`,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(`${Ji}.button`,{label:od(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(C=>{n.block.destroy(C)}),n.block.setSelected(l,!1);let d=n.block.getFrameWidth(l),p=n.block.getFrameHeight(l),g=n.block.getPositionX(l),f=n.block.getPositionY(l),m=n.block.createShape("rect"),b=n.block.create("graphic");n.block.setShape(b,m),n.block.appendChild(c,b),n.block.setWidth(b,d),n.block.setHeight(b,p),n.block.setPositionX(b,g),n.block.setPositionY(b,f);let k=n.block.createFill("image");n.block.setFill(b,k),n.block.setString(k,"fill/image/imageFileURI",s),n.block.setSelected(b,!0),n.scene.zoomToBlock(b),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:s},{blockIds:[b]}),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"})}}})}}),er=ad;var We="remixPageWithPrompt",U=`ly.img.${We}`,tr=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,At=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function Ye(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${We}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ld=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${At}`]:"Remix Page...",[`${At}.prompt`]:"Remix Page Prompt",[`${tr}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${At}.apply`]:"Remix"}}),{id:U,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tr}`,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(`${U}.prompt`,"");i.TextArea(`${U}.prompt`,{inputLabel:Ye(c,"prompt"),placeholder:Ye(c,"prompt.placeholder")[1],...d}),i.Separator(`${U}.separator`),r.builder.ButtonRow(`${U}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${U}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),i.Button(`${U}.footer.apply`,{label:Ye(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),f=await l.block.export(g),m=URL.createObjectURL(f),b=l.block.duplicate(g);l.block.getChildren(b).forEach(w=>{l.block.destroy(w)}),l.block.setSelected(g,!1);let k=l.block.getFrameWidth(g),C=l.block.getFrameHeight(g),A=l.block.getPositionX(g),E=l.block.getPositionY(g),y=l.block.createShape("rect"),v=l.block.create("graphic");l.block.setShape(v,y),l.block.appendChild(b,v),l.block.setWidth(v,k),l.block.setHeight(v,C),l.block.setPositionX(v,A),l.block.setPositionY(v,E);let h=l.block.createFill("image");l.block.setFill(v,h),l.block.setString(h,"fill/image/imageFileURI",m),l.block.setSelected(v,!0),l.scene.zoomToBlock(v),await o({prompt:p,uri:m},{blockIds:[v]}),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(`${U}.button`,{label:Ye(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:a})}}),ir=ld;var B="ly.img.ai.image-generation";function sd(e){return{async initialize({cesdk:t}){if(t==null)return;ti(t,Q,"0.2.6"),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=Pe.get(),r=i.register({type:"plugin",sceneMode:"Design",id:Q,pluginId:Q,label:"Generate Image",meta:{panelId:B},execute:()=>{t.ui.isPanelOpen(B)?t.ui.closePanel(B):t.ui.openPanel(B)}});t.ui.addIconSet(hi,vi),t.i18n.setTranslations({en:{[`panel.${B}`]:"Image Generation",[`${B}.dock.label`]:"AI Image"}}),cd(e),i.register(Bi({cesdk:t})),i.register(qi({cesdk:t})),i.register(Hi({cesdk:t})),i.register(Zi({cesdk:t})),i.register(Wi({cesdk:t})),i.register(Ki({cesdk:t})),i.register(er({cesdk:t})),i.register(ir({cesdk:t}));let n=e.providers?.text2image??e.text2image,a=e.providers?.image2image??e.image2image,o=await Promise.all(wt(n).map(d=>d({cesdk:t}))),l=await Promise.all(wt(a).map(d=>d({cesdk:t})));if(!(o.length>0||l.length>0)){r();return}let s=await mi("image",{fromText:o,fromImage:l},{cesdk:t},e),c=await yi({kind:"image",providerInitializationResults:s.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Le});s.history?.assetSourceId!=null,c.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",c.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:ye})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(B,s.panel.builderRenderFunction),ii({cesdk:t,panelId:B})):r()}}}function cd(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 rr=sd;var ud=e=>({name:Q,version:"0.2.6",...rr(e)}),Np=ud;export{Le as DEFAULT_IMAGE_QUICK_ACTION_ORDER,Np as default};
|
|
80
|
+
`,Si=es;var ts=typeof global=="object"&&global&&global.Object===Object&&global,zi=ts,is=typeof self=="object"&&self&&self.Object===Object&&self,rs=zi||is||Function("return this")(),N=rs,ns=N.Symbol,ae=ns,Ui=Object.prototype,os=Ui.hasOwnProperty,as=Ui.toString,Ae=ae?ae.toStringTag:void 0;function ls(e){var t=os.call(e,Ae),i=e[Ae];try{e[Ae]=void 0;var r=!0}catch{}var n=as.call(e);return r&&(t?e[Ae]=i:delete e[Ae]),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]",$i=ae?ae.toStringTag:void 0;function fs(e){return e==null?e===void 0?ms:gs:$i&&$i in Object(e)?ss(e):ps(e)}var xe=fs;function bs(e){return e!=null&&typeof e=="object"}var $t=bs,Fd=Array.isArray;function hs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bi=hs,ys="[object AsyncFunction]",vs="[object Function]",ks="[object GeneratorFunction]",ws="[object Proxy]";function Is(e){if(!Bi(e))return!1;var t=xe(e);return t==vs||t==ks||t==ys||t==ws}var As=Is,Cs=N["__core-js_shared__"],vt=Cs,xi=function(){var e=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ss(e){return!!xi&&xi 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 W=Ms,Ps=/[\\^$.*+?()[\]{}|]/g,Ts=/^\[object .+?Constructor\]$/,js=Function.prototype,_s=Object.prototype,Ls=js.toString,Ds=_s.hasOwnProperty,Ns=RegExp("^"+Ls.call(Ds).replace(Ps,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Os(e){if(!Bi(e)||$s(e))return!1;var t=As(e)?Ns:Ts;return t.test(W(e))}var Fs=Os;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 le=Us,Bs=le(N,"WeakMap"),wt=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 Rd=Object.prototype;var Zs="[object Arguments]";function Ys(e){return $t(e)&&xe(e)==Zs}var Ei=Ys,Vi=Object.prototype,Ws=Vi.hasOwnProperty,Xs=Vi.propertyIsEnumerable,zd=Ei(function(){return arguments}())?Ei:function(e){return $t(e)&&Ws.call(e,"callee")&&!Xs.call(e,"callee")};var qi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Mi=qi&&typeof module=="object"&&module&&!module.nodeType&&module,Ks=Mi&&Mi.exports===qi,Pi=Ks?N.Buffer:void 0,Ud=Pi?Pi.isBuffer:void 0;var Js="[object Arguments]",ec="[object Array]",tc="[object Boolean]",ic="[object Date]",rc="[object Error]",nc="[object Function]",oc="[object Map]",ac="[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]",hc="[object Int16Array]",yc="[object Int32Array]",vc="[object Uint8Array]",kc="[object Uint8ClampedArray]",wc="[object Uint16Array]",Ic="[object Uint32Array]",M={};M[mc]=M[fc]=M[bc]=M[hc]=M[yc]=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[oc]=M[ac]=M[lc]=M[sc]=M[cc]=M[uc]=M[dc]=!1;function Ac(e){return $t(e)&&Qs(e.length)&&!!M[xe(e)]}var Cc=Ac;function Sc(e){return function(t){return e(t)}}var $c=Sc,Gi=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ce=Gi&&typeof module=="object"&&module&&!module.nodeType&&module,xc=Ce&&Ce.exports===Gi,kt=xc&&zi.process,Ec=function(){try{var e=Ce&&Ce.require&&Ce.require("util").types;return e||kt&&kt.binding&&kt.binding("util")}catch{}}(),Ti=Ec,ji=Ti&&Ti.isTypedArray,Bd=ji?$c(ji):Cc;var Mc=Object.prototype,Vd=Mc.hasOwnProperty;function Pc(e,t){return function(i){return e(t(i))}}var Tc=Pc,qd=Tc(Object.keys,Object);var jc=Object.prototype,Gd=jc.hasOwnProperty;var _c=le(Object,"create"),Se=_c;function Lc(){this.__data__=Se?Se(null):{},this.size=0}var Dc=Lc;function Nc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Oc=Nc,Fc="__lodash_hash_undefined__",Rc=Object.prototype,zc=Rc.hasOwnProperty;function Uc(e){var t=this.__data__;if(Se){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 Se?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]=Se&&t===void 0?Qc:t,this}var Yc=Zc;function se(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=Dc;se.prototype.delete=Oc;se.prototype.get=Bc;se.prototype.has=Hc;se.prototype.set=Yc;var _i=se;function Wc(){this.__data__=[],this.size=0}var Xc=Wc;function Kc(e,t){for(var i=e.length;i--;)if(qs(e[i][0],t))return i;return-1}var Ne=Kc,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 ou(e){return Ne(this.__data__,e)>-1}var au=ou;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 ce(e){var t=-1,i=e==null?0:e.length;for(this.clear();++t<i;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=Xc;ce.prototype.delete=iu;ce.prototype.get=nu;ce.prototype.has=au;ce.prototype.set=su;var Oe=ce,cu=le(N,"Map"),$e=cu;function uu(){this.size=0,this.__data__={hash:new _i,map:new($e||Oe),string:new _i}}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 Fe=mu;function fu(e){var t=Fe(this,e).delete(e);return this.size-=t?1:0,t}var bu=fu;function hu(e){return Fe(this,e).get(e)}var yu=hu;function vu(e){return Fe(this,e).has(e)}var ku=vu;function wu(e,t){var i=Fe(this,e),r=i.size;return i.set(e,t),this.size+=i.size==r?0:1,this}var Iu=wu;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=du;ue.prototype.delete=bu;ue.prototype.get=yu;ue.prototype.has=ku;ue.prototype.set=Iu;var Hi=ue;function Au(){this.__data__=new Oe,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 Pu=Mu,Tu=200;function ju(e,t){var i=this.__data__;if(i instanceof Oe){var r=i.__data__;if(!$e||r.length<Tu-1)return r.push([e,t]),this.size=++i.size,this;i=this.__data__=new Hi(r)}return i.set(e,t),this.size=i.size,this}var _u=ju;function Ee(e){var t=this.__data__=new Oe(e);this.size=t.size}Ee.prototype.clear=Cu;Ee.prototype.delete=$u;Ee.prototype.get=Eu;Ee.prototype.has=Pu;Ee.prototype.set=_u;var Lu=Object.prototype,Hd=Lu.propertyIsEnumerable;var Du=le(N,"DataView"),It=Du,Nu=le(N,"Promise"),At=Nu,Ou=le(N,"Set"),Ct=Ou,Li="[object Map]",Fu="[object Object]",Di="[object Promise]",Ni="[object Set]",Oi="[object WeakMap]",Fi="[object DataView]",Ru=W(It),zu=W($e),Uu=W(At),Bu=W(Ct),Vu=W(wt),oe=xe;(It&&oe(new It(new ArrayBuffer(1)))!=Fi||$e&&oe(new $e)!=Li||At&&oe(At.resolve())!=Di||Ct&&oe(new Ct)!=Ni||wt&&oe(new wt)!=Oi)&&(oe=function(e){var t=xe(e),i=t==Fu?e.constructor:void 0,r=i?W(i):"";if(r)switch(r){case Ru:return Fi;case zu:return Li;case Uu:return Di;case Bu:return Ni;case Vu:return Oi}return t});var Qd=N.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 St(e){var t=-1,i=e==null?0:e.length;for(this.__data__=new Hi;++t<i;)this.add(e[t])}St.prototype.add=St.prototype.push=Hu;St.prototype.has=Zu;var Ri=ae?ae.prototype:void 0,Zd=Ri?Ri.valueOf:void 0;var Yu=Object.prototype,Yd=Yu.hasOwnProperty;var Wu=Object.prototype,Wd=Wu.hasOwnProperty;var Xd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Kd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Jd=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Xu(e,t){if(e.startsWith("buffer:")){let i=await t.editor.getMimeType(e),r=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,r),o=new Uint8Array(n),a=new Blob([o],{type:i});return URL.createObjectURL(a)}else return e}async function j(e,t,i){let r,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(r=t.block.getString(n,"fill/image/imageFileURI"),r==null)throw new Error("No image source/uri found")}else r=a.uri;if(i?.throwErrorIfSvg&&await t.editor.getMimeType(r)==="image/svg+xml")throw new Error("SVG images are not supported");return Xu(r,t)}function Ku(e){return e==null?[]:Array.isArray(e)?e:[e]}var xt=Ku;var X="@imgly/plugin-ai-image-generation-web",Re=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"];var Be="editImage",z=`ly.img.${Be}`,Qi=`ly.img.plugin-ai-image-generation-web.quickAction.${Be}`,ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Be}`;function Ue(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Be}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var Ju=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),e.i18n.setTranslations({en:{[`${ze}`]:"Edit Image...",[`${ze}.description`]:"Change image based on description",[`${ze}.prompt`]:"Edit Image...",[`${Qi}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${ze}.apply`]:"Change"}}),{id:z,type:"quick",kind:"image",label:`${Qi}`,enable:_(),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(`${z}.prompt`,"");i.TextArea(`${z}.prompt`,{inputLabel:Ue(c,"prompt"),placeholder:Ue(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:Ue(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),h=await j(g,l,{throwErrorIfSvg:!0});await a({prompt:p,uri:h}),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(`${z}.button`,{label:Ue(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Zi=Ju;var Ge="swapBackground",U=`ly.img.${Ge}`,Yi=`ly.img.plugin-ai-image-generation-web.quickAction.${Ge}`,Ve=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ge}`;function qe(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${Ge}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ed=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),e.i18n.setTranslations({en:{[`${Ve}`]:"Swap Background...",[`${Ve}.description`]:"Change the background of the image",[`${Ve}.prompt`]:"Swap Background...",[`${Yi}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Ve}.apply`]:"Change"}}),{id:U,type:"quick",kind:"image",label:`${Yi}`,enable:_(),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(`${U}.prompt`,"");i.TextArea(`${U}.prompt`,{inputLabel:qe(c,"prompt"),placeholder:qe(c,"prompt.placeholder")[1],...d}),i.Separator(`${U}.separator`),r.builder.ButtonRow(`${U}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${U}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${U}.footer.apply`,{label:qe(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),h=await j(g,l,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${p}`,uri:h}),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(`${U}.button`,{label:qe(c),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Wi=ed;var He="styleTransfer",Me=`ly.img.${He}`,td=`ly.img.plugin-ai-image-generation-web.quickAction.${He}`,L=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${He}`;function Xi(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${He}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var id=[{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."}],rd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),e.i18n.setTranslations({en:{[`${L}`]:"Change Art Style",[`${L}.description`]:"Transform image into different art styles",[`${L}.water`]:"Watercolor Painting",[`${L}.oil`]:"Oil Painting",[`${L}.charcoal`]:"Charcoal Sketch",[`${L}.pencil`]:"Pencil Drawing",[`${L}.pastel`]:"Pastel Artwork",[`${L}.ink`]:"Ink Wash",[`${L}.stained-glass`]:"Stained Glass Window",[`${L}.japanese`]:"Japanese Woodblock Print"}}),{id:Me,type:"quick",kind:"image",label:`${td}`,enable:_(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Me}.popover`,{label:Xi(l),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{i.Section(`${Me}.popover.section`,{children:()=>{r.builder.Menu(`${Me}.popover.menu`,{children:()=>{id.forEach(u=>{i.Button(`${Me}.popover.menu.${u.id}`,{label:Xi(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=o.block.findAllSelected(),c=await j(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"})}}})})}})}})}})}}),Ki=rd;var Qe="artistTransfer",Pe=`ly.img.${Qe}`,nd=`ly.img.plugin-ai-image-generation-web.quickAction.${Qe}`,T=`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:"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."}],ad=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),e.i18n.setTranslations({en:{[`${T}`]:"Painted By",[`${T}.description`]:"Transform image in the style of famous artists",[`${T}.van-gogh`]:"Van Gogh",[`${T}.monet`]:"Monet",[`${T}.picasso`]:"Picasso",[`${T}.dali`]:"Dal\xED",[`${T}.matisse`]:"Matisse",[`${T}.warhol`]:"Warhol",[`${T}.michelangelo`]:"Michelangelo",[`${T}.da-vinci`]:"Da Vinci",[`${T}.rembrandt`]:"Rembrandt",[`${T}.mondrian`]:"Mondrian",[`${T}.kahlo`]:"Frida Kahlo",[`${T}.hokusai`]:"Hokusai"}}),{id:Pe,type:"quick",kind:"image",label:`${nd}`,enable:_(),scopes:["fill/change"],render:({builder:i,experimental:r,generate:n,engine:o,close:a,providerId:l})=>{r.builder.Popover(`${Pe}.popover`,{label:Ji(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:()=>{od.forEach(u=>{i.Button(`${Pe}.popover.menu.${u.id}`,{label:Ji(l,u.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[s]=o.block.findAllSelected(),c=await j(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"})}}})})}})}})}})}}),er=ad;var We="createVariant",B=`ly.img.${We}`,tr=`ly.img.plugin-ai-image-generation-web.quickAction.${We}`,Ze=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${We}`;function Ye(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${We}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var ld=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),e.i18n.setTranslations({en:{[`${Ze}`]:"Create Variant...",[`${Ze}.description`]:"Create a variation of the image",[`${Ze}.prompt`]:"Create Variant...",[`${tr}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Ze}.apply`]:"Create"}}),{id:B,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${tr}`,enable:i=>{if(!_()(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(`${B}.prompt`,"");i.TextArea(`${B}.prompt`,{inputLabel:Ye(c,"prompt"),placeholder:Ye(c,"prompt.placeholder")[1],...d}),i.Separator(`${B}.separator`),r.builder.ButtonRow(`${B}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${B}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${B}.footer.apply`,{label:Ye(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),h=l.block.getType(g),m=l.block.duplicate(g);h==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(A=>{l.block.destroy(A)}),l.block.setSelected(g,!1),l.block.setSelected(m,!0);let b=l.block.getParent(m);if(b==null)throw new Error("Parent not found");if(!(b!=null&&l.block.getType(b)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(b))&&h!=="//ly.img.ubq/page"){let C=l.block.getWidth(b),f=l.block.getHeight(b),y=.02*Math.min(C,f)*1;l.block.setPositionX(m,l.block.getPositionX(m)+y),l.block.setPositionY(m,l.block.getPositionY(m)+y)}let k=await j(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(`${B}.button`,{label:Ye(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),ir=ld;var Ke="combineImages",V=`ly.img.${Ke}`,rr=`ly.img.plugin-ai-image-generation-web.quickAction.${Ke}`,Et=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Ke}`;function Xe(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 sd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),e.i18n.setTranslations({en:{[`${Et}.apply`]:"Combine",[`${Et}`]:"Combine Images...",[`${Et}.prompt`]:"Image Combination Instructions",[`${rr}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:V,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${rr}`,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(`${V}.prompt`,"");i.TextArea(`${V}.prompt`,{inputLabel:Xe(c,"prompt"),placeholder:Xe(c,"prompt.placeholder")[1],...d}),i.Separator(`${V}.separator`),r.builder.ButtonRow(`${V}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${V}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${V}.footer.apply`,{label: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(),h=l.block.duplicate(g[0]);g.forEach(f=>{l.block.setSelected(f,!1)}),l.block.setSelected(h,!0);let m=l.block.getParent(h);if(m==null)throw new Error("Parent not found");let b=1,v=l.block.getWidth(m),k=l.block.getHeight(m),A=.02*Math.min(v,k)*b;l.block.setPositionX(h,l.block.getPositionX(h)+A),l.block.setPositionY(h,l.block.getPositionY(h)+A);let C=await Promise.all(g.map(f=>j(f,l,{throwErrorIfSvg:!0})));await a({prompt:p,uris:C,exportFromBlockIds:g},{blockIds:[h]}),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(`${V}.button`,{label:Xe(c),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),nr=sd;var Je="remixPage",or=`ly.img.${Je}`,cd=`ly.img.plugin-ai-image-generation-web.quickAction.${Je}`,ud=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Je}`;function dd(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.remixPage",!0),e.i18n.setTranslations({en:{[`${ud}`]:"Turn Page into Image"}}),{id:or,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${cd}`,enable:({engine:i})=>{let r=i.block.findAllSelected();if(r.length!==1)return!1;let n=r[0];return i.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:i,generate:r,engine:n,close:o,providerId:a})=>{i.Button(`${or}.button`,{label:dd(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),h=n.block.getPositionY(l),m=n.block.createShape("rect"),b=n.block.create("graphic");n.block.setShape(b,m),n.block.appendChild(c,b),n.block.setWidth(b,d),n.block.setHeight(b,p),n.block.setPositionX(b,g),n.block.setPositionY(b,h);let v=n.block.createFill("image");n.block.setFill(b,v),n.block.setString(v,"fill/image/imageFileURI",s),n.block.setSelected(b,!0),n.scene.zoomToBlock(b),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:s},{blockIds:[b]}),o()}catch(l){console.error("Generation error:",l),e.ui.showNotification({type:"error",message:l.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),ar=pd;var tt="remixPageWithPrompt",q=`ly.img.${tt}`,lr=`ly.img.plugin-ai-image-generation-web.quickAction.${tt}`,Mt=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${tt}`;function et(e,t){let i="ly.img.plugin-ai-image-generation-web",r=`quickAction.${tt}`,n=t?`${r}.${t}`:r;return[`${i}.${e}.${n}`,`${i}.${n}`,`${i}.${e}.defaults.${n}`,`${i}.defaults.${n}`]}var gd=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),e.i18n.setTranslations({en:{[`${Mt}`]:"Remix Page...",[`${Mt}.prompt`]:"Remix Page Prompt",[`${lr}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${Mt}.apply`]:"Remix"}}),{id:q,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${lr}`,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(`${q}.prompt`,"");i.TextArea(`${q}.prompt`,{inputLabel:et(c,"prompt"),placeholder:et(c,"prompt.placeholder")[1],...d}),i.Separator(`${q}.separator`),r.builder.ButtonRow(`${q}.footer`,{justifyContent:"space-between",children:()=>{i.Button(`${q}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),i.Button(`${q}.footer.apply`,{label:et(c,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:d.value.length===0,onClick:async()=>{try{let p=d.value;if(!p)return;let[g]=l.block.findAllSelected(),h=await l.block.export(g),m=URL.createObjectURL(h),b=l.block.duplicate(g);l.block.getChildren(b).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(g,!1);let v=l.block.getFrameWidth(g),k=l.block.getFrameHeight(g),A=l.block.getPositionX(g),C=l.block.getPositionY(g),f=l.block.createShape("rect"),y=l.block.create("graphic");l.block.setShape(y,f),l.block.appendChild(b,y),l.block.setWidth(y,v),l.block.setHeight(y,k),l.block.setPositionX(y,A),l.block.setPositionY(y,C);let S=l.block.createFill("image");l.block.setFill(y,S),l.block.setString(S,"fill/image/imageFileURI",m),l.block.setSelected(y,!0),l.scene.zoomToBlock(y),await a({prompt:p,uri:m},{blockIds:[y]}),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(`${q}.button`,{label:et(c),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),sr=gd;var G="ly.img.ai.image-generation";function md(e){return{async initialize({cesdk:t}){if(t==null)return;li(t,X,"0.2.8"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let i=De.get(),r=i.register({type:"plugin",sceneMode:"Design",id:X,pluginId:X,label:"Generate Image",meta:{panelId:G},execute:()=>{t.ui.isPanelOpen(G)?t.ui.closePanel(G):t.ui.openPanel(G)}});t.ui.addIconSet(Ci,Si),t.i18n.setTranslations({en:{[`panel.${G}`]:"Image Generation",[`${G}.dock.label`]:"AI Image"}}),fd(e),i.register(Zi({cesdk:t})),i.register(Wi({cesdk:t})),i.register(Ki({cesdk:t})),i.register(er({cesdk:t})),i.register(ir({cesdk:t})),i.register(nr({cesdk:t})),i.register(ar({cesdk:t})),i.register(sr({cesdk:t}));let n=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,a=await Promise.all(xt(n).map(d=>d({cesdk:t}))),l=await Promise.all(xt(o).map(d=>d({cesdk:t})));if(!(a.length>0||l.length>0)){r();return}let s=await ki("image",{fromText:a,fromImage:l},{cesdk:t},e),c=await Ai({kind:"image",providerInitializationResults:s.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Re});s.history?.assetSourceId!=null,c.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",c.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Ie})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(G,s.panel.builderRenderFunction),si({cesdk:t,panelId:G})):r()}}}function fd(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 cr=md;var bd=e=>({name:X,version:"0.2.8",...cr(e)}),Bp=bd;export{Re as DEFAULT_IMAGE_QUICK_ACTION_ORDER,Bp as default};
|
|
81
81
|
/*! Bundled license information:
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
* Build: `lodash modularize exports="es" -o ./`
|
|
94
|
-
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
95
|
-
* Released under MIT license <https://lodash.com/license>
|
|
96
|
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
97
|
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
98
|
-
*)
|
|
99
|
-
*)
|
|
100
|
-
*)
|
|
101
|
-
|
|
102
|
-
@imgly/plugin-utils/dist/index.mjs:
|
|
103
|
-
(*! Bundled license information:
|
|
104
|
-
|
|
105
|
-
lodash-es/lodash.js:
|
|
106
|
-
(**
|
|
107
|
-
* @license
|
|
108
|
-
* Lodash (Custom Build) <https://lodash.com/>
|
|
109
|
-
* Build: `lodash modularize exports="es" -o ./`
|
|
110
|
-
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
111
|
-
* Released under MIT license <https://lodash.com/license>
|
|
112
|
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
113
|
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
114
|
-
*)
|
|
115
|
-
*)
|
|
83
|
+
lodash-es/lodash.js:
|
|
84
|
+
(**
|
|
85
|
+
* @license
|
|
86
|
+
* Lodash (Custom Build) <https://lodash.com/>
|
|
87
|
+
* Build: `lodash modularize exports="es" -o ./`
|
|
88
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
89
|
+
* Released under MIT license <https://lodash.com/license>
|
|
90
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
91
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
92
|
+
*)
|
|
116
93
|
*/
|
|
117
94
|
//# sourceMappingURL=index.mjs.map
|